INF 02834 e INF02783 - Compiladores
Ementa
Departamento de Informática - UFES
CARGA HORÁRIA: 60 hrs
CURSO: CIÊNCIA DE COMPUTAÇÃO e
ENGENHARIA DE COMPUTAÇÃO
I. EMENTA
-
Organização e estrutura de compiladores
e interpretadores.
-
Análise léxica.
-
Análise sintática.
-
Alocação e gerência de memória.
-
Formas internas de programas fonte.
-
Análise semântica.
-
Geração de código.
-
Otimização de código.
II. PROGRAMA
1. INTRODUÇÃO
-
O processo de compilação.
-
Passos de compilação.
-
Função do compilador.
-
A arquitetura geral de um compilador.
-
"Tokens", ou itens léxicos, e unidades sintáticas.
-
Estrutura funcional de um compilador.
2. ANÁLISE LÉXICA
-
Autômatos de estados finitos.
-
Implementação de estados finitos em computadores.
-
Analisador léxico como um autômato finito.
-
Ações semânticas do analisador léxico.
-
Uma linguagem para a especificação de analisadores
léxicos.
-
O projeto de um gerador de analisadores léxicos
(LEX).
-
A implementação de um analisador léxico
usando o LEX.
3. EXPRESSÕES REGULARES E GRAMÁTICAS
-
Expressões regulares.
-
Gramáticas.
-
Gramáticas regulares.
-
Gramáticas livre de contexto.
-
Árvores sintáticas.
-
Comparação entre gramática livre
de contexto e gramática regular.
-
Grafo sintático.
4. ANÁLISE SINTÁTICA
-
O problema da análise sintática.
-
Análise sintática ascendente e descendente.
-
Gramáticas LL(k).
-
Gramáticas ESLL(1).
-
O procedimento do analisador sintático.
-
A pilha sintática.
-
Tratamento automático de erros sintáticos.
-
Geradores de analisadores sintáticos.
-
A implementação de um analisador sintático
usando geradores.
5. TABELAS DE SÍMBOLOS
-
Classes de identificadores e introdução
às rotinas semânticas.
-
Estrutura das tabelas de símbolos.
-
A pilha semântica.
-
Introdução de informações
nas tabelas de símbolos.
6. GERAÇÃO DE CÓDIGO
-
Rótulos e desvios.
-
Temporários.
-
Expressões aritméticas, booleanas e de
relação.
7. GERAÇÃO DE CÓDIGO INTERMEDIÁRIO
-
Linguagens intermediárias
-
Implementação de ações semânticas
para gerar código intermediário, usando-as em um gerador
de analisadores sintáticos.