MAL - Tạo một Lisp
(github.com)MAL là một trình thông dịch LISP lấy cảm hứng từ Clojure, được hiện thực riêng bằng 79 ngôn ngữ lập trình.
Vì cùng một trình thông dịch được hiện thực bằng nhiều ngôn ngữ khác nhau, nên có thể dùng nó để học một ngôn ngữ mới.
Mã nguồn được chia thành 11 bước, và bước cuối cùng là tự lưu trữ (một bản triển khai MAL chạy lại chính MAL).
1 bình luận
Có thể dùng thử ngay trên bản triển khai MAL dựa trên Javascript.
Mal Web REPL - https://kanaka.github.io/mal/
Giải thích theo từng bước của quá trình triển khai
https://github.com/kanaka/mal/blob/master/process/guide.md
The Make-A-Lisp Process
Bước 0: REPL
Bước 1: Đọc và In
Bước 2: Eval
Bước 3: Môi trường
Bước 4: If Fn Do
Bước 5: Tối ưu hóa lời gọi đuôi
Bước 6: Tệp, thay đổi trạng thái, và Evil
Bước 7: Trích dẫn
Bước 8: Macro
Bước 9: Try
Bước A: Metadata, tự lưu trữ và Interop