Tôi đã thấy nhiều chương trình giảng dạy CS và đề xuất học tập cho các lập trình viên mới kêu gọi lập trình viên khao khát nghiên cứu một trình thông dịch lisp được viết cụ thể bằng lisp. Tất cả các trang web này đều nói những điều tương tự như "đó là một tiết lộ trí tuệ", "đó là một trải nghiệm khai sáng mà mọi lập trình viên nghiêm túc nên có" hoặc "nó cho bạn thấy mối quan hệ phần cứng / phần mềm" và các tuyên bố mơ hồ khác, đặc biệt từ bài viết này được lấy từ bài viết này Cách làm uy tín này .
Tâm lý chung của câu hỏi của tôi là, làm thế nào để lisp đạt được các mục tiêu trên và tại sao lại không? Tại sao không phải là một số ngôn ngữ khác?
Tôi đang hỏi điều này bởi vì tôi vừa viết xong một trình thông dịch lược đồ trong lược đồ (lấy từ SICP http://mitpress.mit.edu/sicp/ ) và bây giờ tôi đang viết một trình thông dịch python trong lược đồ và tôi đang đấu tranh để có bản hùng ca huyền thoại này đó được cho là đặc biệt đến từ trước đây. Tôi đang tìm kiếm các chi tiết kỹ thuật cụ thể giữa hai ngôn ngữ mà tôi có thể khai thác trong trình thông dịch lược đồ của họ để hiểu được cách thức các chương trình hoạt động.
Cụ thể hơn:
Tại sao nghiên cứu về một thông dịch viên được viết bằng ngôn ngữ mà nó diễn giải lại được nhấn mạnh đến vậy - nó chỉ là một bài tập tinh thần tuyệt vời để giữ cho ngôn ngữ gốc và ngôn ngữ được xây dựng thẳng hay có những vấn đề cụ thể mà các giải pháp chỉ có thể được tìm thấy trong bản chất của ngôn ngữ gốc?
Làm thế nào để thông dịch viên lisp thể hiện các khái niệm kiến trúc tốt cho thiết kế phần mềm trong tương lai?
Tôi sẽ bỏ lỡ điều gì nếu tôi thực hiện bài tập này bằng một ngôn ngữ khác như C ++ hoặc Java?
Các takeaway hoặc "công cụ tinh thần" được sử dụng nhiều nhất từ bài tập này là gì? **
** Tôi chọn câu trả lời tôi đã làm vì tôi đã nhận thấy rằng tôi đã đạt được từ bài tập này kỹ năng hơn trong việc thiết kế các công cụ phân tích trong đầu của tôi hơn bất kỳ công cụ nào khác và tôi muốn tìm phương pháp khác nhau của phân tích cú pháp có thể làm việc tốt hơn cho chương trình này thông dịch viên hơn phiên dịch python.