• Aucun résultat trouvé

CAP. 2 ANALISI LESSICALE

N/A
N/A
Protected

Academic year: 2022

Partager "CAP. 2 ANALISI LESSICALE"

Copied!
17
0
0

Texte intégral

(1)

CAP. 2 ANALISI LESSICALE

• 2.1 Il ruolo dell'analizzatore lessicale

• 2.2 La specificazione delle unità lessicali

• 2.3 Il riconoscimento delle unità lessicali

(2)

2.1 Il ruolo dell'analizzatore lessicale

programma iniziale

analizzatore lessicale

analizzatore sintattico

tabella dei simboli

unità lessicale richiesta

(3)

• Vantaggi della separazione lessicale-sintattica:

Modularità:

chiarezza della concezione del compilatore migliorata

analizzatore sintattico (centro del compilatore) più simplice efficacità migliorata

Trasmette all'analizzatore sintattico, sulla richiesta di esso, la parte necessaria all'analisi sintattica (unità lessicale)

Trasmette per la fase di traduzione le caratteristiche delle unità lessicali (attributi): Inizializza la tabella dei simboli, trasmette il valore dei numeri Rimuove gli spazi e i commenti

(4)

Unità lessicale: categoria di oggetti simili

numero, identificatore, operazione, assegnamento...

Modello: descrive le regole di formazione di ogni unità lessicale Lessema: realizzazione particolare di una unità lessicale,

conforme al modello

area := base*altezza/2

area := base * altezza / 2

Esempio:

22 caratteri, 7 unità lessicali di 4 tipi diversi

numero operazione

identificatore assegnamento

2.2 La specificazione delle unità lessicali

(5)

Esempi:

unità lessicale modello lessemi ammissibili

identificatore sequenza di caratteri area

alfanumerici, cominciando x1a2 con una lettera

numero intero sequenza di cifre 205

assegnamento i due caratteri := :=

operazione uno dei caratteri + – * /

(6)

Descrizione formale dei modelli lessicali:

Espressioni regolari Parole fra

• Insiemi finiti di caratteri

• Prodotti di concatenazione di tali insiemi

• Unioni finite di tali insiemi

• Chiusura transitiva di tali insiemi Varianti e estensioni possibili

Chiuso per intersezione e complementazione (non ovvio) Esempi:

numeri interi  0 | {1 2 3 4 5 6 7 8 9}{0 1 2 3 4 5 6 7 8 9}*

o 0 | {1-9}{0-9}*

(7)

2.2 La riconoscenza delle unità lessicali Casi semplici, diagramma

Esempio: identificatore

{a-z | A-Z}

{a-z | A-Z | 0-9}

Altro = riporre l'ultimo carattere letto sul flusso d'ingresso

(8)

Casi più generali: automi finiti.

Teoria e algoritmi efficaci per trasformare una specificazione data sotto la forma di un'espressione regolare in un tale diagramma.

Utilizzato negli editori di testi, programmi di ricerca di motivi nei testi.

Azioni associate:

• trasmettere il tipo dell'unità lessicale riconosciuta

• conservare le informazioni necessarie alla traduzione:

rappresentazione interna del numero, operazione esatta, ...

Per gli identificatori:

interazione colla tabella dei simboli

inserire o verificare che una stringa è inserita nella tabella

l'informazione necessaria per il traduttore è l'indice in questa tabella

(9)

Questa tabella contiene informazioni su:

• il nome effettivo dell'identificatore

• altre entrate sul tipo, l'indirizzo, la portata, ... che vengono completate da fasi ulteriori.

Caso particolare delle "parole riservate"

Queste, come if, then, for, ... possono essere entrate nella tabella dei simboli dall'inizio, prima della compilazione, coll'indicazione di ritornare un'unità lessicale speciale.

Il programma lex (o il suo variante flex) è un software che trasforma

una descrizione di modelli come espressioni regolari in un'analizzatore lessicale. Le azioni sugli attributi sono incluse come istruzioni C.

Références

Documents relatifs

I con- tributi principali del lavoro sono tre: (a) estensione del metodo basato sull’interspaziatura mediante analisi di corpora, (b) verifica sperimen- tale che la pesatura

Le caratteristiche della distribuzione sono presentate in modo più pregnante con l’ausilio delle curve di Lorenz, che consentono anche di effettuare un confronto fra le

Nelle aree in cui i sistemi sanitari sono uno o il più grande datore di lavoro dei residenti locali, i posti di lavoro nel settore sanitario influenzano le comunità locali in

In una recente memoria (1) ho stabilito, in coordinate generali, varie espressioni in forma euleriana e in forma lagrangiana delle equazioni gene- rali della

alcune condizioni suffi- cienti perchè una matrice reale di ordine n > 2 definita od a radici carat- teristiche tutte a parte reale non positiva rimanga

Per il caso degli spazi V3 di Riemann a gruppo transitivo si mostra che essi ammettono almeno un gruppo semplicemente transitivo reale, dunque almeno una algebra

Si dimostra che ciò accade pure per le successioni di alcune delle derivate delle un, pervenendo cos a teoremi di esistenza nella classe delle funzioni continue

esiste ed è unico un vettore y(x), soluzione in A delle (23), e verifica la limitazione. In particolare, per il sistema di