prof. bruno moreno aula 2...

17
Compiladores Prof. Bruno Moreno Aula 2 25/02/2011

Upload: ngotram

Post on 27-Jan-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Compiladores

Prof. Bruno Moreno

Aula 2 – 25/02/2011

O que são tradutores?

Tradutores

Linguagem Fonte Linguagem Objeto

Como é formada uma

Linguagem Natural

Conjunto de

palavras de

determinado idioma

Regras que

constroem frases

Estuda a disposição

das palavras na

frase

Relação lógica das

palavras

Refere-se ao

significado

Como é formada uma

Linguagem Natural

gatopeixeocomeuo

Análise Léxica gato peixe o comeu o

o gato comeu o peixe

o peixe comeu o gatoAnálise Sintática

Análise Semântica

O mesmo ocorre

para Linguagem de

Programação!

Tipos de Tradutores

Montadores (assembler)

Mapeiam instruções em linguagem simbólica

(assembly) para instruções em linguagem de

máquina

Macro-assemblers

Idem que o anterior, porém com uso de MACROS

Compiladores

Mapeiam programas escritos em uma linguagem

de alto nível para programas equivalentes

escritos em linguagem simbólica ou linguagem de

máquina

Execução de LP de alto nível

Programa-fonte

Programa-alvo em

linguagem de montagem

Código de Máquina

Relocável

Código de Máquina Absoluto

Bibliotecas

Arquivos

Objetos Relocáveis

Esqueleto de Programa-fonte

Execução de LP de alto nível

Programa Fonte Programa Objeto

Dados de Entrada Resultados

Tempo de Compilação

Tempo de Execução

Estrutura de um TradutorLinguagem de Alto Nível

Programa Fonte

Linguagem Simbólica ou

Linguagem de Máquina

Programa Objeto

•Divide o programa fonte

nas partes constituintes

•Cria uma representação

intermediária do mesmo

•Constrói o programa alvo

desejado a partir da

representação intermediária

S

Í

N

T

E

S

E

Estrutura de um Tradutor

Analisador

Léxico

Analisador

Sintático

Analisador

Semântico

Gerador de

Código

Intermediário

Otimizador

de Código

Gerador de

Código

Objeto

Tabela de

Símbolos

Tratamento

de Erros

Programa Fonte

A

N

Á

L

I

S

E

Análise Léxica

Análise Léxica

Um fluxo de caracteres é lido da esquerda

para a direita

Identificar seqüência de caracteres que

constituem unidades léxicas

TOKENS

O gato comeu o peixe

Análise Léxica

Passo 1

Procura no dicionário por palavras-chave do

idioma português

Palavras-chave, tokens, unidades léxicas, palavras

reservadas, delimitadores, identificadores...

Tabela de Símbolos

Tabela de Símbolos

Análise Léxica

Passo II: Identifica as palavras reservadas

Cria uma cadeia de palavras reservadas

[o] [gato] [comeu] [o] [peixe]

Prepara o caminho para a próxima fase

Análise Sintática

Análise Léxica

Exemplo 1

while(i<=10){

i = i + j;

}

[while] [(] [i,0] [<=] [10,1] [)] [{] [i,0] [=] [i,0] [+] [j,2] [;] [}]

Posições de Memória

Análise Léxica

Exemplo 2

montante := deposito_inicial + taxa_de_juros * 60

[montante, 0] [:=] [deposito_inicial,1] [+]

[taxa_de_juros, 2] [*] [60, 3]