LRM Prof. Mantovani ← Aulas da disciplina
Semana 14 · Aula 14 de 14

Apresentações · Revisão geral · Prova 2

Fechamento da disciplina: apresentação dos projetos, revisão conectada de todas as fases do compilador e preparação para a Avaliação 2 (e exame).

📚 Compiladores📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Apresentar o projeto integrador com clareza e demonstração ao vivo.

2

Revisar as fases do compilador de forma conectada.

3

Relacionar cada fase ao seu formalismo e sua entrada/saída.

4

Preparar-se para a Avaliação 2 e o exame.

1 · Motivação

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.

💡
Revisar conectando os temas (e não decorando cada um isolado) é o que fixa o conhecimento para a prova e para a vida profissional.
2 · Mapa

O compilador inteiro de relance

As cinco fases, encadeadas:

LéxicaSintáticaSemânticaGeração de RIGeração de código

Acompanhadas, em todas as etapas, pela tabela de símbolos e pelo tratamento de erros.

3 · Conceito

O compilador em uma página

FaseEntrada → SaídaFormalismo
Léxicacaracteres → tokensER / autômatos finitos
Sintáticatokens → árvoreGLC / LL(1)
Semânticaárvore → árvore anotadaGramáticas de atributos
Geração de RIárvore → TACTradução dirigida pela sintaxe
Geração de códigoTAC → assemblySeleção / alocação
4 · Explicaçã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.
5 · Exemplo

A mesma entrada nas cinco fases

Para x = a + b, acompanhe a transformação completa:

// 1. Léxica id(x) = id(a) + id(b) // 2. Sintática Atrib(x, Soma(a, b)) // 3. Semântica tipos OK; x,a,b na tabela // 4. RI t1 = a + b ; x = t1 // 5. Código LOAD R1,a; LOAD R2,b; ADD R1,R1,R2; STORE x,R1
6 · Interativo

Revisão guiada das fases

Passo 1
"Agrupar caracteres em palavras com significado" → fase léxica (ER/autômatos).
Passo 2
"Verificar se a estrutura é válida (parênteses, precedência)" → fase sintática (GLC/LL(1)).
Passo 3
"Conferir declaração e tipos" → fase semântica (atributos, tabela de símbolos).
Passo 4
"Produzir forma neutra independente de máquina" → geração de RI (TAC via SDT).
Passo 5
"Traduzir para a máquina real" → geração de código (seleção/alocação).
7 · Conceito

As apresentações dos projetos

Demonstração ao vivo. Execução do mini-compilador diante da turma, mostrando a transformação entrada → tokens → árvore → TAC para casos reais, incluindo a rejeição de entradas inválidas.

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.

8 · Explicação

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).
9 · Analogia

Revisar é montar o mapa

🗺️ Analogia
Durante o curso, exploramos cada região (fase) separadamente. A revisão é desenhar o mapa completo, mostrando as estradas que ligam uma região à outra: a saída de léxica leva à sintática, que leva à semântica, e assim por diante. Quem só decora cada região perde-se; quem entende as ligações chega a qualquer ponto.
10 · Comparação

Front-end × back-end na revisão

Front-endBack-end
FasesLéxica, sintática, semânticaOtimização, geração de código
Depende deLinguagem-fonteMáquina-alvo
Produz/consomeProduz a RIConsome a RI
FormalismosER, GLC, atributosSeleção, alocação (coloração)

A RI é a fronteira que separa e conecta os dois lados.

11 · Fluxo

A reta final de estudos

Revisar
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.

12 · Aprofundamento

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).
13 · Interativo

Verifique seu entendimento

Qual formalismo está associado à análise sintática?

A sintaxe usa GLC; ER/autômatos são do léxico; coloração de grafos é da alocação de registradores.
14 · Caso prático

Classificando erros na prova

Treine classificar cada mensagem pela fase de origem:

SintomaFase
Símbolo inesperado `#`Léxica
Esperava `)`, encontrou fim de linhaSintática
Variável `y` não declaradaSemântica
Não é possível somar int e stringSemântica (tipos)
15 · Erros comuns

Equívocos frequentes na revisão

⚠️
Inverter a ordem das fases. A análise é léxica → sintática → semântica, nunca o contrário.

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.
16 · Dicas

Estratégia para a Avaliação 2

Estude por conexões: para cada fase, saiba sua entrada, saída e formalismo (a tabela-resumo é seu mapa).

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.
17 · Interativo

Pense antes de revelar

Qual estrutura é consultada por praticamente todas as fases e por quê?
A tabela de símbolos. Embora seja preenchida e mais usada na análise semântica, ela atravessa o compilador: a análise sintática pode consultá-la em algumas linguagens, a semântica a preenche com tipos e escopos, e a geração de código volta a ela para obter as posições de memória das variáveis. Por isso é considerada uma estrutura transversal, ao lado do tratamento de erros — ambos acompanham todas as fases em vez de pertencerem a uma só.
18 · Flashcards

Revise as cinco fases

Léxicavirar
caracteres → tokens; formalismo: ER / autômatos finitos.
Sintáticavirar
tokens → árvore; formalismo: GLC / LL(1).
Semânticavirar
árvore → árvore anotada; formalismo: gramáticas de atributos.
Geração de RI / códigovirar
árvore → TAC (SDT); TAC → assembly (seleção/alocação).
19 · Conexões

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.
20 · Síntese

O essencial da disciplina

🎯
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 atravessam tudo. O projeto integrador demonstra o front-end completo, e o simulado ENADE calibra a reta final para a Avaliação 2.
Mão na massa · colaborativo

Atividade em grupo · Banca avaliadora

Em rodízio, os grupos avaliam o projeto uns dos outros.

⏱️ 40 min👥 turma em bancas🧩 avaliação por pares

Roteiro

  1. Cada grupo apresenta por 5 minutos com demonstração ao vivo.
  2. A banca (outro grupo) faz 2 perguntas técnicas.
  3. Preencham uma rubrica: corretude, cobertura das fases, clareza.
  4. Deem um feedback construtivo por escrito.
Apresentadoresdemonstram o compilador
Bancaavalia e questiona
Relatorregistra o feedback
📤 Entrega: Rubrica preenchida + feedback escrito para o grupo avaliado.
Teste seu conhecimento

Mini-quiz · Aula 14

20 questões sobre esta aula. Escolha e veja a explicação na hora.

0/20

📌 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.