4 Punkte von xguru 2019-12-01 | 1 Kommentare | Auf WhatsApp teilen

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

 
xguru 2019-12-01

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