Bruno Neves Rangel
Geter Moura Machado
Gustavo Gonçalves Langa
José Luiz Chaves Junior
Thiago Ferreira Ferrari
Analise Léxica: análise de expressões do
Código Fonte de determinada linguagem com
o objetivo de reconhecer, classificar e
agrupar as palavras dessas expressões.
◦ palavras-chaves da linguagem, operadores,
identificadores, constantes.
elementos que podem ser adequadamente descritos
por meio de gramáticas regulares.
É o componente do Compilador responsável por
ler as expressões do Código Fonte de uma
determinada linguagem, reconhecendo os
respectivos Tokens e atributos quando
necessário.
◦ Duas atividades básicas
Obter as palavras (lexemas) do arquivo a serem
analisadas.
Classificar as palavras lidas em tokens.
Exemplos:
Exemplos:
Lexemas
122
Casa
=
if
Tokens
-
<NUM>
<IDENT>
<OPER>
<IF>
Palavra ou parte da palavra que serve de base
ao sentido por ela expresso. Na língua
portuguesa também é dito como semantema.
São as Palavras lidas do arquivo fonte pelo
Scanner.
Em compiladores o lexema é o conteúdo
“classificado” por determinado Token.
Exemplo:
<IDENT> = “compiladores”;
O lexema de <IDENT> é “compiladores”;
Seqüencia de caracteres que seguem uma
regra simples (Expressão Regular).
Representa toda uma Classe de Lexemas.
◦
◦
◦
◦
◦
Identificadores de variáveis e rotinas.
Palavras reservadas.
Números.
Constantes.
Operadores.
Define as regras de formação dos lexemas
classificáveis por determinado token.
É um meio preciso de se reconhecer
determinadas porções de texto.
EX:
◦ <VAR>
◦ ["a"-"z","A"-"Z"](["0"-"9"]|["a"-"z","A"-"Z"])*
É a infração de uma regra ao determinar um
item léxico. Ou seja, uma seqüência inválida
de caracteres (não reconhecimento).
É a leitura completa de uma entrada feita de
cima para baixo, da esquerda para a direita,
onde o fluxo de caracteres é agrupado em
tokens para que um analisador léxico os
confira.
Uma linguagem regular é uma linguagem formal
(ou seja, um possível conjunto finito ou infinito
de seqüências de símbolos de um determinado
alfabeto) que satisfaz as seguintes propriedades
equivalentes:
Pode ser aceita por :
◦ Uma máquina de estados finitos determinística
◦ Uma máquina de estados finitos não determinística;
Pode ser descrita por :
◦ Uma expressão regular;
Poder ser gerada por :
◦ uma gramática regular;
É uma máquina de estados finitos onde, para
cada par de estados e símbolo de entrada,
existe um próximo estado determinístico.
[(ab)|b]*c
OBRIGADO!
Download

Bruno Neves Rangel Geter Moura Machado Gustavo Gonçalves