SCHEME
MỘT BỘ THÔNG DỊCH CHO PHÉP TÍNH LAMBDA MỞ RỘNG bởi
Gerald Jay Sussman và Guy Lewis Steele Jr.
Tóm tắt:
Lấy cảm hứng từ ACTORS [Greif and Hewitt] [Smith and Hewitt], chúng tôi đã triển khai một bộ thông dịch cho một ngôn ngữ giống LISP, SCHEME, dựa trên phép tính lambda [Church], nhưng được mở rộng cho các tác dụng phụ, xử lý đa tiến trình và đồng bộ hóa tiến trình. Mục đích của triển khai này là hướng dẫn. Chúng tôi mong muốn:
(1) giảm bớt sự nhầm lẫn do Micro-PLANNER, CONNIVER, v.v. gây ra bằng cách làm rõ sự nhúng của các cấu trúc điều khiển không đệ quy trong một ngôn ngữ chủ đệ quy như LISP.
(2) giải thích cách sử dụng các cấu trúc điều khiển này, độc lập với các vấn đề như so khớp mẫu và thao tác cơ sở dữ liệu.
(3) có một miền thử nghiệm cụ thể đơn giản cho một số vấn đề nhất định về ngữ nghĩa lập trình và phong cách.
Bài báo này được tổ chức thành các phần. Phần đầu tiên là một "sổ tay tham khảo" ngắn chứa các đặc tả cho tất cả các tính năng bất thường của SCHEME. Tiếp theo, chúng tôi trình bày một chuỗi các ví dụ lập trình minh họa nhiều phong cách lập trình khác nhau và cách sử dụng chúng. Điều này sẽ nêu lên một số vấn đề về ngữ nghĩa mà chúng tôi sẽ cố gắng làm rõ bằng phép tính lambda trong phần thứ ba. Trong phần thứ tư, chúng tôi sẽ đưa ra một thảo luận tổng quát về các vấn đề mà một người triển khai bộ thông dịch cho một ngôn ngữ dựa trên phép tính lambda phải đối mặt. Cuối cùng, chúng tôi sẽ trình bày một bộ thông dịch SCHEME được chú thích hoàn toàn, được viết bằng MacLISP [Moon], để giúp các lập trình viên làm quen với những thủ thuật trong nghề triển khai các cấu trúc điều khiển không đệ quy trong một ngôn ngữ đệ quy như LISP.