LRM Prof. Mantovani ← Disciplinas

Compiladores

Da teoria das linguagens à construção de um compilador: análise léxica, sintática, semântica e geração de código — com prática em laboratório.

🎓 Ciência da Computação🏫 Presencial🧩 Sem pré-requisitos
48hTeórica
24hPrática
72hTotal
Extensão
Material das aulas

Aulas interativas, simuladores e simulado

Conteúdo completo das 14 aulas — teoria didática, simulações para testar os conceitos direto no navegador, atividades em grupo e um simulado estilo ENADE com gabarito comentado.

📘 Acessar as aulas → 🧪 Laboratório de simulações 🎯 Simulado ENADE
1 · Identificação

Dados da disciplina

Disciplina
Compiladores
Curso
Ciência da Computação
Modalidade
Presencial
Carga teórica
48h
Carga prática
24h
Carga total
72h
Pré-requisitos
Nenhum
Competências

O que você vai desenvolver

Compreender a aplicação de argumentações lógicas com identificação clara de hipóteses e conclusões, para a construção e o desenvolvimento de projetos e de softwares, utilizando a linguagem da área computacional; explorar os fundamentos da computação para estudos e avanços na área.

2 · Ementa

Ementa

Estudos introdutórios sobre a compilação e o analisador léxico, envolvendo o analisador sintático descendente, a análise semântica e o sistema básico de execução de uma linguagem de programação, em articulação com a organização do computador.

3 · Objetivos

Objetivos

Adquirir conhecimento sobre as fases de um compilador e desenvolver a capacidade de implementar um simulador para computadores digitais.

4 · Conteúdo Programático

Cronograma de 14 semanas

Uma aula por semana. Clique em cada semana para ver os tópicos.

1Introdução à compilaçãoSemana 1
  • O que é um compilador; compilador × interpretador
  • Panorama das fases da compilação
  • Ambiente e ferramentas da disciplina
2Linguagens, gramáticas e estrutura do compiladorSemana 2
  • Níveis de abstração e linguagens de programação
  • Front-end × back-end
  • Hierarquia de Chomsky (visão geral)
3Análise léxica I — tokens e expressões regularesSemana 3
  • Tokens, lexemas e padrões
  • Expressões regulares
  • Especificação léxica de uma linguagem
4Análise léxica II — autômatos finitos (prática)Semana 4
  • AFD e AFN; conversão ER → autômato
  • Construção de um scanner
  • Laboratório: implementação do analisador léxico
5Gramáticas livres de contextoSemana 5
  • GLC, derivações e árvores sintáticas
  • Ambiguidade e precedência
  • Notação BNF/EBNF
6Análise sintática descendenteSemana 6
  • Parsing recursivo-descendente
  • Eliminação de recursão à esquerda e fatoração
7LL(1), FIRST/FOLLOW · Revisão + Prova 1Semana 7
  • Conjuntos FIRST e FOLLOW
  • Tabela preditiva LL(1)
  • Avaliação 1 (semanas 1–6)
8Análise semântica I — gramáticas de atributosSemana 8
  • Atributos sintetizados e herdados
  • Ações semânticas dirigidas pela sintaxe
9Tabela de símbolos e verificação de tipos (prática)Semana 9
  • Tabela de símbolos e escopos
  • Sistema de tipos e checagem
  • Laboratório: análise semântica
10Representação intermediáriaSemana 10
  • Código de três endereços
  • Tradução dirigida pela sintaxe
11Ambiente de execuçãoSemana 11
  • Registros de ativação e pilha de execução
  • Gerência de memória em tempo de execução
12Geração de código e organização do computadorSemana 12
  • Geração de código para a máquina-alvo
  • Relação com a organização do computador
13Projeto integrador — simulador / mini-compilador (prática)Semana 13
  • Integração das fases em um projeto
  • Laboratório de implementação
14Apresentações · Revisão geral · Prova 2 / ExameSemana 14
  • Apresentação dos projetos
  • Revisão geral
  • Avaliação 2 e exame, quando aplicável
5 · Metodologia

Como as aulas acontecem

As aulas são ministradas em laboratório de informática, com auxílio de programas específicos.

Atividades
  • Aulas expositivas, dialogadas e interativas
  • Questionários escritos (Quiz)
  • Resolução de exercícios
Recursos didáticos
  • Textos e artigos digitais
  • Recursos multimídia: imagens, vídeos, mapas conceituais e mentais, Kahoot
  • Estudos de caso
  • Plataforma Moodle
6 · Avaliação

Composição da nota

Avaliação processual, diagnóstica, formativa e contínua ao longo de toda a disciplina.

InstrumentoAtividadeNaturezaPeso
AvaliaçãoProva teórica/prática individualConceitual6,0
TrabalhoProjeto / atividades em grupoProcedimental2,0
QuizExercícios / questionamentos individuaisAtitudinal e conceitual2,0
Aprovação direta com média final ≥ 7,0.
Direito a exame com média parcial ≥ 5,0.
Frequência mínima de 75% exigida por lei.
7 · Bibliografia

Referências

Básica

  • AHO, A. V.; SETHI, R.; ULLMAN, J. D. Compiladores: princípios, técnicas e ferramentas. Rio de Janeiro: LTC, 1995. ISBN 8521610572.
  • PRICE, A. M. A.; TOSCANI, S. S. Implementação de linguagens de programação: compiladores. 3. ed. Porto Alegre: Bookman, 2008. ISBN 9788577803484.
  • GRUNE, D. Projeto moderno de compiladores: implementação e aplicações. Rio de Janeiro: Campus, 2001. ISBN 8535208763.

Complementar

  • LEWIS, H. R.; PAPADIMITRIOU, C. H. Elementos de teoria da computação. 2. ed. Porto Alegre: Bookman, 2008.
  • FOROUZAN, B. A.; MOSHARRAF, F. Fundamentos da ciência da computação. São Paulo: Cengage, 2011.
  • SIPSER, M. Introdução à teoria da computação. São Paulo: Thomson, 2007.
  • HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introdução à teoria de autômatos, linguagens e computação. Rio de Janeiro: Elsevier, 2003.
  • MENEZES, P. B. Linguagens formais e autômatos. 5. ed. Porto Alegre: Bookman, 2008.