Cronograma - Compiladores 2026-1

Bem-vindo à disciplina de Compiladores

Esta é a página da disciplina de Compiladores do curso de Engenharia de Computação do CEFET-MG, semestre 2026-1.

Compiladores é uma disciplina fundamental que explora os processos de tradução de linguagens de alto nível para código executável. Com uma carga horária de 4 horas-aula semanais, abordaremos de forma aprofundada as fases de um compilador.

O Projeto Prático: Compilador Java-Pascal

Nesta edição da disciplina, adotaremos uma abordagem “mão na massa” modernizada. Cada aluno irá construir, passo a passo, um compilador completo para uma sublinguagem de Pascal, utilizando a linguagem Java como base e tendo como alvo a Java Virtual Machine (JVM).

O projeto é dividido em 7 etapas incrementais: 1. Infraestrutura e AST: Definição de objetos e tabela de símbolos inicial. 2. Analisador Léxico: Implementação manual de um autômato finito. 3. Analisador Sintático LL: Parser descendente recursivo manual. 4. Analisador Sintático LR: Uso de geradores modernos (ANTLR4). 5. Semântica 1: Escopo, visibilidade e preenchimento de tabelas. 6. Semântica 2: Verificação de tipos e controle de fluxo. 7. Geração de Código: Geração de Bytecode JVM real (Arquivos .class).

Planos de Ensino 2026-1

Cronograma

As aulas ocorrem às segundas-feiras às 13:00 e às quintas-feiras às 16:35 na Sala 34.

Aula Data Conteúdo Capítulo Slides Questionário
1 23/02 Apresentação da Disciplina e Plano de Ensino Capítulo Slides -
2 26/02 Introdução aos Compiladores Capítulo Slides -
3 02/03 Fases de um Compilador Capítulo Slides Quest
4 05/03 Análise Léxica: Conceitos e Autômatos Capítulo Slides Quest
5 09/03 Expressões Regulares e Scanners Capítulo Slides Quest
6 12/03 Ferramentas: Flex Capítulo Slides Quest
7 16/03 Análise Sintática: Fundamentos Capítulo Slides Quest
8 19/03 Gramáticas Livres de Contexto Capítulo Slides Quest
9 23/03 Análise Sintática Descendente (LL) Capítulo Slides Quest
10 26/03 Exemplo de Implementação de Parser LL Capítulo Slides Quest
11 30/03 Análise Sintática Ascendente (LR) Capítulo Slides Quest
12 02/04 Tabelas de Parsing LR/LALR Capítulo Slides Quest
13 06/04 Ferramentas: Bison/Yacc Capítulo Slides Quest
14 09/04 Projeto de Linguagens e AST Capítulo Slides Quest
15 13/04 Análise Semântica: Tabelas de Símbolos Capítulo Slides Quest
16 16/04 Verificação de Tipos e Escopo Capítulo Slides Quest
- 20/04 Recesso (Ponte Tiradentes) - - -
- 23/04 Feriado (São Jorge - Regional) - - -
17 27/04 Prova 1 - - -
18 30/04 Geração de Código Intermediário (IR) Capítulo Slides Quest
19 04/05 Representação SSA Capítulo Slides Quest
20 07/05 Introdução ao LLVM IR Capítulo Slides Quest
21 11/05 Gerenciamento de Memória e Ambientes de Runtime Capítulo Slides Quest
22 14/05 Alocação de Registros Capítulo Slides Quest
23 18/05 Otimização de Código: Peephole e Local Capítulo Slides Quest
24 21/05 Análise de Fluxo de Dados Capítulo Slides Quest
25 25/05 Otimizações Globais Capítulo Slides Quest
26 28/05 Geração de Código de Máquina Capítulo Slides Quest
27 01/06 Seleção de Instruções Capítulo Slides Quest
28 04/06 Escalonamento de Instruções Capítulo Slides Quest
29 08/06 Tópicos Avançados: JIT e Máquinas Virtuais Capítulo Slides Quest
30 11/06 Compilação para WebAssembly (WASM) Capítulo Slides Quest
31 15/06 Revisão para Prova 2 - - -
32 18/06 Prova 2 - - -
33 22/06 Apresentação de Trabalhos - Parte 1 Capítulo Slides Quest
34 25/06 Apresentação de Trabalhos - Parte 2 Capítulo Slides Quest
35 29/06 Seminários de Linguagens Modernas Capítulo Slides Quest
36 02/07 Prova Substitutiva - - -
37 06/07 Prova Final - - -

Distribuição de Pontos

As atividades avaliativas estão divididas entre duas provas teóricas (60%) e o projeto prático incremental (40%). O professor poderá aplicar questionários adicionais a cada etapa.

Atividade Valor Data Entrega
Projeto Etapa 1: AST e Estruturas 02 16/03
Projeto Etapa 2: Léxico Manual 04 30/03
Projeto Etapa 3: Sintático LL Manual 04 13/04
Prova 1 (Teórica) 30 27/04
Projeto Etapa 4: Gramática ANTLR4 04 11/05
Projeto Etapa 5: Semântica (Escopo) 06 25/05
Projeto Etapa 6: Semântica (Tipos) 12 08/06
Prova 2 (Teórica) 30 22/06
Projeto Etapa 7: Geração de Bytecode 08 29/06
Total 100 -

[!NOTE] A Etapa 7 é o fechamento do projeto e sua avaliação está integrada aos pesos das etapas anteriores e apresentação final.

: {tbl-colwidths=“[60,20,20]”}

Conteúdo


Última atualização: r Sys.Date()

De volta ao topo