PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA DEPARTAMENTO: Fundamentos da Computação CURSO: Bacharelado em Ciência da Computação DISCIPLINA: Compiladores I CÓDIGO: 46187 CRÉDITOS: 04 CARGA HORÁRIA: 60 horas-aula VALIDADE: a partir de 2001/II OBJETIVOS:O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de: 1. Descrever, formalmente, os componentes de um compilador; 2. Definir características de linguagens de programação necessárias à compilação; 3. Elaborar rotinas para análise lexicográfica, gerenciamento de tabelas de símbolos, análise sintática e análise semântica; 4. Implementar as principais técnicas de analise gramatical de um compilador EMENTA: Tradução e compilação, etapas da compilação. Análise Léxica : tabela de símbolos. Análise Sintática: construção e geração de analisadores, precedência de operadores, LR. Tradução dirigida por sintaxe : translação, definições, gramática de atributos. Análise semântica estática : verificação de tipos, escopo, equivalência e compatibilidade, coerção, sobrecarga e polimorfismo. N DA UNIDADE: 01 CONTEÚDO: Introdução a Compilação 1.1. Introdução : Fases de um compilador 1.2. Fase de Análise 1.3. Fase de Síntese 1.4. Tabela de símbolos 1.5. Detecção de erros Emitido em: 26/06/17 - 06:11 Página 1 de 3 Carimbo e Assinatura da Unidade: N DA UNIDADE: 02 CONTEÚDO: Análise Léxica 2.1. Funções do Analisador Léxico 2.2. A relação: Analisadores Léxicos x Autômatos Finitos x Expressões Regulares 2.3. Implementação de Analisadores Léxicos 2.4. Tabela de símbolos 2.5. Ferramentas para construção de Analisadores Léxicos N DA UNIDADE: 03 CONTEÚDO: Análise Sintática 3.1. Funções do Analisador Sintático 3.2. A relação : Analisadores Sintáticos x Gramáticas Livres de Contexto 3.3. Analisadores Sintáticos Descendentes 3.3.1. Analisador Preditivo 3.3.2. Analisador Sintático Descendente Recursivo 3.4. Analisadores Sintáticos Ascendentes 3.4.1. Precedência de Operadores 3.4.2. Técnicas LR 3.5. Ferramentas para construção de Analisadores Sintáticos N DA UNIDADE: 04 CONTEÚDO: Tradução dirigida por Sintaxe 4.1. Introdução a Tradução Dirigida por Sintaxe 4.2. Definição Dirigida por Sintaxe 4.3. Esquemas de Tradução N DA UNIDADE: 05 CONTEÚDO: Verificação Semântica 5.1. Sistemas de tipos 5.2. Sub-linguagem de tipos genérica 5.3. Verificação de tipos estática x dinâmica 5.4. Verificação de tipos simples: expressões e comandos 5.5. Equivalência de tipos 5.6. Coerção, Sobrecarga, Polimorfismo Emitido em: 26/06/17 - 06:11 Página 2 de 3 Carimbo e Assinatura da Unidade: BIBLIOGRAFIA LIVRO(S) TEXTO 1. AHO, A.V. ; SETHI, S. & ULMMAN, J. D. and Tools. Reading, Addison-Wesley, 1986 Compilers; Principles, Techiniques LIVRO(S) REFERENCIADO(S) 1. APPEL, A. W.. Modern Compiler Implementation in Java. Cambridge University Press, 1997. 2. SETZER, V. W. & MELO, I. S. H. A construção de um compilador. Rio de Janeiro, Campus, 1983. OUTRAS REFERENCIAS 1. CALINGAERT, P. Assemblers, Compilers and Program Translation. Computer Science Press, Rockville, 1979. 2. HOLUB, A. I. COMPILER DESING IN"C", Prentice-Hall Intrernational Editions. 3. KOWALTOWSKY, T. Implementação de linguagens de programação. Rio de Janeiro, Guanabara Dois, 1983. 4. MELO, J. J. Introdução à compilação. LTC, RJ, 1987. 5. PREMBLEY, J. P. 8 SORENSON, P. G. The Theory and Practice of Compiler Writing. Mc Graw-Hill, International Editions, 1989. 6. LEVINE, J. R. ; MASON, T. ; BROWN, D. Lex & yacc. Cambridge : O'Reilly, 1998. 3 SOFTWARE DE APOIO 1. LEX & YACC Emitido em: 26/06/17 - 06:11 Página 3 de 3 Carimbo e Assinatura da Unidade: