Compiladores: Introdução À Compilação
Compiladores: Introdução À Compilação
Compiladores: Introdução À Compilação
Introdução à Compilação
Sumário
1. Introdução
3. Fases de um compilador
4. Agrupamento de fases
5. Ferramentas
Histórico
Definição
programa programa
compilador
fonte alvo
mensagens
de erro
esqueleto do
pré-processador programa fonte
programa fonte
programa alvo
montador em linguagem compilador
de montagem
bibliotecas
código de
carregador arquivos
máquina relocável
objetos relocáveis
programa executável
Prof. Edson Alves Compiladores
Introdução Análise do programa fonte Fases de um compilador Agrupamento de fases Ferramentas
Análise e síntese
imc ÷
m ×
h h
Figura: Árvore sintática da fórmula imc = m/h2 .
Prof. Edson Alves Compiladores
Introdução Análise do programa fonte Fases de um compilador Agrupamento de fases Ferramentas
Análise léxica
F = 1.8 * C + 32
1. o identificador F
2. o símbolo de atribuição =
3. a constante em ponto flutuante 1.8
4. o símbolo de multiplicação *
5. o identificador C
6. o símbolo de adição +
7. a constante inteira 32
Análise sintática
enunciado de
atribuição
identificador = expressão
F expressão + expressão
número identificador 32
1.8 C
Figura: Árvore gramatical do enunciado F = 1.8 * C + 32
Análise semântica
As fases de um compilador
analisador gerador de
léxico código
gerência da
tabela de símbolos
analisador otimizador de
sintático código
tratamemto de
erros
Tratamento de erros
analisador
léxico
analisador
sintático
id1 +
* 32
1.8 id2
= =
id1 + id1 +
analisador
semântico
* 32 * intToFloat
=
temp1 = intToFloat(32)
id1 = temp3
1.8 id2 32
Otimização do código
temp1 = intToFloat(32)
id1 = temp3
Figura: Otimização
Geração de código
Interface de vanguarda
Interface de retaguarda
interface de máquina
retaguarda 1 alvo 1
interface de máquina
retaguarda 2 alvo 2
linguagem interface de
fonte vanguarda
...
interface de máquina
retaguarda N alvo N
linguagem interface de
fonte 1 vanguarda 1
linguagem interface de
fonte 2 vanguarda 2
interface de máquina
retaguarda alvo
...
linguagem interface de
fonte N vanguarda N
Referências