Analisador Léxico: funções, conceitos, tokens e lexemas
Resumo
O texto explica o papel do analisador léxico em um compilador: ler os caracteres do programa-fonte, agrupá-los em lexemas e produzir uma sequência de tokens para o analisador sintático. Apresenta também suas funções auxiliares, como remover espaços e comentários e apontar erros léxicos, além dos conceitos de token, padrão, lexema e atributos de token, e o papel da tabela de símbolos.
Pontos-chave
- O analisador léxico lê os caracteres do programa-fonte e os agrupa em lexemas, gerando tokens para o analisador sintático.
- Um token é um par formado por um nome abstrato e um valor de atributo opcional.
- Um padrão descreve a forma que os lexemas de um token podem assumir; palavras-chave têm padrão igual à sua sequência exata de caracteres.
- Um lexema é a sequência de caracteres do programa-fonte que corresponde ao padrão de um token.
- Quando mais de um lexema casa com um padrão, como '<' e '<=', o AL passa um valor de atributo para indicar o lexema específico.
- Informações adicionais sobre os lexemas são mantidas na tabela de símbolos.
Analisador Léxico — Funções e Conceitos
Analisador léxico (AL): componente que lê os caracteres do programa-fonte e os agrupa em lexemas, produzindo como saída uma sequência de tokens. O fluxo de tokens é enviado ao analisador sintático (AS) para que a análise sintática seja efetuada.
Função principal
- Ler os caracteres de entrada do programa-fonte e agrupá‑los em lexemas, produzindo uma sequência de tokens para cada lexema do programa.
- Enviar o fluxo de tokens ao analisador sintático (AS) para a análise sintática.
Outras funções
- Preencher a tabela de símbolos com os lexemas (quando o analisador identifica que o lexema é um identificador ou uma constante, por exemplo).
- Remover espaços em branco e demais marcadores, além de comentários.
- Registrar o número de quebras de linha para associar um número de linha a cada mensagem de erro.
- Apontar erros léxicos, associando um número de linha à mensagem de erro.
- Em alguns compiladores, criar uma cópia do programa-fonte (PF) com as mensagens de erro inseridas nas posições apropriadas.
Conceitos fundamentais
O analisador léxico lida com três conceitos principais: token, padrão e lexema.
Token
- Par consistente em um nome e um valor de atributo opcional.
- O nome do token é um símbolo abstrato que representa um tipo de unidade léxica (por exemplo, palavra‑chave ou identificador).
- Os nomes dos tokens são os símbolos de entrada que o analisador sintático processa.
Padrão
- Descrição da forma que os lexemas de um token podem assumir.
- Palavras‑chave têm por padrão a sequência exata de caracteres que as compõe.
- Identificadores e outros tokens assumem uma estrutura mais complexa, que corresponde a muitas sequências de caracteres.
Lexema
- Sequência de caracteres no programa‑fonte que corresponde ao padrão de um token e é identificada pelo analisador léxico como uma instância desse token.
Atributos de tokens
- Quando mais de um lexema casa com um padrão, o analisador léxico precisa oferecer às fases subsequentes informações adicionais sobre qual foi o lexema em particular.
- O token comparison, por exemplo, corresponde a '<' e a '<='; é importante para o gerador de código saber exatamente qual lexema foi encontrado.
- O AL passa ao AS, além do token, um valor de atributo que descreve o lexema representado pelo token.
Tabela de Símbolos
Todas as informações adicionais sobre um determinado lexema são mantidas na Tabela de Símbolos.
Baixar
PDF Word HTMLPerguntas frequentes
O que é um analisador léxico?
É o componente de um compilador que lê os caracteres do programa-fonte e os agrupa em lexemas, produzindo uma sequência de tokens. Essa sequência é enviada ao analisador sintático.
Qual a diferença entre token, padrão e lexema?
O token é um par formado por um nome e um valor de atributo opcional. O padrão descreve a forma que os lexemas de um token podem assumir, e o lexema é a sequência concreta de caracteres do programa que corresponde a esse padrão.
Para que serve a tabela de símbolos no analisador léxico?
Ela guarda todas as informações adicionais sobre um lexema, como identificadores e constantes. O analisador léxico preenche essa tabela ao identificar esses lexemas.
Teste-se
Cartões de revisão
Clique em um cartão para ver a resposta.
Teste
Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.