MINISTÉRIO DA EDUCAÇÃO

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS

DIRETORIA DE GRADUAÇÃO

Plano de Ensino


Identificação da Disciplina

  • Campus: Timóteo
  • Disciplina: Compiladores
  • Código: G07COMP0.01
  • Início: 03/2026

Carga Horária

  • Total: 60 horas-aula
  • Semanal: 04 aulas
  • Créditos: 04

Caracterização

  • Natureza: Teórica
  • Área de Formação – DCN: Profissionalizante
  • Competências/Habilidades: C02, C06, C07
  • Departamento: DECOMTM

Ementa

Conceitos básicos de linguagens, tradutores, interpretadores e compiladores.
Estrutura de um compilador. Análises léxica e sintática.
Tabela de símbolos. Esquemas de tradução.
Ambiente de tempo de execução. Representação intermediária.
Análise semântica. Geração de código. Otimização de código.
Interpretadores.

Estudo de caso: projeto, implementação e teste de um compilador utilizando ferramentas de auxílio ao projeto e construção de compiladores.


Vinculação Curricular

Curso Período Eixo Obrigatória Optativa
Engenharia de Computação Fundamentos de Engenharia de Computação X

Interdisciplinaridades

  • Pré-requisitos: Algoritmos e Estruturas de Dados I
  • Co-requisitos:

Objetivos

A disciplina deverá possibilitar ao estudante:

  1. Conhecer os fundamentos de compiladores.
  2. Justificar a escolha de ferramentas, ambientes e linguagens usados no desenvolvimento de software.
  3. Experimentar o projeto e a implementação de um produto de software complexo.

Unidades de Ensino

Unidade Conteúdo Carga Horária (h/a)
1 Introdução – Processadores de linguagem. Estrutura de um compilador. Expressões regulares, gramáticas e autômatos. 4
2 Análise Léxica – Papel do analisador léxico. Tokens, lexemas, padrões. Tabela de símbolos. Implementação. Geradores léxicos. 6
3 Análise Sintática – Gramáticas livres de contexto. Análise descendente e ascendente. Recuperação de erros. Implementação. Geradores sintáticos. 18
4 Sintaxe – Tradução dirigida por sintaxe. Definições dirigidas por sintaxe. Atributos herdados e sintetizados. Esquemas de tradução. 10
5 Análise Semântica – Compiladores em PLN. Papel do analisador semântico. Verificação de tipo, classe e unicidade. 6
6 Geração de Código – Código intermediário. Código de três endereços. Tipos, expressões, comandos e procedimentos. Projeto de gerador de código. 10
7 Desempenho de Compiladores – Organização de memória. Pilha e heap. Registros de ativação. Acesso a dados não locais. Passagem de parâmetros. 6
Total 60

Bibliografia Básica

  1. AHO, Alfred V. et al. Compiladores: princípios, técnicas e ferramentas. 2. ed. São Paulo: Pearson Addison Wesley, 2007. ISBN 978-85-88639-24-9.
  2. LOUDEN, Kenneth C. Compiladores: princípios e práticas. São Paulo: Cengage Learning, 2004. ISBN 978-85-221-0422-2.
  3. SEBESTA, Robert W. Conceitos de linguagens de programação. 9. ed. Porto Alegre: Bookman, 2011. ISBN 978-85-7780-791-8.

Bibliografia Complementar

  1. ASCENCIO, A. F. G.; ARAÚJO, G. S. Estruturas de dados: algoritmos, análise da complexidade e implementações em Java e C/C++. São Paulo, 2010. E-book.
  2. DE MELO, A. C. V.; DA SILVA, F. S. C. Princípios de linguagem de programação. São Paulo: Blucher, 2003. E-book.
  3. GRUNE, Dick. Modern Compiler Design. 2. ed. New York: Springer, 2012. ISBN 978-1-4614-4698-9.
  4. BORIN, Vinicius Pozzobon. Estrutura de dados. São Paulo: Contentus, 2020. E-book.
  5. SAVITCH, Walter. C++ absoluto. São Paulo: Addison Wesley, 2004. ISBN 85-88639-09-2.

Assinaturas

  • Leonardo Lacerda Alves
    Professor EBTT – DECOMTM
    Assinado digitalmente em 24/10/2025

  • Rodrigo Gaiba de Oliveira
    Coordenador – CECOMTM
    Assinado digitalmente em 24/10/2025


Plano de Ensino nº 2227/2025 – CECOMTM
Documento original disponível no SIG-CEFET/MG.

Back to top