O que você vai aprender
Apresentar o projeto integrador com clareza e demonstração ao vivo.
Revisar as fases do compilador de forma conectada.
Relacionar cada fase ao seu formalismo e sua entrada/saída.
Preparar-se para a Avaliação 2 e o exame.
Fechando o ciclo
Chegamos ao fim: das primeiras noções de tradução à construção de um mini-compilador. Esta aula apresenta os projetos, revisa toda a disciplina de forma conectada e prepara a Avaliação 2.
O objetivo é enxergar o compilador como um todo coerente — cada fase encaixada na seguinte — e não como tópicos soltos.
O compilador inteiro de relance
As cinco fases, encadeadas:
Acompanhadas, em todas as etapas, pela tabela de símbolos e pelo tratamento de erros.
O compilador em uma página
| Fase | Entrada → Saída | Formalismo |
|---|---|---|
| Léxica | caracteres → tokens | ER / autômatos finitos |
| Sintática | tokens → árvore | GLC / LL(1) |
| Semântica | árvore → árvore anotada | Gramáticas de atributos |
| Geração de RI | árvore → TAC | Tradução dirigida pela sintaxe |
| Geração de código | TAC → assembly | Seleção / alocação |
Lendo a tabela-resumo
Três colunas, três perguntas para cada fase: o que entra e o que sai? (transformação), com que teoria? (formalismo), resolvendo qual problema?
- A coluna do meio mostra que cada fase é uma transformação de representação: caracteres viram tokens, tokens viram árvore, e assim por diante.
- A coluna da direita liga cada fase a um capítulo da teoria das linguagens formais.
A mesma entrada nas cinco fases
Para x = a + b, acompanhe a transformação completa:
Revisão guiada das fases
As apresentações dos projetos
Cada grupo expõe: a minilinguagem escolhida, o pipeline implementado e a demonstração. Critérios: corretude, clareza da explicação e cobertura das fases.
Como apresentar bem
Uma boa apresentação técnica:
- Mostra o pipeline funcionando com um exemplo claro, do texto ao TAC.
- Explica as decisões de projeto (escopo da linguagem, divisão de fases).
- Demonstra também um caso de erro sendo detectado, não só o caso feliz.
- Conecta o que foi feito à teoria das aulas (formalismos por fase).
Revisar é montar o mapa
Front-end × back-end na revisão
| Front-end | Back-end | |
|---|---|---|
| Fases | Léxica, sintática, semântica | Otimização, geração de código |
| Depende de | Linguagem-fonte | Máquina-alvo |
| Produz/consome | Produz a RI | Consome a RI |
| Formalismos | ER, GLC, atributos | Seleção, alocação (coloração) |
A RI é a fronteira que separa e conecta os dois lados.
A reta final de estudos
cada fase→Conectar
as fases→Simulado
ENADE→Avaliação 2
A Avaliação 2 cobre as semanas 8–13: análise semântica, tabela de símbolos, RI, ambiente de execução e geração de código. Revise os simuladores e os mini-quizzes de cada aula.
Erros: a fase que atravessa tudo
Vale reforçar que o tratamento de erros não é uma fase isolada, mas atravessa todas. Saber classificar um erro pela fase é uma habilidade cobrada:
- Léxico: caractere ou token inválido (ex.: símbolo @ fora de string).
- Sintático: estrutura malformada (ex.: parêntese não fechado).
- Semântico: significado inválido (ex.: variável não declarada, tipos incompatíveis).
Verifique seu entendimento
Qual formalismo está associado à análise sintática?
Classificando erros na prova
Treine classificar cada mensagem pela fase de origem:
| Sintoma | Fase |
|---|---|
| Símbolo inesperado `#` | Léxica |
| Esperava `)`, encontrou fim de linha | Sintática |
| Variável `y` não declarada | Semântica |
| Não é possível somar int e string | Semântica (tipos) |
Equívocos frequentes na revisão
Trocar os formalismos. Atribuir ER à sintaxe ou GLC ao léxico é erro clássico de prova.
Confundir RI com código de máquina. A RI (TAC) é neutra; o assembly depende do alvo.
Achar que a tabela de símbolos é de uma fase só. Ela é transversal, central na semântica.
Estratégia para a Avaliação 2
Refaça os mini-quizzes de cada aula 8–13 e o simulado ENADE.
Treine classificar erros por fase: é questão recorrente.
Pratique o pipeline em um exemplo concreto do início ao fim, como x = a + b * 2.
Pense antes de revelar
Qual estrutura é consultada por praticamente todas as fases e por quê?
Revise as cinco fases
O curso inteiro em uma linha
- Semanas 1–2: o que é compilar, abstração e Chomsky.
- Semanas 3–4: léxico (ER, autômatos).
- Semanas 5–7: sintaxe (GLC, parsing, LL(1)).
- Semanas 8–10: semântica, tabela de símbolos, RI.
- Semanas 11–13: execução, geração de código, projeto.
O essencial da disciplina
Atividade em grupo · Banca avaliadora
Em rodízio, os grupos avaliam o projeto uns dos outros.
Roteiro
- Cada grupo apresenta por 5 minutos com demonstração ao vivo.
- A banca (outro grupo) faz 2 perguntas técnicas.
- Preencham uma rubrica: corretude, cobertura das fases, clareza.
- Deem um feedback construtivo por escrito.
Mini-quiz · Aula 14
20 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 Resumo — leve isto para a prova
- As cinco fases conectam-se: a saída de uma é a entrada da próxima.
- Léxico↔ER/autômatos, sintaxe↔GLC/LL(1), semântica↔atributos, RI↔TAC/SDT, código↔seleção/alocação.
- Tabela de símbolos e tratamento de erros são transversais a todas as fases.
- O projeto integrador demonstra o front-end completo, do texto ao TAC.
- Use o simulado ENADE e os mini-quizzes para calibrar a reta final da Avaliação 2.