PLANO DE CURSO  
ANO: 2020
 
CURSO: CIÊNCIA DA COMPUTAÇÃO - Noturno SÉRIE: 4
DISCIPLINA: COMPILADORES    
 

Aulas Teóricas: 105

A) EMENTA

Estudo de teorias e técnicas para construção de compiladores. Análise Léxica e Sintática. Tabelas de Símbolos. Esquemas de Tradução. Ambientes de Tempo de Execução. Geração de Código. Otimização de Código. Montadores. Ligadores.

B) OBJETIVOS / COMPETÊNCIAS

Tem por objetivo conceituar compiladores, montadores e interpretadores. Estudar técnicas para implementação das fases de um compilador, objetivando a implementação do mesmo e as tendências para projeto de linguagens de programação.

C) BASES TECNOLÓGICAS (CONTEÚDO PROGRAMÁTICO)

1. Introdução a compiladores

2. Estrutura e fases de um compilador

3. Análise léxica
3.1. Tokens
3.2. Implementação
3.3. Tabela de Símbolos

4. Análise sintática
4.1. Árvores Sintáticas e árvores abstratas
4.2. Gramáticas Ambíguas
4.3. Análise Sintática Descendente Recursiva
4.4. Análise Preditiva LL(1)
4.5. Conjuntos de Primeiro e Sequência
4.6. Análise Sintática Ascendente LR(0)
4.7. Autômatos Finitos Determinísticos dos Itens LR(0)
4.8. Análise Sintática SLR(1)
4.9. Recuperação de Erros

5. Tradução Dirigida por Sintaxe
5.1. Esquemas de Tradução
5.2. Árvore de Sintaxe
5.3. Desenvolvendo um Tradutor

6. Geração de código
6.1. Linguagens Intermediárias e Geração de Código

7. Tópicos especiais em compiladores
7.1. Otimização de Código
7.2. Dificuldades com Otimização

D) ATIVIDADES DISCENTES

1. Elaboração e Resolução de exercícios
2. Pesquisas individuais e em grupo, abordando aspectos teóricos de conteúdo programático
3. Trabalhos teóricos e práticos de forma individual ou em grupos
4. Elaboração de programas

E) AVALIAÇÃO

1. Provas escritas e/ou práticas
2. Trabalhos individuais e/ou em grupos

F) BIBLIOGRAFIAS

BÁSICAS

AHO, A. V; SETHI, R. & ULLMAN, J. D. Compiladores: Princípios, Técnicas e Ferramentas.
Rio de Janeiro: Ed. Pearson Addison-Wesley, 2008.
PRICE, A M. DE ALENCAR; TOSCANI, S. S. Implementação de linguagens de
programação: Compiladores. Porto Alegre: Instituto de Informática da UFRGS: Ed.
Bookman, 2008.
KENNETH, LOUDEN C. Compiladores: princípios e práticas. Rio de Janeiro:
Thomnon Pioneira, 2004.

COMPLEMENTARES

BAL, HENRI E. / GRUNE, DICK / LANGENDOEN, KOEN.
Projeto moderno de compiladores. São Paulo: Campus, 2001.
BENNET, J. P. Introduction to compiling techniques: a first course using Ansi C, Lex and
yacc. Singapure: McGraw-Hill, 1990.
DELAMARO, M. E. Como construir um compilador utilizando ferramentas JAVA.
Ed. Novatec Editora, 2004.
NETO, J. J. Introdução à Compilação. Rio de Janeiro: LTC, 1988.
PITTMAN, T. & PETERS, J. The art of compiler design. New Jersey: Prentice-Hall,1992.
PYSTER, A. B. Compiler Design and Construction: Tools and Techniques (with C and
Pascal) Thomson International Publishing, 1988.