CAP. 2 ANALISI LESSICALE 2.1 Il ruolo dell'analizzatore lessicale

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

I Linguaggi di programmazione
LINGUAGGIO DI PROGRAMMAZIONE C
DFD (Data Flow Diagram)
Strutture di controllo
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Selezione - approfondimento
Analizzatori Lessicali con JLex
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Interfaccia del file system
Programmazione Procedurale in Linguaggio C++
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Caratteri e stringhe di caratteri
TRADUZIONE DEL PROGRAMMA Una volta che un programma sia stato scritto in C, esso non può essere eseguito senza unulteriore traduzione. Ciò perché qualsiasi.
Laboratorio di informatica: ASSEMBLER
Algebra di Boole ed elementi di logica
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
Introduzione agli stream e alle classi
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Il Linguaggio C.
Espressioni condizionali
Gli algoritmi.
Java base I: Sintassi e tipi di dati
LINGUAGGI DI PROGRAMMAZIONE
Elementi di Informatica
Dall’algoritmo al programma.
ELEMENTI DI PROGRAMMAZIONE
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
Automi LAVORO SVOLTO DA MARIO GERMAN O
PROGRAMMAZIONE: linguaggi
Traduzione cap.5 1 CAP.5 LA PRODUZIONE DI CODICE 5.1 I languaggi intermedi 5.2 Le instruzioni di assegnamento 5.3 I collegamenti e le espressioni booleane.
Dispensa a cura del prof. Vincenzo Lo Presti
Introduzione ai linguaggi formali e alle stringhe
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
BIOINFO3 - Lezione 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ECDL Patente europea del computer
Linguaggi per COMUNICARE
1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*
DIVERTIRSI CON SCRATCH
Lezione 3 Struttura lessicale del linguaggio
Dal problema all’ algoritmo
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Automi a pila (1) Un automa a pila (PDA) è M = (Q, S, G, d, q0, Z0, F) dove: Q insieme finito di stati S alfabeto finito di input 3. G alfabeto di pila.
Interpreti e compilatori
Espressioni regolari (1)
Il software Claudia Raibulet
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Esercizi.
Problemi, algoritmi e programmazione
Progettazione degli algoritmi
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
FILE DEI DATABASE FASTA GBFF XML ASN. Formato FASTA Il formato fasta è forse il più utilizzato dai comuni software di ricerca. Esso consiste in un file.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Transcript della presentazione:

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.1 Il ruolo dell'analizzatore lessicale unità lessicale programma iniziale analizzatore lessicale analizzatore sintattico richiesta tabella dei simboli

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 • Vantaggi della separazione lessicale-sintattica: Modularità: chiarezza della concezione del compilatore migliorata analizzatore sintattico (centro del compilatore) più simplice efficacità migliorata (tecniche specifiche per trattamento lessicale) miglioramento della portabilità (meno sensibilità alle particolarità dell'alfabeto)

2.2 La specificazione delle unità lessicali 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 Esempio: area := base*altezza/2 area := base * altezza / 2 identificatore operazione numero assegnamento 22 caratteri, 7 unità lessicali di 4 tipi diversi

unità lessicale modello lessemi ammissibili 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 + – * / * /

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}* identificatore  {a-z | A-Z}{a-z | A-Z | 0-9}*

2.2 La riconoscenza delle unità lessicali Casi semplici, diagramma Esempio: identificatore {a-z | A-Z | 0-9} Altro = riporre l'ultimo carattere letto sul flusso d'ingresso {a-z | A-Z} Convenzione usata: leggere il numero massimo di caratteri Altre convenzioni possibili

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

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.