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!