You are on page 1of 17

Construo de Compiladores I

Introduo

Prof. Odilon Nelson


odilon.nelson@gmail.com
http://odilon.rg3.net

Motivao

As tcnicas/algoritmos utilizados no
desenvolvimento de compiladores so aplicveis
a diversos domnios, a exemplo de arquivos de
configurao, sistemas de BD SQL,
processadores de texto, browsers web,...

Motivao

O paradigma de desenvolvimento atravs de


DSL (Domain Specific Languages) defende criar
linguagens especializadas para solucionar
problemas especficos

Evoluo das Linguagens de


Programao
- Linguagem de Mquina
- Linguagem de Montagem (Assembly)
- Macros
- Linguagens de Alto Nvel

Tradutores
Programa Fonte
em Liguagem Fonte
Tradutor
Programa Objeto
em Linguagem Objeto

Tradutores

- Compilador
- Montador (Assembler)
- Processador de Macros (pr-processador)
- Interpretador
- Interpretador Interativo

Estrutura de um Compilador

Estrutura de um Compilador

Analisador Lxico (Scanner): Separa, classifica


grupos de caracteres da linguagem fonte em
grupos logicamente bem definidos, fornecendo
smbolos (tokens)

Estrutura de um Compilador

Analisador Sinttico (Parser): Agrupa os


smbolos numa estrutura sinttica

Estrutura de um Compilador

Analisador Semntico: Valida o contexto dos


smbolos na estrutura sinttica.

Estrutura de um Compilador

Gerador de Cdigo Intermedirio: Usa a estrutura


produzida pelo Analisador Sinttico para criar um
conjunto de instrues simples

Estrutura de um Compilador

Otimizador de Cdigo Intermedirio: Modifica o


cdigo intermedirio para reduzir a quantidade de
memria e/ou o tempo de execuo. Estas
otimizaes so independentes de plataforma.

Estrutura de um Compilador

Gerador de Cdigo Objeto: Produz o cdigo


objeto especificando detalhes da mquina, como
registradores e posies de memria

Estrutura de um Compilador

Otimizador de Cdigo Objeto: Modifica o cdigo


de mquina, usando caractersticas especficas
da plataforma alvo para reduzir a quantidade de
memria e/ou o tempo de execuo

Estrutura de um Compilador

Gerenciamento de Tabelas: Retm os nomes


utilizados no programa e registra as informaes
correspondentes.
A estrutura de dados utilizada a TABELA DE
SMBOLOS

Estrutura de um Compilador

Tratamento de Erros: Acionado sempre que uma


falha detectada no programa fonte, deve prover
mecanismos para comunicar os erros ao usurio
e, se possvel, proporcionar uma recuperao de
contexto, a fim de encontrar o mximo possvel
de erros

Bibliografia Recomendada
AHO, A., SETHI, R. e ULLMAN, J. D.
Compiladores: Princpios, Tcnicas e
Ferramentas, LTC, 1995
LOUDEN, KENNETH C. Compiladores: Princpios
e Prctica Thomson, 2004
MONGIOVI, GIUSEPPE. Construo de
Compiladores, Notas de Aula. Joo Pessoa: 2002
NICOLLETTI, PEDRO S. Compiladores, Notas de

You might also like