MAL - Faça um Lisp
(github.com)MAL é um interpretador LISP inspirado em Clojure, implementado separadamente em 79 linguagens de programação.
Como o mesmo interpretador foi implementado em várias linguagens, ele pode ser usado para aprender uma nova linguagem.
O código é dividido em 11 etapas, e a etapa final é self-hosting (uma implementação de MAL executa o próprio MAL novamente).
1 comentários
Pode ser usado imediatamente na implementação de MAL baseada em Javascript.
Mal Web REPL - https://kanaka.github.io/mal/
Explicação passo a passo da implementação
https://github.com/kanaka/mal/blob/master/process/guide.md
The Make-A-Lisp Process
Step 0: O REPL
Step 1: Ler e imprimir
Step 2: Eval
Step 3: Ambientes
Step 4: If Fn Do
Step 5: Otimização de chamada de cauda
Step 6: Arquivos, mutação e Evil
Step 7: Quoting
Step 8: Macros
Step 9: Try
Step A: Metadados, self-hosting e interoperabilidade