Cronograma - Compiladores 2026-1

Bem-vindo à disciplina de Compiladores

logo-compiladores

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