Ferramentas
Compilador com saída em Assembly ARMv7
Um compilador completo, da análise léxica ao Assembly ARMv7 que roda no simulador — em Python puro, sem dependência nenhuma.
55/55
os testes passando, do reconhecimento do token ao assembly que roda no simulador
- Condição
- pytest na árvore do repositório · 17 de léxico, 12 de sintaxe, 18 do sistema de tipos e 8 de ponta a ponta
- Papel
- Coautor
- Contexto
- PUCPR — Linguagens Formais e Compiladores
- Período
- 2026
- Situação
- Público · trabalho acadêmico em dupla
Compilador para uma linguagem em notação polonesa reversa, feito na disciplina de Linguagens Formais e Compiladores da PUCPR. O caminho é completo: análise léxica e sintática sobre uma gramática EBNF documentada, tabela de símbolos, tipagem estática e forte com verificação na árvore sintática atribuída, e geração de Assembly ARMv7 — o código de saída roda de fato no simulador Cpulator.
Escrito em Python puro, sem nenhuma dependência de runtime: clona e executa. Foi uma decisão consciente, porque a graça do exercício é que cada etapa do compilador esteja visível no código, e não escondida atrás de um gerador de parser.
Foi um trabalho em dupla, e revisamos o código um do outro por pull request. A parte que deu mais trabalho foi a geração de código: a semântica da linguagem-fonte é simples, mas mapear expressões para registradores ARMv7 respeitando a convenção de chamada obriga a ter a árvore atribuída correta antes — erro de tipo que passa despercebido vira assembly que monta e faz a coisa errada em silêncio.