Anda di halaman 1dari 15

Aula N

Aula N

01
01
Compiladores
Compiladores
Prof. Leonardo Pol
Turma: Engenharia da Computao
leonardo.pol@uniceub.br
Introdu
Introdu

o
o
O uso de linguagens de programao de
alto nvel possibilita enorme grau de
abstrao e independncia de plataforma
permitindo o desenvolvimento eficiente de
software.
Como conseqncia tornam-se necessrias
ferramentas de traduo da linguagem de
alto nvel para a linguagem de execuo.
Introdu
Introdu

o
o
O estudo da tcnicas construtivas dos
compiladores no se limita apenas as
questes diretamente envolvidas com
linguagens de programao.
Aplicao de tais tcnicas se expande para
arquitetura de computadores, teoria das
linguagens, algoritmos e engenharia de
software.
Introdu
Introdu

o
o
O uso de algumas poucas tcnicas de
projeto de compiladores pode ser utilizada
para construo de:
tradutores,
formatadores e processadores de texto,
interpretadores (de programas ou queries),
mquinas de estado,
alm de compiladores.
Defini
Defini

o
o
Compilador (sentido geral): aquele de
compila, isto , copia ou transcreve,
podendo ou no traduzir aquilo que
transcrito.
Compilador (software): programa que l um
texto escrito numa linguagem (fonte)
traduzindo-o num texto equivalente escrito
em outra linguagem (alvo).
Defini
Defini

o
o
Programa
Fonte
(linguagem
fonte)
Compilador
(compiler)
Mensagens
de erro
Programa
Alvo
(linguagem
alvo)
Defini
Defini

o
o
As linguagens fonte (source languages) podem
tanto ser linguagens de programao (C,
Pascal, Java, Fortran etc) como linguagens
especializadas (T
E
X, EQN etc).
As linguagens alvo (target languagens) so
tambm variadas tal como outra linguagem
de programao, uma linguagem de
mquina (assembly) ou uma outra
representao.
Tipos de Compiladores
Tipos de Compiladores
Single-Pass: efetuam a compilao numa
nica leitura do programa fonte.
Multi-Pass: efetuam a compilao atravs
de vrias leituras do programa fonte.
Load-And-Go: efetuam a compilao e a
execuo do programa fonte.
Debugging: efetuam a compilao
permitindo a depurao do programa fonte.
Optimizing: efetuam a compilao e a
otimizao do programa alvo.
Modelo An
Modelo An

lise
lise
-
-
S
S

ntese
ntese
Compilao constitui-se de duas partes:
Anlise
Sntese
Programa
Fonte
Programa
Alvo
Anlise Sntese
Significado
Compilador
Modelo An
Modelo An

lise
lise
-
-
S
S

ntese
ntese
Anlise:
Inclui possveis mecanismos de pr-
processamento.
Divide o programa fonte em suas partes
constituintes.
Cria uma representao intermediria do
programa fonte.
uma tarefa relativamente simples.
Modelo An
Modelo An

lise
lise
-
-
S
S

ntese
ntese
Sntese:
Constri o programa alvo a partir da
representao intermediria produzida pela
anlise.
uma tarefa relativamente complexa.
Utiliza a maior parte das tcnicas
especializadas.
Modelo An
Modelo An

lise
lise
-
-
S
S

ntese
ntese
Grande parte das tcnicas se aplicam a
maioria das linguagens fonte e alvo.
Existem vrias ferramentas que facilitam o
desenvolvimento de novos compiladores
ou softwares que usem as mesmas tcnicas.
D origem aos conceitos de:
front-end, relacionado com a linguagem a ser
processada;
back-end: relacionado com a linguagem a ser
produzida.
Sistema de Processamento
Sistema de Processamento
de Linguagem
de Linguagem
Pr-processador
(preprocessor)
Compilador
(compiler)
Montador
(assembler)
Mdulos
fonte
Programa
Fonte
Assembly
Alvo
Loader/Link
Editor
Cdigo
Relocvel
Cdigo
Absoluto
Fases da Compila
Fases da Compila

o
o
Compiladores operam em fases, cada
qual realizando uma transformao no
programa fonte.
Algumas fases podem ser agrupadas.
Tipicamente a Anlise realizada em trs
fases: anlise lxica, sinttica e semntica.
Igualmente a Sntese realizada de uma a
trs fases conforme o tipo de compilador.
Fases da Compila
Fases da Compila

o
o
Anlise
Lxica
Anlise
Sinttica
Anlise
Semntica
Gerao de
Pseudo-Cdigo
Otimizao
de Cdigo
Gerao
de Cdigo
Deteco
de Erros
Tabela de
Smbolos
Programa
Fonte
Programa
Alvo

Anda mungkin juga menyukai