Escrevendo um interpretador em Go
212 páginas
Portuguese
PDF
4.5

Escrevendo um interpretador em Go

Escrevendo um interpretador em Go

Autor:

Ano:

Resumo:

Introdução

O livro «Writing an Interpreter in Go» (em português — «Escrevendo um interpretador em Go») de autoria de Thorsten Ball é um guia prático único que ensina passo a passo a criar um interpretador completo para a linguagem de programação fictícia Monkey. Diferente dos livros acadêmicos sobre compiladores, este livro foca em código real e teoria mínima, permitindo que o leitor comece imediatamente a escrever um interpretador funcional na linguagem Go.

O livro foi lançado em 2018, tem 212 páginas e é voltado para programadores que desejam entender mais profundamente como as linguagens de programação funcionam "por baixo dos panos". Ele não exige conhecimento prévio na área de compiladores, mas pressupõe domínio sólido de Go.

Sobre o que é este livro

O livro conduz o leitor sequencialmente por todas as etapas da criação de um interpretador: da análise léxica à execução do código. Os principais tópicos são:

  • Analisador léxico (lexer) — divisão do código-fonte em tokens.
  • Parser — construção da árvore sintática abstrata (AST) usando descida recursiva e o método Pratt (Pratt parser).
  • Sistema de objetos — representação de valores (números, strings, booleanos, funções, arrays, hashes).
  • Avaliador (eval) — percorrimento da AST e execução de expressões e instruções.
  • Closures e funções de primeira classe — implementação de escopos e closures.
  • Funções embutidas — adição de operações padrão (len, puts, first, rest, etc.).
  • Sistema de tipos — tipagem dinâmica com verificações em tempo de execução.

Cada capítulo termina com código funcional que pode ser testado imediatamente. Ao final, o leitor obtém um interpretador capaz de executar programas em Monkey — uma linguagem com sintaxe que lembra uma mistura de C, JavaScript e Python.

Para quem é este livro

O livro será útil para:

  • Desenvolvedores Go que desejam aprofundar seu entendimento da linguagem e suas capacidades.
  • Programadores interessados em compiladores — aqueles que querem aprender como parsers e interpretadores funcionam.
  • Estudantes e professores — como complemento prático para cursos sobre linguagens de programação.
  • Qualquer desenvolvedor que queira criar sua própria linguagem ou DSL (linguagem de domínio específico).

Importante: o livro não ensina Go do zero — o leitor deve saber programar em Go em nível intermediário (conhecer structs, interfaces, ponteiros; goroutines não são necessárias).

O que o leitor aprenderá

Após a leitura, você será capaz de:

  • Escrever um lexer do zero, analisando strings em tokens.
  • Implementar um parser usando descida recursiva com precedência de operadores.
  • Construir e percorrer uma AST.
  • Criar um sistema de valores e ambientes (escopos de execução).
  • Implementar closures e funções de ordem superior.
  • Adicionar suporte para arrays, hashes e operações com strings.
  • Entender como funciona a despacho dinâmico e o tratamento de erros.
  • Obter o código pronto de um interpretador que pode ser expandido.

Pontos fortes do livro

Abordagem prática. Cada conceito é imediatamente acompanhado de código. Você não apenas lê teoria — você escreve o interpretador linha por linha.

Exposição passo a passo. O livro é dividido em capítulos curtos, cada um adicionando uma nova funcionalidade. Isso permite voltar facilmente a seções anteriores.

Código Go limpo. O autor usa Go idiomático, interfaces e composição, tornando o código ao mesmo tempo didático e profissional.

Ausência de teoria desnecessária. Diferente do "Dragão" (Aho, Lam, Sethi, Ullman), não há gramáticas formais ou demonstrações — apenas o necessário para um interpretador funcional.

Recommendations