Resumo da Ementa:
- Tradutores, processos de compilação, análise léxica, análise sintática, recuperação de erros durante a análise sintática, tradução dirigida por sintaxe, geração de código intermediário e geradores automáticos de analisadores estruturais de código.
Objetivo:
- Apresentar algoritmos e técnicas para a implementação de tradutores de linguagens de programação.
Planejamento das Aulas:
1) Introdução 1.1) Compiladores e Teoria das Linguagens Formais. 2) Gramáticas 2.1) Motivação. 2.2) Definição. 2.3) Derivação e redução. 2.4) Linguagens. 2.5) Tipos de gramáticas e linguagens. 2.6) Sentença vazia. 3)Linguagens de Programação 3.1) Conceitos. 3.2) Paradigmas. 3.3) Critérios para avaliação e projeto. 3.4) Especificação. 3.5) Ferramentas para utilização. 4) Análise Léxica 4.1) Autômatos Finitos Determinísticos e Não-Determinísticos 4.2) Determinização e Minimização 4.3) Relação entre AF e GR. 4.4) Conjuntos regulares e Expressões Regulares. 4.5) Aspectos Léxicos de Linguagens de Programação. 4.6) Especificação e implementação de um Analisador Léxico. 5) Análise Sintática 5.1) Gramáticas Livre de Contexto (GLC) 5.1.1) Árvore de derivação, ambigüidade, transformações e simplificações. 5.2) Técnicas de Análise Sintática Ascendentes e Descendentes. 5.3) Aspectos Sintáticos de Ling. de Programação. 5.4) Especificação e implementação de um Analisador Sintático. 6)Análise Semântica 6.1) Aspectos semânticos de linguagens de programação. 6.2) Modelos de Especificação. 6.3) Regras e Ações Semânticas. 6.4) Especificação e implementação de um Analisador Semântico. 7) Geração de código Intermediário, Otimização e Interpretação.
Bibliografia Básica
- PRICE, A. M., TOSCANI, S. S., Implementação de linguagens de programação: Compiladores, Ed. Sagra-Luzzato, 2001;
- LOUDEN, K. C., Compiladores: Princípios e Práticas, Ed. Thomson.
Bibliografia Complementar
- MENEZES, P. B., Linguagens formais e autômatos, Ed. Sagra-Luzzato, 2000;
- Aho, A. V., Compiladores – Principios Tecnicas e Ferramentas, Ed. LTC.
Estudo Dirigido
Material de Aula
.