4 điểm bởi xguru 2019-12-01 | 1 bình luận | Chia sẻ qua WhatsApp

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

 
xguru 2019-12-01

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