Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser"

Transcript

1 Ruolo del parser Analisi 1 1 Dipartimento di Matematica e Informatica Universitá di Camerino mariarita.diberardini@unicam.it

2 Ruolo del parser Ruolo dell analisi sintattica

3 Ruolo del parser Metodologie di parsing Parsing Universali: (es: algoritmo di Cocke-Younger-Kasami o l algoritmo di arley) consentono di parsare una qualsiasi grammatica, ma sono piuttosto inefficienti Top-Down Parsing: costruiscono il parse tree dall alto (radice) verso il basso (foglie) Bottom-Up Parsing: costruiscono il parse tree dal basso verso l alto Top-Down e Bottom-Up Parsing sono più efficienti, solo per specifiche sottoclassi di grammatiche alcune di queste sottoclassi (grammatiche LL e LR) sono sufficientemente espressive da permetterci di descrivere la maggior parte dei costrutti dei linguaggi di programmazione per le grammatiche LR esistono dei generatori automatici (YACC)

4 Ruolo del parser Sintassi dei linguaggi Ogni linguaggio di programmazione ha delle regole che prescrivono la struttura sintattica dei programmi ben formati del linguaggio La sintassi dei linguaggi di programmazione può essere convenientemente specificata tramite grammatiche libere da contesto (dette anche Backus-Naur Form BNF) Perchè usiamo le CFG (context free grammars)? Una CFG costituisce una specifica della sintassi precisa e facile da capire Per alcune sottoclassi di CFGs esistono dei tools che consentono di costruire dei parser piuttosto efficienti in maniera automatica La struttura delle regole sintattiche (produzioni) che definiscono una CFG può essere molto utile in fase di traduzione dei vari costrutti del linguaggio Possiamo estendere la sintassi del linguaggio (aggiungendo nuovi costrutti e/o operazioni) in maniera abbastanza semplice

5 Part I Grammatiche Libere da Contesto

6 : Una grammatica libera da contesto è una tupla G = Σ, V, S, P dove: 1 Σ è un alfabeto finito di simboli (detti simboli terminali) 2 V è un alfabeto finito di simboli (simboli non terminali) che rappresentano categorie sintattiche 3 S V è il simbolo non terminale iniziale 4 P è un insieme finito di produzioni della forma A X 1 X 2... X n dove: A è un simbolo non terminale (A V) detto la testa o parte sinistra della produzione la stringa X 1X 2... X n (V Σ) (ogni simbolo X j V Σ è un qualsiasi simbolo terminale o non terminale di G ) è detta corpo o parte destra della produzione X 1X 2... X n può anche essere la stringa vuota (A ǫ)

7 Notazioni Terminali lettere minuscole dell alfabeto: a, b, c,...,a, b, c,... simboli di operatori: +,,,... simboli di punteggiatura cifre stringhe in grassetto: if, id,... Non terminali: lettere maiuscole A, B, C,..., X, Y, Z Stringhe in Σ : lettere minuscole u, v, w, x, y, z,... Stringhe in (V Σ) : lettere minuscole α, β, γ,..., α 1, β 1, γ 1,... Se A α 1, A α 2,..., A α n sono tutte le produzioni per un dato non terminale A possiamo usare la notazione equivalente A α 1 α 2... α n

8 Alberi di derivazione Sia G = Σ, V, S, P una grammatica libera da contesto Un albero di derivazione (o parse tree) di G è un albero i cui nodi sono etichettati con simboli in V Σ e tale che la radice è etichettata con il simbolo iniziale (S) di G ogni foglia è etichettata con un terminale ogni nodo interno è etichettato con un non terminale A ed i suoi figli, presi da sinistra verso destra, sono etichettati con i simboli X 1, X 2,..., X k della parte destra di una qualche produzione A X 1X 2... X k per A La stringa che si ottiene concatenando i simboli associati alle foglie è detta stringa associata all albero di derivazione Diciamo che un albero è un albero di derivazione per una stringa w se w è la sua stringa associata

9 Un esempio Sia G = Σ = {id, +,,, (, )}, V = { }, S =, P dove l insieme P è definito da: + () id Il seguente è un (non il solo) albero di derivazione della stringa è w = id + id id + id id id

10 Linguaggio generato: Sia G = Σ, V =, S, P una grammatica libera da contesto: Il da G denotato da L(G) è l insieme formato da tutte le stringhe di terminali w Σ per cui esiste un albero di derivazione la cui stringa associata è w Possiamo dare una alternativa introducendo il concetto di derivazione di una stringa a partire da una categoria sintattica Una derivazione è una sequenza (anche vuota) di passi di derivazione. Un passo di derivazione consiste nella riscrittura di un qualche non terminale A con la parte destra di una produzione per A Formalmente, sia α (V Σ) contenente almeno un non terminale A ed A X 1 X 2...X k P, allora possiamo riscrivere la stringa: α = βaγ G βx 1 X 2... X k γ

11 Linguaggio generato: Sia G = Σ, V =, S, P una grammatica libera da contesto: Una derivazione di una stringa w Σ a partire dal simbolo iniziale S è una sequenza S = α 0 G α 1 G α 2... G α n = w dove α j G α j+1 è un passo di derivazione, per ogni j [0, n 1] La stringa α j (Σ V) è generata a partire da S mediante un certo numero di passi di derivazione; è anche detta forma sentenziale Se n=0, allora la derivazione è composta dal solo simbolo S S G α: la stringa α è derivata da S mediante zero o più passi di derivazione S + G α: la stringa α è derivata da S mediante uno o più passi di derivazione

12 Linguaggio generato: Sia G = Σ, V =, S, P una grammatica libera da contesto: Il da G è definito come l insieme L(G) = {w Σ S G w} L insieme delle stringhe ottenute tramite derivazioni è uguale a quello definito tramite alberi di derivazione Ad ogni derivazione possiamo associare un albero di derivazione e viceversa

13 Un esempio Sia G definita da: () 3 4 id 5 e consideriamo la seguente derivazione () ( + ) (id + ) (id + id) (4) (3) ( ) (1)

14 Un esempio Sia G definita da: () 3 4 id 5 e consideriamo la seguente derivazione () ( + ) (id + ) (id + id) ( ) ( ) + + (5) (5) id id

15 Per effettuare un passo di derivazione α α dobbiamo: individuare un non terminale A in α e, quindi, partizionare α = βaγ scegliere una produzione della forma A δ ed effettuare la riscrittura α = βaγ βδγ = α Possiamo fissare quale non terminale riscrivere di volta in volta Derivazioni leftmost: riscriviamo sempre il non terminale più a sinista Forma sentenziale sinistra: una qualsiasi forma sentenziale ottenuta durante una derivazione leftmost lm : passo di derivazione leftmost lm : zero o più passi di derivazione leftmost + lm : uno o più passi di derivazione leftmost

16 Derivazioni rightmost: riscriviamo sempre il non terminale più a destra Forma sentenziale destra: una qualsiasi forma sentenziale ottenuta durante una derivazione rightmost rm : passo di derivazione leftmost rm : zero o più passi di derivazione rightmost + rm : uno o più passi di derivazione rightmost

17 Un esempio Sia G la grammatica definita da: + () id Una possibile derivazione leftmost della stringa w = id + id id è: lm + lm id + lm id + lm id + id lm id + id id Una possibile derivazione rightmost della stringa w = id + id id: rm + rm + rm + id rm +id id rm id +id id

18 Grammatiche Ambigue Una grammatica può essere vista come la di un algoritmo (ricorsivo) per generare le stringhe di un linguaggio; questo algoritmo usa per produzioni per costruire l albero di derivazione per una certa stringa Una grammatica si dice ambigua se le sue produzioni permettono di seguire due strade differenti per generare una stessa stringa sistono due alberi di derivazione T e T distinti per una stessa stringa w o, in maniera alternativa, due derivazioni leftmost o rightmost distinte per w La seguente grammatica G è ambigua: + () id lm + lm id + lm id + lm id + id lm id + id id lm lm + lm id + lm id + id lm id + id id

19 Grammatiche Ambigue I due alberi di derivazioni corrispondenti alle due derivazioni leftmost dell esempio precedente + id + id id id id id

20 liminare l ambiguità Per dimostrare che un grammatica è ambigua basta individuare una stringa w per quale esistono due distinti alberi di derivazione la cui stringa associata è w (facile) Per dimostrare che una grammatica non è ambigua bisogna provare l unicità dell albero di derivazione per ogni stringa generata dalla grammatica (non così facile... ) Indicatori di ambiguità: doppia ricorsione: la testa della produzione compare almeno due volte nel corpo della produzione, es + soprattutto in presenza di operatori binari, come nel caso del + L ambiguità deve essere eliminata molti algoritmi di parsing falliscono se la grammatica è ambigua spesso comporta una riscrittura delle produzioni che lascia inalterato il

21 Un costrutto ambiguo: dangling else stmt if expr then stmt if expr then stmt else stmt other Possiamo scrivere un comando del tipo ma, a quale then associamo l else??? if 1 then if 2 then C 1 else C 2 1 primo then: if 1 then (if 2 then C 1 ) else C 2 2 secondo then if 1 then (if 2 then C 1 else C 2 )

22 Caso (1) stmt if expr then stmt else stmt 1 if expr then stmt C 2 2 C 1

23 Caso (2): quello buono stmt if expr then stmt 1 if expr then stmt else stmt 2 C 1 C 2

24 La nuova grammatica Regola di associazione: associamo ogni else con il then non associato (spaiato) più vicino Possiamo incorporare questa regola nella grammatica per eliminare l ambiguità: stmt matched unmatched matched if expr then matched else matched non cond unmatched if expr then stmt if expr then matched else unmatched

25 Un solo albero di derivazione stmt if expr then unmatched stmt 1 matched if expr then stmt else stmt 1 C 1 C 2

26 Associatività e precedenze degli operatori Consideriamo la grammatica + () num ed i due seguenti alberi di derivazione per la stringa w = num + num num + num + num num num num num

27 Associatività e precedenze degli operatori Gli operatori aritmetici hanno delle precedenze: = 3 + (5 7) e non (3 + 5) 7. In base a queste regole semantiche il secondo albero è sbagliato Associatività degli operatori: consideriamo l espressione a quale + associamo il 5? se il + associa a sinistra, allora il 5 viene associato con il + alla sua sinistra, e quindi = (3 + 5) + 7 se il + associa a destra: il 5 viene associato con il + alla sua destra, e quindi = 3 + (5 + 7) Nel caso dell espressione associatività a sinistra: = (2 1) + 3 = 4 associatività a destra: = 2 (1 + 3) = 2

28 Associatività e precedenze degli operatori Come facciamo ad assegnare precedenze ed associatività fra operatori binari attraverso le produzioni della grammatica (struttura sintattica corretta rispetto alla semantica) definire vari livelli di precedenza e per ogni livello si crea un diverso simbolo non terminale per ogni livello si indica se l associatività e a destra o a sinistra Per la grammatica che genera il linguaggio delle espressioni fra numeri naturali abbiamo quattro operatori (+,, e /) e tre livelli di precedenza: 1 Fattori (F): gli operandi, livello di precedenza di precedenza più alto 2 Termini (T): applicazioni di e /, livello di precedenza inferiore a quello dei fattori e associatività a sinistra 3 spressioni (): applicazioni di + e, livello di precedenza inferiore a quello dei termine e dei fattori e associatività a sinistra

29 Una grammatica non ambigua per i numeri naturali F () Un espressione fra parentesi viene considerata come un operando, l uso delle parentesi consente di forzare precedenze e associatività T T F T/F F L associatività a sinistra viene espressa mediante ricorsione a sinistra + T T T

30 Una grammatica non ambigua per i numeri naturali + T T T T T F T/F F F () + T w = T T F F F 2 3 5

31 Una grammatica non ambigua per i numeri naturali + T T T T T F T/F F F () + T T F T F 3 F 1 T T F 2 2

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49 Grammatiche Rosario Culmone, Luca Tesei 20/11/2006 UNICAM - p. 1/49 Grammatiche libere dal contesto Ogni linguaggio di programmazione ha delle regole che prescrivono la struttura sintattica dei programmi

Dettagli

Linguaggi e Traduttori: Analisi sintattica

Linguaggi e Traduttori: Analisi sintattica Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

Linguaggi e Traduttori: Analisi sintattica

Linguaggi e Traduttori: Analisi sintattica Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA

ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA AUTOMI PUSHDOWN input u t w $ v x y z $ pila tabella controllo 2 ARGOMENTI Il compito dell'analisi sintattica Generazione automatica Trattamento

Dettagli

Grammatiche context-free

Grammatiche context-free Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto rammatiche e Linguaggi Liberi da Contesto Data una stringa w L(G), dove G e un CGF, possono esistere diverse derivazioni di w (che tipicamente differiscono per l ordine di applicazione delle produzioni)

Dettagli

Programmazione II. Lezione 3. Daniele Sgandurra 26/10/2010.

Programmazione II. Lezione 3. Daniele Sgandurra 26/10/2010. Programmazione II Lezione 3 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 26/10/2010 1/35 Programmazione II Lezione 3 26/10/2010 Sommario 1 2 Semantica 2/35 Programmazione II Lezione 3 26/10/2010 Parte

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Analisi Sintattica A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Ruolo dell analisi sintattica Un compilatore deve produrre codice oggetto e deve anche controllare

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora una classe piu ampia di linguaggi, i Linguaggi Liberi da Contesto (CFL) i CFL sono stati

Dettagli

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione quivalenza di grammatiche In Informatica (e non solo, naturalmente) esistono sempre molti

Dettagli

Analisi sintattica. Analisi sintattica

Analisi sintattica. Analisi sintattica uolo dell analisi sintattica Un compilatore deve produrre codice oggetto e deve anche controllare che il programma in input sia scritto secondo le regole della sua sintassi L analisi lessicale controlla

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 11 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 06 Aprile 2009 Riassunto delle puntate

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 3 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2009 Riassunto delle puntate

Dettagli

Linguaggi e Traduttori: Analisi sintattica

Linguaggi e Traduttori: Analisi sintattica Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

Supplemento alle dispense di Sintassi

Supplemento alle dispense di Sintassi Supplemento alle dispense di Sintassi Luca Tesei 20 ottobre 2002 1 Formalizzazione Lo scopo di questa sezione è quello di presentare in maniera formale e precisa le nozioni di Automa e di Grammatica Libera

Dettagli

Traduttore diretto dalla sintassi (seconda parte) Giuseppe Morelli

Traduttore diretto dalla sintassi (seconda parte) Giuseppe Morelli Traduttore diretto dalla sintassi (seconda parte) Giuseppe Morelli Traduzione di linguaggi guidata da Grammatiche Context Free La traduzione diretta della sintassi avviene associando regole e/o frammenti

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal

Dettagli

Espressività e limitazioni delle grammatiche regolari

Espressività e limitazioni delle grammatiche regolari Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie

Dettagli

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI ESEMPIO

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI ESEMPIO PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli

Dettagli

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen Linguaggi 4: Universitá di Bologna 24/02/2011 Outline 1 Wikipedia: La sintassi è la branca della linguistica che studia i diversi modi in cui le parole si uniscono tra loro per formare

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli

Dettagli

Grammatiche Parse trees Lezione del 17/10/2012

Grammatiche Parse trees Lezione del 17/10/2012 Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,

Dettagli

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp.

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp. LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Cobol Basic Pascal Python Modula-2

Dettagli

albero sintattico parser scanner Errori sintattici

albero sintattico parser scanner Errori sintattici albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini di regole di produzione di una

Dettagli

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.2 Introduzione ai Linguaggi Formali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Definizioni Preliminari Un

Dettagli

Backus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A ,

Backus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A , p.1/19 Backus Naur Form Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova Linguaggio di programmazione p.2/19 strumento linguistico per scrivere una sequenza di istruzioni (programma)

Dettagli

Bottom-up Parsing. Viable Prefixes, conflitti e formato delle tabelle per il parsing LR

Bottom-up Parsing. Viable Prefixes, conflitti e formato delle tabelle per il parsing LR Bottom-up Parsing Viable Prefixes, conflitti e formato delle tabelle per il parsing LR Viable Prefixes Prima di continuare finiamo il discorso sul parsing shift-reduce in generale C è una ragione importante

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 4 Marzo 2008 Derivazioni canoniche Una derivazione

Dettagli

Yet Another Compiler-Compiler. Generazione automatica di analizzatori sintattici

Yet Another Compiler-Compiler. Generazione automatica di analizzatori sintattici Yet Another Compiler-Compiler Generazione automatica di analizzatori sintattici 2 YACC Yet Another Compiler-Compiler YACC (Bison) è un generatore di analizzatori sintattici a partire dalla descrizione

Dettagli

Esempio. Grammatica E! T E!! T! *F T " F! (E) i. procedure E. ! if cc in FIRST (TE )! then T; E!!! else ERRORE (1); E! T E

Esempio. Grammatica E! T E!! T! *F T  F! (E) i. procedure E. ! if cc in FIRST (TE )! then T; E!!! else ERRORE (1); E! T E Esempio Grammatica E! T E!! E! + T E " T! F T T! *F T " F! (E) i E! T E T! F T E! + T E "!! tabella codici di errore # 1. omissione di operando 2. omissione di operatore 3. simbolo inatteso 4. carattere

Dettagli

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi e Grammatiche Liberi da Contesto N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica

Dettagli

Semantica e traduzione guidata dalla sintassi (cenni)

Semantica e traduzione guidata dalla sintassi (cenni) Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Semantica e traduzione guidata dalla sintassi (cenni) Giacomo PISCITELLI Compile-time semantic evaluation

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=

Dettagli

Ragionamento Automatico Richiami di tableaux proposizionali

Ragionamento Automatico Richiami di tableaux proposizionali Richiami di logica e deduzione proposizionale Ragionamento Automatico Richiami di tableaux proposizionali (L. Carlucci Aiello & F. Pirri: SLL, Cap. 5) La logica proposizionale I tableau proposizionali

Dettagli

Linguaggi di Programmazione dall assembler ai linguaggi di alto livello

Linguaggi di Programmazione dall assembler ai linguaggi di alto livello Linguaggi di Programmazione dall assembler ai linguaggi di alto livello LINGUAGGIO MACCHINA 0 READ 8 READ 9 LOADA 8 3 LOADB 9 4 MUL 5 STOREA 8 6 WRITE 8 7 HALT 8 DATO INTERO 9 DATO INTERO Rappresentazione

Dettagli

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Automi e Linguaggi Formali Automi a stack (Pushdown automata) Automi e Linguaggi Formali Automi a stack (Pushdown automata) A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it Automi a stack Un Pushdown Automata (PDA) o Automa a stack Essenzialmente un ɛ-nfa con

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Traduzione guidata dalla sintassi

Traduzione guidata dalla sintassi Traduzione guidata dalla sintassi Attributi e definizioni guidate dalla sintassi Dipartimento di Matematica e Informatica mariarita.diberardini@unicam.it Analisi Semantica Analisi sintattica - output:

Dettagli

Traduzione guidata dalla sintassi. Attributi e Definizioni guidate dalla sintassi

Traduzione guidata dalla sintassi. Attributi e Definizioni guidate dalla sintassi Traduzione guidata dalla sintassi Attributi e Definizioni guidate dalla sintassi Intro In questa ultima parte del corso vediamo, in breve, una tecnica che permette di effettuare analisi semantiche e traduzione

Dettagli

Intro. Traduzione guidata dalla sintassi. Attributi. Due notazioni a diversi livelli. Due notazioni a diversi livelli. Il flusso concettuale

Intro. Traduzione guidata dalla sintassi. Attributi. Due notazioni a diversi livelli. Due notazioni a diversi livelli. Il flusso concettuale Intro Traduzione guidata dalla sintassi Attributi e Definizioni guidate dalla sintassi In questa ultima parte del corso vediamo, in breve, una tecnica che permette di effettuare analisi semantiche e traduzione

Dettagli

Analisi sintattica. Syntax Analysis. albero. sintattico. parser. scanner. Errori sintattici

Analisi sintattica. Syntax Analysis. albero. sintattico. parser. scanner. Errori sintattici Analisi sintattica Syntax Analysis albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini

Dettagli

Tabelle LALR. Costruzione delle tabelle di parsing LALR. Maria Rita Di Berardini

Tabelle LALR. Costruzione delle tabelle di parsing LALR. Maria Rita Di Berardini Costruzione delle tabelle di parsing LALR Dipartimento di Matematica e Informatica Università di Camerino mariarita.diberardini@unicam.it Metodo LALR Introduciamo l ultimo metodo di costruzione di tabelle

Dettagli

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

Riconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio

Riconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio POLITECNICO I TORINO Laboratorio di Compilatori Corso di Linguaggi e Traduttori mail: stefano.scanzio@polito.it sito: Riconoscitori e analizzatori sintattici ata una grammatica non ambigua ed una sequenza

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

Descrizione dei Linguaggi di Programmazione

Descrizione dei Linguaggi di Programmazione Descrizione dei Linguaggi di Programmazione Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 4 mar, 2016 Sommario 1 Livelli di Descrizione

Dettagli

Verifica se un Linguaggio Regolare è vuoto

Verifica se un Linguaggio Regolare è vuoto Verifica se un Linguaggio Regolare è vuoto Se si suppone di usare la rappresentazione del linguaggio nella sua forma di automa a stati finiti il problema puo essere formulato nel modo seguente: Se esiste

Dettagli

Parte n.4 Linguaggi: Gerarchia ed Operazioni

Parte n.4 Linguaggi: Gerarchia ed Operazioni Linguaggi di Programmazione Corso C Parte n.4 Linguaggi: Gerarchia ed Operazioni Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Gerarchia di Chomsky Sia

Dettagli

Programmazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica

Programmazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica Programmazione Marco Anisetti Università degli Studi di Milano, Dipartimento di Informatica marco.anisetti@unimi.it http://homes.di.unimi.it/anisetti/ Marco Anisetti - 1 / 40 Riepilogo lezione 1 Ruolo

Dettagli

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR: Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)

Dettagli

Parser Bottom UP. Giuseppe Morelli

Parser Bottom UP. Giuseppe Morelli Parser Bottom UP Giuseppe Morelli Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di input partendo dalle foglie (bottom) e risalendo via

Dettagli

LINGUAGGI E TRADUTTORI - 20 giugno Prof. S. Crespi Reghizzi. Automi e espressioni regolari (40%)

LINGUAGGI E TRADUTTORI - 20 giugno Prof. S. Crespi Reghizzi. Automi e espressioni regolari (40%) LINGUAGGI E TRADUTTORI - 20 giugno 2001 - Prof. S. Crespi Reghizzi COGNOME e NOME... MATRICOLA... Tempo a disposizione: 90 minuti. Libri e appunti personali possono essere impiegati. Parte I Punti 30-esimi

Dettagli

Oggetti sintattici. Semantica operazionale dei linguaggi di Programmazione. Oggetti sintattici. Funzioni di valutazione semantica

Oggetti sintattici. Semantica operazionale dei linguaggi di Programmazione. Oggetti sintattici. Funzioni di valutazione semantica Oggetti sintattici Abbiamo più volte sottolineato il fatto che le stringhe di un linguaggio sono di base oggetti simbolici puri Non hanno un significato particolare associato, a parte quello di essere

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 Logica proposizionale Linguaggio matematico

Dettagli

Analisi sintattica. Analisi sintattica. albero. sintattico. parser. scanner. Errori sintattici

Analisi sintattica. Analisi sintattica. albero. sintattico. parser. scanner. Errori sintattici Analisi sintattica Analisi sintattica albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in

Dettagli

Proprietà dei linguaggi non contestuali

Proprietà dei linguaggi non contestuali Proprietà dei linguaggi non contestuali Argomenti della lezione Pumping lemma per i linguaggi non contestuali Proprietà di chiusura Argomenti della lezione Grammatiche non contestuali in forma ridotta

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 6 Marzo 2007 Regole della grammatica di un linguaggio

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 10 Marzo 2008 Struttura di un compilatore

Dettagli

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi.

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi. Dispensa 1 1. Introduzione ai compilatori Compilatore Un compilatore è un programma che legge un programma scritto in un linguaggio (sorgente) e lo traduce in un programma equivalente in un altro linguaggio

Dettagli

Interpreti, compilatori e semantica operazionale

Interpreti, compilatori e semantica operazionale Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 2 Grammatiche e Linguaggi Si ringraziano il Prof. Giovanni Semeraro e il Dott. Pasquale Lops per la concessione del

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z # L con z > k si può esprimere come z=

Dettagli

Le grammatiche formali

Le grammatiche formali Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente

Dettagli

UNIVERSITÀ DEGLI STUDI DI PISA. Compiler Generator: Considerazioni e Confronti

UNIVERSITÀ DEGLI STUDI DI PISA. Compiler Generator: Considerazioni e Confronti UNIVERSITÀ DEGLI STUDI DI PISA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Specialistica in Informatica Tesi di Laurea Compiler Generator: Considerazioni e Confronti Candidato: Gianfilippo

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

Dettagli

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non

Dettagli

Espressioni Regolari

Espressioni Regolari Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2014-2015 / Ricevimento:

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 03 Maggio 2010 Riassunto delle puntate

Dettagli

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto utomi a Pila Un automa a pila (PDA) e una estensione degli automi a stati finiti, che ha una memoria (una pila) Vedremo due modi equivalenti per definire il linguaggio accettato da un PDA Vedremo che la

Dettagli

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima

Dettagli

9 Calcolo dei sequenti LC p

9 Calcolo dei sequenti LC p 9 Calcolo dei sequenti LC p In questa sezione mostriamo un metodo più elegante, semplice e soprattutto AUTOMATICO per mostrare se una proposizione è valida o meno e soddisfacibile o meno. Tale metodo è

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

Definizione di Grammatica

Definizione di Grammatica Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non

Dettagli

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen Esercitazione Ricorsione May 31, 2016 Esercizi presi dal libro di Rosen Problema 2 a) sezione 5.3 Data la seguente funzione definita ricorsivamente come: f(n+1) = 2f(n) f(0) = 3 Determinare il valore di

Dettagli

Fasi di un Compilatore

Fasi di un Compilatore Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 20 Aprile 2009 Riassunto: definire

Dettagli

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java Università degli studi Roma Tre Linguaggi: Sintassi e Semantica Il A cura di A. Orlandini 1 Obiettivi Distinguere la sintassi dalla semantica di un linguaggio Conoscere le convenzioni del meta-linguaggio

Dettagli

Precisiamo il problema di SLR. Tabelle LR. Soluzione. Esempio. Item LR(1) Item LR(1) validi. Costruzione delle tabelle di parsing LR canoniche

Precisiamo il problema di SLR. Tabelle LR. Soluzione. Esempio. Item LR(1) Item LR(1) validi. Costruzione delle tabelle di parsing LR canoniche Precisiamo il problema di SLR Tabelle LR Costruzione delle tabelle di parsing LR canoniche In uno stato i la tabella indica una riduzione con una produzione A αse l insieme di item Ii contiene l item A

Dettagli

Linguaggi di Programmazione e Compilatori

Linguaggi di Programmazione e Compilatori Maria Rita Di Berardini Linguaggi di Programmazione e Compilatori Raccolta Esercizi 10 giugno 2009 Università di Camerino Dipartimenento di Matematica e Informatica Indice 1 Analisi Lessicale...........................................

Dettagli

ANALISI SINTATTICA AUTOMI PUSHDOWN. v x y. input u t w. tabella controllo. pila LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA.

ANALISI SINTATTICA AUTOMI PUSHDOWN. v x y. input u t w. tabella controllo. pila LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA. ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA AUTOMI PUSHDOWN input u t w $ pila v x y z $ tabella controllo 2 ARGOMENTI Il compito dell'analisi sintattica Generazione automatica Trattamento

Dettagli

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto roprieta di CFL Semplificazione di una CFG: se un linguaggio e un CFL, ha una grammatica di una forma speciale. Pumping Lemma per CFL: simile ai linguaggi regolari. Proprieta di chiusura: alcune delle

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 09 Linguaggi Sintassi e Semantica Alfonso Miola Ottobre 2009 http://www.dia.uniroma3.it/~java/fondinf/ Linguaggi - Sintassi e Semantica

Dettagli