Bạn rõ ràng không phải là "fanboy" của Lisp, bởi vì các chàng trai và cô gái phù hợp với mô tả đó thường có thể dựa vào để biết rằng Lisp là một ngôn ngữ được biên dịch. Lisp xuất hiện vào năm 1958. Cẩm nang Lisp 1 năm 1961 đã mô tả biên dịch.
Phiên dịch là hữu ích; nó cho chúng ta ngữ nghĩa mà không cần phải viết trình biên dịch trước. Ngữ nghĩa này cung cấp một mô hình tham chiếu cho các ngữ nghĩa được biên dịch: các chương trình lý tưởng, diễn giải và biên dịch cũng làm như vậy. Khi chúng tôi tìm thấy họ không, chúng tôi hoặc là giải quyết nó, hoặc bằng cách nào đó delineate và biện minh cho tình hình.
Phiên dịch có thể được sử dụng để khởi động hệ thống Lisp đã biên dịch mà không yêu cầu triển khai Lisp hiện có, nhưng thay vì sử dụng ngôn ngữ khác như C. Giải thích tránh sự cần thiết phải viết trình biên dịch Lisp bằng ngôn ngữ bootstrapping.
Việc triển khai CLISP của ANSI Common Lisp là một ví dụ điển hình về điều này. Để xây dựng CLISP, bạn chỉ cần một trình biên dịch C. Trình biên dịch Lisp của CLISP được viết bằng Lisp. Vì vậy, tất nhiên, bạn không có gì để chạy trình biên dịch đó. Giải pháp là để giải thích trình biên dịch bằng cách sử dụng một thông dịch viên được viết bằng C.
Khi chạy phiên dịch, trình biên dịch biên dịch nhiều thư viện Lisp.Kết quả của việc này là những gì CLISP gọi là "hình ảnh bộ nhớ được biên dịch một nửa": một hình ảnh chứa các thường trình được biên dịch, nhưng một số thường trình diễn giải. (Tôi nghĩ, bản thân trình biên dịch vẫn là mã giải thích).
Hình ảnh được biên dịch một nửa này sau đó được sử dụng để biên dịch mã còn lại, dẫn đến hình ảnh được biên dịch hoàn toàn.
Không có trình thông dịch, trình biên dịch của CLISP chỉ có thể được khởi động bằng cách nhấn mạnh vào triển khai Lisp khác sẽ được cài đặt trước. (Cách bạn cần một trình biên dịch C để tăng cường GCC). Nếu không, trình biên dịch của CLISP sẽ phải được viết bằng C, do đó trình biên dịch được biên dịch bằng trình biên dịch C hiện có, và sau đó áp dụng cho mã Lisp để biên dịch nó trước khi nó có thể được chạy.
Không ai trong tâm trí của họ muốn viết một trình biên dịch Lisp trong C, và yêu cầu triển khai Lisp để xây dựng triển khai Lisp là một bất lợi lớn trong một thế giới mà Lisp không phổ biến. Điều gì sẽ xảy ra theo mô hình bói toán Lisp-compiler-in-C là trình biên dịch Lisp được viết bằng C sẽ là một trình biên dịch hoàn toàn tối thiểu và có thể không đầy đủ, phát ra mã chất lượng kém, chỉ đủ tốt để bắt đầu phát hành và "thực" trình biên dịch vẫn sẽ được viết bằng Lisp.
Có một trường phái tư tưởng cho rằng Smalltalkers trong nhóm Gang of Four đã đặt Mô hình thông dịch trong cuốn sách như một trò đùa, chỉ để giả lập đám đông C++. Thật không may, đám đông C++ đã không nhận được trò đùa, và bây giờ chúng tôi đang mắc kẹt với nó. (Tất nhiên, trò đùa trong Smalltalk, lập trình viên có thể truy cập thời gian chạy chương trình đầy đủ đến trình biên dịch và thông dịch viên và do đó không cần phải có một cái gì đó giống như Mô hình Phiên dịch.) –