Outras versões deste tutorial (todas em inglês):
Linguagem de implementação | Arquiteturas alvo | URL |
---|---|---|
Pascal | Motorola 68000 | O tutorial original: https://compilers.iecc.com/crenshaw/ |
Delphi/Lazarus | Intel x86 32-bits | http://www.pp4s.co.uk/main/tu-trans-comp-jc-intro.html |
C | Intel x86 32-bits | https://github.com/lotabout/Let-s-build-a-compiler |
Construa seu próprio Lisp
Ensina a implementar um interpretador LISP em C.
- Versão em português: https://construa-seu-proprio-lisp.herokuapp.com/
- Original em inglês: https://buildyourownlisp.com/
Crafting Interpreters
Livro excelente escrito por Robert Nystrom. O livro mostra a implementação de dois interpretadores para uma linguagem fictícia orientada a objetos chamada Lox:
- A primeira implementação é feita em Java e foca em um interpretador de nível mais alto, para apresentar os conceitos básicos de análise léxica, sintática, interpretação da árvore sintática, etc.
- A segunda é feita em C, focando em uma maquina virtual eficiente e aprofundando mais os conceitos, inclusive com a implementação de um Garbage Collector.
Curiosidade: Robert trabalha atualmente para a Google na linguagem Dart.
Livro disponível gratuitamente em: https://craftinginterpreters.com/
Structure and Interpretation of Computer Programs
Os autores além de introduzirem a programação funcional, também implementam um interpretador Scheme completo em poucas linhas de código Scheme.
Disponível gratuitamente em: http://mitpress.mit.edu/sicp/full-text/book/book.html
Possui também uma série de palestras em vídeo disponíveis online que seguem mais ou menos a estrutura do livro: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/.