MAL - Make a Lisp
(github.com)MAL ist ein von Clojure inspirierter LISP-Interpreter, der jeweils in 79 Programmiersprachen implementiert wurde.
Da derselbe Interpreter in mehreren Sprachen umgesetzt ist, kann er zum Lernen neuer Sprachen verwendet werden.
Der Code ist in 11 Schritte unterteilt, und die letzte Stufe ist Self-Hosting (eine MAL-Implementierung führt MAL erneut aus).
1 Kommentare
Kann direkt in der Javascript-basierten MAL-Implementierung ausprobiert werden.
Mal Web REPL - https://kanaka.github.io/mal/
Schrittweise Erklärung der Implementierung
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