Analisadores Léxicos

Frank Coelho de Alcantara -2020  

Conceito

Cabe ao Analisador Léxico percorrer cada símbolo usado na linguagem de programação e validar conjuntos destes símbolos, strings. A cada string válida na linguagem, damos o nome de lexema.

Cada lexema será representado na memória por meio de um token.

Um token é uma estrutura de dados que contém as informações básicas do lexema.

Token

Cabe a equipe de desenvolvimento da linguagem definir o formato do Token.

No mínimo, o token deve conter a classe do lexema (palavra chave, identificador, inteiro, float, operador, etc.) e o valor do lexema ( for, +, etc.).

Não é raro encontrar o registro da linha e da coluna onde o token se encontra no código.

Estrutura de Dados

O Analisador Léxico precisa saber o que é palavra chave, e quais os lexemas são válidos.

E também irá precisar armazenar os tokens em uma estrutura de dados.

Tradicionalmente, estes dois tipos de dados são armazenados em uma estrutura chamada de Tabela de Símbolos.

Tabela de Símbolos

Uma estrutura de dados que permeia todo o processo de troca de informações entre os módulos do processo de compilação.

Deve ser uma estrutura de dados muito eficiente para escrita, busca e leitura.

Neste momento a análise assintótica se torna relevante.

Uma solução é usar uma hash table cuja informação armazenada está em estruturas específicas.

Na Prática - lexemas

Lexema Token
int Keyword
maior Identifier
( Operator
int Keyword
x Identifier
, Operator
int Keyword
Y Identifier
) Operator
{ Operator
If Keyword