Analisador Léxico: funções, conceitos, tokens e lexemas

ComputaçãoAtualizado em 2,8 KB

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.

Teste-se

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 HTML

Perguntas 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

1. Qual é a saída principal do analisador léxico?
2. O que é um lexema?
3. Por que o analisador léxico passa um valor de atributo além do token?
4. Como são descritos os padrões de palavras-chave?
5. Qual destas NÃO é uma função auxiliar do analisador léxico segundo o texto?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.