𝗖𝗼𝗺𝗼 𝗘𝘀𝗰𝗿𝗲𝘃𝗲𝗿 𝗨𝗺 𝗜𝗻𝘁𝗲𝗿𝗽𝗿𝗲𝘁𝗮𝗱𝗼𝗿 𝗟𝗶𝘀𝗽
Você adquire um conhecimento profundo ao aprender como as linguagens de programação funcionam. Construir um interpretador Lisp em Python é uma maneira clássica de observar isso.
Peter Norvig escreveu um guia famoso sobre este tópico em 2010. Os princípios do design de interpretadores não mudam. Você aprende como o código se transforma em ação.
Um interpretador segue três estágios principais:
- Análise Léxica: Você divide o código bruto em tokens. Estas são as pequenas partes, como palavras e símbolos.
- Análise Sintática: Você transforma os tokens em uma árvore. Esta árvore mostra a estrutura do código.
- Avaliação: Você percorre a árvore para executar as operações e obter um resultado.
O Lisp torna isso simples. Ele utiliza S-expressions. Isso significa que tudo é uma lista dentro de parênteses. O primeiro item é geralmente a função. O restante são os argumentos.
Para começar, você transforma o código como (+ 10 (* 2 5)) em tokens.
Seus tokens ficam assim: '(', '+', '10', '(', '*', '2', '5', ')', ')'
Estudar essas mecânicas fundamentais muda a forma como você utiliza suas ferramentas todos os dias.