Elevator Pitch
Já pensou em como seria implementar um interpretador em Go, usando apenas a biblioteca padrão? Nesta palestra irei demonstrar como podemos implementar um interpretador para G-Portugol, uma linguagem de programação totalmente em português.
Description
Um processo de interpretação clássico é dividido nos seguintes estágios:
- Análise léxica;
- Análise sintática;
- Análise semântica;
- Geração de código intermediário;
- Otimizações (opcional);
- Execução do código intermediário.
Por trás de VMs tradicionais como a VM de Java, Python e Ruby, existe toda uma complexidade que é abstraída por um interpretador que consegue transformar um código escrito em linguagem de alto nível para um código intermediário (bytecode), de forma que as VMs consigam abstrair o hardware bem como executar este código da forma mais performática possível.
Para demonstrar como funciona este processo de interpretação, irei implementar em Golang um (micro) interpretador para a linguagem This is an G-Portugol, uma linguagem de programação totalmente escrita em Português cujo foco é o ensino de algoritmos.
Ao final da palestra todos terão uma noção do que é um interpretador clássico e de como implementar um para a sua linguagem favorita.
Notes
Eu atuei com pesquisa acadêmica nas áreas de linguagens de programação, compiladores e máquinas virtuais. Desenvolvi alguns “toy” compilers para linguagens acadêmicas bem como algumas VMs para dar suporte à execução destas linguagens.