prof. bruno moreno aula 2...
TRANSCRIPT
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
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
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