Escolar Documentos
Profissional Documentos
Cultura Documentos
Análise Léxica
2
Funções do Analisador Léxico
• Outras funções do Analisador Léxico:
• Diagnóstico de erros
3
Definições
• Token: é cada uma das unidades lógicas do programa fonte.
Exemplo de tokens:
• Identificadores
• Palavras reservadas
• Operadores
• Números
4
Definições
Token Lexema
Exemplo: identificador soma
soma = a + b; operador de atribuição =
identificador a
operador dor de soma +
identificador b
delimitador ;
6
Fluxograma do Analisador Léxico
token
Programa Analisador Analisador Para análise
fonte Léxico Sintático semântica
getNextToken
Tabela de
Símbolos
7
Tabela de Símbolos
• É uma estrutura de dados gerada pelo compilador com o
objetivo de armazenar informações sobre os nomes
definidos no programa fonte (identificadores de variáveis,
de parâmetros, de funções, etc)
8
Erros Léxicos
• Símbolo não pertencente ao conjunto de símbolos terminais da
linguagem:
$
• Tamanho do identificador:
minha_variavel_para_...
10
Para prosseguir...
• Método do Pânico: remoção de sucessivos
caracteres da entrada, até que o Analisador
encontre um caractere que sinalize o início de um
novo token
int an@lisador;
12
Projeto do Analisador Léxico
• É desejável que se usem notações formais para
especificar e reconhecer a estrutura dos tokens que
serão retornados pelo analisador léxico
– Evitam-se erros
– Mapeamento mais consistente e direto para o programa
de análise léxica
• Notações
– Gramáticas ou expressões regulares: especificação de
tokens
– Autômatos finitos: reconhecimento de tokens
13
Autômato para Operadores Relacionais
14
Autômato para Número
15
Autômato para Identificador
16
Implementação de um AF
• Tentativa de reconhecimento da cadeia
00110. 0
1
1
q0 q1
s c Saída
q0 0 ACEITO
q2
q0 0
q0 1
q1 1
q1 0
q2 eof 17