Académique Documents
Professionnel Documents
Culture Documents
Aula 3
Paradigmas
Imperativo, OO, funcional, lógico e
concorrente
O processo de compilação
O que é, para que serve e estrutura geral
Visão geral
Compilação análise
1. Léxica
2. Sintática
3. Semântica
Compilação síntese
1. Geração de código intermediário
2. Otimização de código
3. Geração do código objeto (linguagem máquina)
Formas de descrever uma LP
Análise
Análise Léxica
Tratamento
Análise
Análise Sintática
Sintática de Erros
Análise Semântica
Síntese
Otimização Global
Geração de Código
Tabelas
Otimização Local
Linguagens de Programação 7 /33
Compilador: um exemplo
Fases da transformação
Análise
Análise Léxica
Tratamento
Análise
Análise Sintática
Sintática de Erros
Análise Semântica
Síntese
Otimização Global
Geração de Código
Tabelas
Otimização Local
Linguagens de Programação 10 /33
Compilador: um exemplo
Análise
Análise Léxica
Tratamento
Análise Sintática
Sintática de Erros
Análise Semântica
Síntese
Otimização Global
Geração de Código
Tabelas
Otimização Local
Linguagens de Programação 12 /33
Compilador: um exemplo
Análise
Análise Léxica
Tratamento
Análise
Análise Sintática
Sintática de Erros
Análise Semântica
Síntese
Otimização Global
Geração de Código
Tabelas
Otimização Local
Linguagens de Programação 14 /33
Compilador: um exemplo
Análise
Análise Léxica
Tratamento
Análise
Análise Sintática
Sintática de Erros
Análise Semântica
Síntese
Otimização Global
Geração de Código
Tabelas
Otimização Local
Linguagens de Programação 16 /33
Compilador: um exemplo
Estilo/forma de programação
Imperativa
especifica-se como uma computação deve ser feita para
resolver problemas, passo a passo, via execução de
instruções. Ex: C, Pascal, Java,...
Declarativa
especifica-se qual computação deve ser feita para resolver
problemas. Ex: Haskell, Prolog, Ml,...
Visão geral
Compilação análise
1. Léxica
2. Sintática
3. Semântica
Compilação síntese
1. Geração de código intermediário
2. Otimização de código
3. Geração do código objeto (linguagem máquina)
Formas de descrever uma LP
Em Pascal: a:=b
Sintaxe: comando de atribuição correto
Semântica: substituir o valor de a pelo valor de b
for
int
float
...
Linguagens de Programação 26 /33
Estruturas da compilação
Análise
Análise Léxica
Tratamento
Análise
Análise Sintática
Sintática de Erros
Análise Semântica
Síntese
Otimização Global
Geração de Código
Tabelas
Otimização Local
Linguagens de Programação 27 /33
Estruturas da compilação
x:=x+y*2
Estado final
representado
inicial por um circulo
final com 2 bordas
Linguagens de Programação 30 /33
Análise léxica
Autômatos finitos
AF: exemplos...
1. Cadeia de caracteres a,b,c
4. Identificador
8. Comando While
L a..z
D 0..9
_ underline
= atribuição
Linguagens de Programação 32 /33
Atenção...
Para próxima aula leiam os itens
3.1 a 3.4 do livro do SEBESTA