4 ポイント 投稿者 xguru 2019-12-01 | 1件のコメント | WhatsAppで共有

MAL は Clojure に着想を得た LISP インタープリタで、79 の開発言語でそれぞれ実装されている。

同じインタープリタを複数の言語で実装してあるため、新しい言語を学ぶ用途に使える。

コードは 11 段階に分かれており、最終段階はセルフホスティング(MAL 実装が MAL を再び実行する)。

1件のコメント

 
xguru 2019-12-01

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