3 LexicalAnalysis RMoura 1

1131 palavras 5 páginas
Análise Léxica
• Primeira fase de um compilador
• Objetivo: ler os caracteres de entrada e produzir como saida uma sequência de tokens que o parser vai usar para análise sintática. Analisador léxico
Programa
fonte

Analisador léxico

token getNextToken tabela de símbolos parser

Construindo um analisador léxico
• Especificar tokens e lexemas da linguagem
• Implementar (ou gerar através de ferramenta) o analisador a partir da especificação Outras possíveis tarefas do analisador léxico
• Tratamento de espaços em branco e comentários • Tratamento de mensagens de erro
(localização/impressão)

Organização
• Às vezes dividido em
– scanning – remoção de comentários e espaços em branco duplicados
– Análise léxica propriamente dita – parte mais complexa, onde o scanner produz a sequência de tokens

Analisador léxico x Parser
• Design mais simples – misturar análise léxica com sintática torna o parser bem mais complicado
• Eficiência – separação possibilita construir processadores léxicos e sintáticos mais eficientes. • Portabilidade – variações de dispositivos podem ficar restritas ao analisador léxico.

Tokens, Padrões e Lexemas
• Tokens: par com o nome do token e atributos opcionais.
• Padrão: descrição da forma dos lexemas que um token pode ter
• Lexema: sequência de caracteres que casam com o padrão de um token. Uma instância de um token.

Tokens, padrões e lexemas
• Existem conjuntos de strings na entrada que geram o mesmo token.
• Elas são descritas por padrões associados ao token • O padrão casa cada string do conjunto
• Um lexema é uma sequência de caracteres do programa fonte que casa com um padrão de um token. • Tokens são símbolos terminais da linguagem.

Tokens, padrões e lexemas
• Tokens normalmente são Palavras-chave, operadores, identificadores, constantes, strings literais e símbolos de pontuação, como parenteses e vírgulas. • Padrões normalmente são especificados por expressões regulares.
• Variações de expressões regulares são usadas em
vários

Relacionados