MAL - Make a Lisp
(github.com)MAL は Clojure に着想を得た LISP インタープリタで、79 の開発言語でそれぞれ実装されている。
同じインタープリタを複数の言語で実装してあるため、新しい言語を学ぶ用途に使える。
コードは 11 段階に分かれており、最終段階はセルフホスティング(MAL 実装が MAL を再び実行する)。
MAL は Clojure に着想を得た LISP インタープリタで、79 の開発言語でそれぞれ実装されている。
同じインタープリタを複数の言語で実装してあるため、新しい言語を学ぶ用途に使える。
コードは 11 段階に分かれており、最終段階はセルフホスティング(MAL 実装が MAL を再び実行する)。
1件のコメント
JavascriptベースのMAL実装ですぐに試せます。
Mal Web REPL - https://kanaka.github.io/mal/
実装の段階別説明
https://github.com/kanaka/mal/blob/master/process/guide.md
The Make-A-Lisp Process
Step 0: The REPL
Step 1: Read and Print
Step 2: Eval
Step 3: Environments
Step 4: If Fn Do
Step 5: Tail call optimization
Step 6: Files, Mutation, and Evil
Step 7: Quoting
Step 8: Macros
Step 9: Try
Step A: Metadata, Self-hosting and Interop