📋 Informações
Carga horária: 60h
Pré-requisitos: Teoria da Computação, Estruturas de Dados
Horário: Ter/Qui 10:30 - 12:10
Local: Lab. B
📌 Avaliações
✔️ Prova 1 (50%)
✔️ Prova 2 (30%)
✔️ Projeto prático (20%)
📖 Ementa
- Introdução a compiladores e interpretadores
- Análise léxica – expressões regulares, autômatos
- Análise sintática – descendente e ascendente
- Análise semântica – tabela de símbolos, verificação de tipos
- Geração de código intermediário
- Otimização de código
- Geração de código final
- Projeto: implementação de um pequeno compilador
🗓️ Cronograma
| Semana | Tópico | Atividade |
|---|---|---|
| 1-2 | Apresentação e conceitos, Revisão de Teoria da Computação |
Apresentação da Disciplina Compilador Datatype Linguagem de Templates Interpretador Logo |
| 3 | Análise léxica | Implementação do scanner |
| 4-5 | Análise sintática | Parser recursivo |
| 6-7 | Interpretadores | |
| 8 | 1a Avaliação | |
| 8-9 | Análise semântica | |
| 10-11 | Geração de Código intermediário | |
| 12-13 | Otimização | |
| 13-14 | Código final | |
| 15-18 | Tópicos Avançados Projeto final 2a Avaliação |
📚 Bibliografia
- AHO, A. et al. Compiladores: Princípios, Técnicas e Ferramentas.
- APPEL, J. Modern Compiler Construction in Java
- Ferramenta LARK
- Outras ferramentas...