MAL - Make a Lisp
(github.com)MAL adalah interpreter LISP yang terinspirasi dari Clojure, dengan implementasi terpisah dalam 79 bahasa pemrograman.
Interpreter yang sama diimplementasikan dalam banyak bahasa, sehingga bisa digunakan untuk mempelajari bahasa baru.
Kodenya dibagi menjadi 11 tahap, dan tahap akhirnya adalah self-hosting (implementasi MAL menjalankan MAL itu sendiri)
1 komentar
Bisa langsung dicoba pada implementasi MAL berbasis Javascript.
Mal Web REPL - https://kanaka.github.io/mal/
Penjelasan implementasi per tahap
https://github.com/kanaka/mal/blob/master/process/guide.md
The Make-A-Lisp Process
Langkah 0: REPL
Langkah 1: Read and Print
Langkah 2: Eval
Langkah 3: Environment
Langkah 4: If Fn Do
Langkah 5: Optimisasi tail call
Langkah 6: File, Mutasi, dan Evil
Langkah 7: Quoting
Langkah 8: Makro
Langkah 9: Try
Langkah A: Metadata, Self-hosting, dan Interop