Aula Comp 03
Aula 03
Conteúdo
• As fases de um compilador.
• Gramáticas e Linguagens (ênfase em
Regular).
Compiladores
• Com o desenvolvimento de teorias criou se um consenso sobre a estrutura básica desses. • A estrutura independe da linguagem a ser traduzida ou do programa objeto a ser gerado. • Compõem-se de funções padronizadas:
– A análise do programa fonte
– A síntese para a derivação do código objeto.
Processo de Tradução
• é estruturado em fases.
• cada fase se comunica com a seguinte através de uma linguagem intermediaria adequada
Programa Fonte
Analisador
Léxico
Analisador
Sintático
Gerenciador da Tabela de
Símbolos
Tratador de erros
Análise
Analisador
Semântico
Gerador de cód. intermediário
Otimizador de código
Gerador de cód. objeto Programa Alvo
Síntese
Processo de Tradução
• A distinção entre as fases não é muito clara. • Fases agrupadas • Representação intermediária não precisa ser explicitamente construída.
Programa Fonte
Analisador
Léxico
Analisador
Sintático
Gerenciador da Tabela de
Símbolos
Tratador de erros
Análise
Analisador
Semântico
Gerador de cód. intermediário
Otimizador de código
Gerador de cód. objeto Programa Alvo
Síntese
As Fases de Análise
• Á medida que a tradução progride, a representação interna do compilador para o programa fonte muda.
• Enunciado 1:
– montante := depósito + taxa * 60
• Enunciado 2:
– WHILE I<100 do I:=J+I
Análise Léxica
Programa Fonte
Analisador
Léxico
• Objetivo: identificar seqüências de caracteres que constituem unidades léxicas (“tokens”).
• Lê o código fonte, caractere a caractere
• Verifica se os caracteres lidos pertencem ao alfabeto da linguagem
• Despreza comentários e espaços em branco. Análise Léxica
Programa Fonte
Analisador
Léxico
• Os tokens constituem classes de símbolos tais como: –
–
–
–
palavras reservadas, delimitadores, identificadores, etc., • Podem ser representados (internamente)
– Através do próprio símbolo (delimitadores, palavras reservadas) –