Analisi lessicale

L'analisi lessicale è la conversione di un testo in una sequenza di token significativi (in senso semantico o sintattico) appartenenti a categorie definite da un programma apposito detto analizzatore lessicale o lexer. In caso di lingue naturali, queste categorie sono nomi, verbi o aggettivi, mentre in un linguaggio di programmazione sono identificatori, operatori, tipi di dato o simboli come parentesi.

La divisione in token lessicali è affine al tipo usato nei modelli linguistici grandi (LLM) ma con due differenze: mentre l'analisi lessicale si basa su una grammatica, l'analisi degli LLM è probabilistica. In più, quest'ultima effettua un secondo passaggio che converte i token in valori numerici.

Tipicamente l'analisi lessicale interviene nella parte di front end della compilazione e precede l'analisi sintattica.

Esempio

Ad esempio, dato in ingresso il seguente codice:

Programma Pippo
  intero i = 1;
end Pippo

Il flusso di token prodotto sarà il seguente:

Tipo Lessema (valore)
letterale Programma
identificatore Pippo
letterale intero
identificatore i
uguale =
numero 1
punto e virgola ;
letterale end
identificatore Pippo

Da notare che alcuni token potrebbero fare a meno del valore (lessema) (ad esempio il simbolo equal), poiché già indicati dalla tipologia.

Lo strumento che si occupa dell'analisi lessicale è l'analizzatore lessicale, a volte chiamato scanner o lexer.

Bibliografia

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica