3 điểm bởi GN⁺ 2024-07-13 | 1 bình luận | Chia sẻ qua WhatsApp

Bạn có từng muốn tự tạo ra một ngôn ngữ lập trình, hoặc tò mò về cách chúng được thiết kế và xây dựng? Nếu vậy thì cuốn sách này là dành cho bạn. Crafting Interpreters bao gồm mọi thứ cần thiết để hiện thực một ngôn ngữ kịch bản đầy đủ tính năng và hiệu quả. Bạn có thể học từ các khái niệm cấp cao về phân tích cú pháp và ngữ nghĩa cho đến những chi tiết như biểu diễn bytecode và thu gom rác. Não bạn sẽ bừng sáng với những ý tưởng mới, và đôi tay sẽ thực sự bắt tay vào làm. Thật sự rất vui.

Bắt đầu từ main(), bạn sẽ xây dựng một ngôn ngữ có cú pháp phong phú, kiểu động, thu gom rác, lexical scope, first-class function, closure, lớp và kế thừa. Mọi thứ đều được gói gọn trong vài nghìn dòng mã sạch và nhanh, và vì bạn tự tay viết từng dòng nên bạn có thể hiểu hoàn toàn.

Cuốn sách có bốn định dạng hấp dẫn:

Bản in

  • 640 trang với kiểu chữ đẹp mắt và minh họa vẽ tay độ phân giải cao
  • Mỗi trang được tác giả dàn trang tỉ mỉ
  • Mang lại trải nghiệm đọc tốt nhất
  • Amazon.com | .ca | .uk | .au | .de | .fr | .es | .it | .jp
  • Barnes and Noble | Book Depository

Sách điện tử

  • CSS được tinh chỉnh cẩn thận để thích ứng với trình đọc ebook và kích thước màn hình
  • Cung cấp tô sáng cú pháp đầy đủ màu sắc và hyperlink trực tiếp
  • Kindle Amazon.com | .uk | .ca | .au | .de | .in
  • .fr | .es | .it | .jp | .br | .mx | Apple Books
  • Play Books Google | Nook B&N | EPUB Smashwords

PDF

  • Tái hiện hoàn hảo phần dàn trang thủ công và các minh họa sắc nét của bản in
  • Dễ mang theo hơn nhiều
  • Có thể mua trên Payhip
  • Tải mẫu miễn phí

Web

  • Thiết kế responsive được chăm chút kỹ lưỡng nên hiển thị tuyệt vời từ desktop đến điện thoại
  • Bao gồm mọi chương, sidebar và minh họa
  • Có thể đọc toàn bộ cuốn sách miễn phí
  • Đọc ngay

Giới thiệu về Robert Nystrom

  • Vài năm trước bị “cắn” bởi niềm đam mê ngôn ngữ trong thời gian nghỉ chăm con
  • Sau khi mày mò với nhiều ngôn ngữ sở thích, ông bước vào công việc chính thức liên quan đến ngôn ngữ lập trình
  • Hiện đang làm việc với ngôn ngữ Dart tại Google
  • Đã phát triển game trong 8 năm tại Electronic Arts
  • Dựa trên những gì học được ở đó, ông đã viết cuốn sách bán chạy Game Programming Patterns
  • Có thể tìm thêm thông tin trên Twitter (@munificentbob), email (bob at tên miền của trang này), blog và danh sách gửi thư tần suất thấp

Tóm tắt của GN⁺

  • Crafting Interpreters là tài liệu thiết yếu cho những ai muốn tự xây dựng ngôn ngữ lập trình
  • Bao quát nhiều chủ đề như phân tích cú pháp, ngữ nghĩa, biểu diễn bytecode và thu gom rác
  • Robert Nystrom viết cuốn sách này dựa trên kinh nghiệm có được từ công việc với ngôn ngữ Dart
  • Sách được cung cấp dưới dạng bản in, sách điện tử, PDF và web, mang lại nhiều trải nghiệm đọc khác nhau
  • Đây là tài liệu rất hữu ích cho những ai quan tâm đến thiết kế và hiện thực ngôn ngữ lập trình

1 bình luận

 
GN⁺ 2024-07-13
Ý kiến trên Hacker News
  • Cuốn sách này phù hợp như bước thứ hai hoặc thứ ba khi học về trình biên dịch PL

    • Bước đầu tiên là tự viết một trình thông dịch bằng một ngôn ngữ đơn giản
    • Bước thứ hai là viết lại nó để giảm bớt sai sót
    • Qua đó có thể hiểu được những khác biệt tinh tế của chủ đề này
  • Khi làm Crumb, tôi đã đọc Crafting Interpreters

    • Phần về phạm vi và biến cục bộ đặc biệt hữu ích
    • Sự cân bằng giữa triển khai kỹ thuật và góc nhìn khái niệm đã giúp ích rất nhiều
    • Đây là một ví dụ về lối viết kỹ thuật có sức truyền cảm hứng
  • Điểm hay nhất của cuốn sách này là nó hướng dẫn quá trình viết hai trình thông dịch cho cùng một ngôn ngữ

    • Bạn gặp những ý tưởng lớn ở trình thông dịch đầu tiên, rồi xử lý lại và hấp thụ chúng ở trình thông dịch thứ hai
    • Đây thực sự là một cuốn sách tuyệt vời
  • Nói về các tài nguyên khác về trình biên dịch, tôi rất thích nội dung của Immo Landwerth về việc viết trình biên dịch bằng C#

  • Hầu hết lập trình viên nên đọc cuốn sách này ít nhất một lần

    • Nó giúp bạn hiểu chuyện gì diễn ra bên trong trình biên dịch
    • Đây là một tài liệu hướng dẫn kỹ thuật được viết rất tốt
    • Nó giúp nội tại hóa các khái niệm
  • Tôi tự hỏi có ai biết tài nguyên tốt nào để làm một ngôn ngữ kiểu tĩnh có đa hình tham số và suy luận kiểu cơ bản không

  • Là một người mới bước vào lĩnh vực lập trình, tôi tự hỏi nên tiếp cận những cuốn sách như thế này thế nào

    • Tôi băn khoăn liệu có nên vừa đọc từ đầu đến cuối vừa code theo tác giả hay không
    • Tôi đang gặp khó khăn trong việc ghi nhớ kiến thức
    • Tôi muốn học thêm về trình thông dịch ngôn ngữ, nhưng không chắc định dạng này có giúp ích không
    • Tôi đang cố gắng bổ sung bằng cách ghi chép
  • Cuối cùng tôi đã quyết định đọc cuốn sách này

    • Nó đã phủ bụi trên giá sách của tôi
  • Tôi vừa mới đọc xong nửa sau

    • Một cuốn sách tuyệt vời
    • Tôi khuyên nên làm một hoặc hai bài tập thử thách được đề xuất ở mỗi chương
  • Tôi biết ơn vì niềm đam mê muốn tạo ra ngôn ngữ chỉ là một hứng thú thoáng qua

    • Đây là một khối lượng công việc khổng lồ