Grammatiche libere da contesto. Grammatiche libere da contesto

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Grammatiche libere da contesto. Grammatiche libere da contesto"

Transcript

1

2 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 studio dei linguaggi naturali dal 1950, e nello studio dei compilatori dal Le grammatiche libere da contesto (CFG) sono la base della sintassi BNF (Backus-Naur-Form). Oggi i CFL sono importanti per XML. Studieremo: CFG, i linguaggi che generano, gli alberi sintattici, gli automi a pila, e le proprieta di chiusura dei CFL.

3 sempio informale di CFG Consideriamo L pal = {w Σ : w = w R } Per esempio: otto L pal, madamimadam L pal. Sia Σ = {0,1} e supponiamo che L pal sia regolare. Sia n dato dal pumping lemma. Allora 0 n 10 n L pal. Nel leggere 0 n il FA deve passare per un loop. Se omettiamo il loop, contraddizione. Definiamo L pal induttivamente: Base: ǫ, 0, e 1 sono palindromi. nduzione: Se w e una palindrome, anche 0w0 e 1w1 lo sono. Nessun altra stringa e una palindrome.

4 Le CFG sono un modo formale per definire linguaggi come L pal. 1. P ǫ 2. P 0 3. P 1 4. P 0P0 5. P 1P1 0 e 1 sono terminali P e una variabile (o nonterminale, o categoria sintattica) P e in questa gramatica anche il simbolo iniziale. 1 5 sono produzioni (o regole)

5 efinizione formale di CFG Una grammatica libera da contesto e una quadrupla dove G = (V,T,P,S) V e un insieme finito di variabili. T e un insieme finito di terminali. P e un insieme finito di produzioni della forma A α, dove A e una variabile e α (V T) S e una variabile distinta chiamata il simbolo iniziale.

6 sempi G pal = ({P}, {0,1},A,P), dove A = {P ǫ,p 0,P 1,P 0P0,P 1P1}. A volte raggruppiamo le produzioni con la stessa testa: A = {P ǫ 0 1 0P0 1P1}. Le espressioni regolari su {0,1} possono essere definite dalla grammatica G regex = ({}, {0,1},A,) dove A = { 0, 1,., +,, ()}

7 sempio spressioni (semplici) in un tipico linguaggio di programmazione. Gli operatori sono + e *, e gli operandi sono identificatori, cioe stringhe in L((a + b)(a + b ) ) Usiamo la grammatica G = ({, },T,P,) dove T = {+,,(,),a,b,0,1} e P e il seguente insieme di produzioni: () 5. a 6. b 7. a 8. b

8 erivazioni Sia G = (V,T,P,S) una CFG, A V, {α,β} (V T), e A γ P. Allora scriviamo αaβ G αγβ o, se e ovvia la G, αaβ αγβ e diciamo che da αaβ si deriva αγβ. Definiamo la chiusura riflessiva e transitiva di, cioe : Base: Sia α (V T). Allora α α. nduzione: Se α β, e β γ, allora α γ.

9 sempio Derivazione di a (a + b00) da nella grammatica delle espressioni: a a () a ( + ) a ( + ) a (a + ) a (a + ) a (a + 0) a (a + 00) a (a + b00) Ad ogni passo potremmo avere varie regole tra cui scegliere, ad esempio a a (), oppure () a (). Non tutte le scelte portano a derivazioni di una particolare stringa, per esempio + non ci fa derivare a (a + b00).

10 erivazioni a sinistra e a destra Derivazione a sinistra lm : rimpiazza sempre la variabile piu a sinistra con il corpo di una delle sue regole. Derivazione a destra rm : rimpiazza sempre la variabile piu a destra con il corpo di una delle sue regole. Der. a sinistra: quella del lucido precedente. A destra: rm rm () rm ( + ) rm ( + ) rm ( + 0) rm rm ( + 00) rm (a + b00) rm ( + b00) rm (a + b00) rm Possiamo concludere che rm a (a + b00) ( + b00) a (a + b00)

11 l linguaggio di una grammatica Se G(V,T,P,S) e una CFG, allora il linguaggio di G e L(G) = {w T : S G w} cioe l insieme delle stringhe su T derivabili dal simbolo iniziale. Se G e una CFG, chiameremo L(G) un linguaggio libero da contesto. sempio: L(G pal ) e un linguaggio libero da contesto.

12 Teorema 5.7: L(G pal ) = {w {0,1} : w = w R } Prova: (direzione ) Supponiamo w = w R. Mostriamo per induzione su w che w L(G pal ). Base: w = 0, or w = 1. Allora w e ǫ,0, or 1. Dato che P ǫ, P 0, and P 1 sono produzioni, concludiamo che P G w in tutti i casi base. nduzione: Supponiamo w 2. Dato che w = w R, abbiamo w = 0x0, o w = 1x1, e x = x R. Se w = 0x0 sappiamo che per l ipotesi induttiva P x. Allora P 0P0 0x0 = w Quindi w L(G pal ). l caso di w = 1x1 e simile.

13 (direzione ) Assumiamo che w L(G pal ) e dobbiamo mostrare che w = w R. Dato che w L(G pal ), abbiamo P w. Faremo un induzione sulla lunghezza di. Base: La derivazione P w ha 1 passo. Allora w deve essere ǫ,0, o 1, tutte palindromi. nduzione: Sia n 1, e supponiamo che la derivazione ha n + 1 steps. Allora dobbiamo avere o w = 0x0 0P0 P w = 1x1 1P1 P dove la seconda derivazione ha n passi. Per l ipotesi induttiva, x e una palindrome.

14 orme sentenziali Sia G = (V,T,P,S) una CFG, e α (V T). Se S α diciamo che α e una forma sentenziale. Se S lm α diciamo che α e una forma sentenziale sinistra, Se S rm α diciamo che α e una forma sentenziale destra Nota: L(G) contiene le forme sentenziali che sono in T.

15 sempi Prendiamo la G delle espressioni. Allora ( + ) e una forma sentenziale perche () ( + ) ( + ) Questa derivazione non e ne a sinistra ne a destra a e una forma sentenziale sinistra, perche lm lm lm a ( + ) e una forma sentenziale destra, perche rm rm () rm ( + )

16 lberi sintattici Se w L(G), per una CFG, allora w ha un albero sintattico, che ci dice la struttura (sintattica) di w w potrebbe essere un programma, una query SQL, un documento XML,... Gli alberi sintattici sono una rappresentazione alternativa alle derivazioni. Ci possono essere diversi alberi sintattici per la stessa stringa dealmente ci dovrebbe essere solo un albero sintattico (la vera struttura), cioe il linguaggio dovrebbe essere non ambiguo. Sfortunatamente, non sempre possiamo rimuovere l ambiguita.

17 ostruzione di un albero sintattico Sia G = (V,T,P,S) una CFG. Un albero e un albero sintattico per G se: 1 Ogni nodo interno e etichettato con una variabile in V. 2 Ogni foglia e etichettata con un simbolo in V T {ǫ}. Ogni foglia etichettata con ǫ e l unico figlio del suo genitore. 3 Se un nodo interno e etichettato A, e i suoi figli (da sinistra a destra) sono etichettati allora A X 1 X 2...X k P. X 1,X 2,...,X k,

18 sempio Nella grammnatica () il seguente e un albero sintattico: + Questo albero sintattico mostra la derivazione +

19 sempio Nella grammatica 1. P ǫ 2. P 0 3. P 1 4. P 0P0 5. P 1P1 il seguente e un albero sintattico: P 0 P 0 1 P 1 ε Mostra la derivazione P 0110.

20 l prodotto di un albero sintattico l prodotto di un albero sintattico e la stringa di foglie da sinistra a destra. Sono importanti quegli alberi sintattici dove: 1 l prodotto e una stringa terminale. 2 La radice e etichettata dal simbolo iniziale. L insieme dei prodotti di questi alberi sintattici e il linguaggio della grammatica.

21 sempio * ( ) a + a 0 0 b l prodotto e a (a + b00).

22 Sia G = (V,T,P,S) una CFG, e A V. seguenti sono equivalenti: 1 A w 2 A lm w, e A rm w 3 C e un albero sintattico di G con radice A e prodotto w.

23 sempio Costruiamo la derivazione a sinistra per l albero * ( ) a + a 0 0 b

24 Supponiamo di aver induttivamente costruito la derivazione a sinistra a lm lm corrispondente al sottoalbero piu a sinistra, e la derivazione a sinistra () ( + ) ( + ) (a + ) lm lm lm lm lm (a + ) lm (a + 0) lm (a + 00) lm (a + b00) corrispondente al sottoalbero piu a destra.

25 Per la derivazione corrispondente all intero albero, iniziamo con lm e espandiamo la prima con la prima derivazione e la seconda con la seconda derivazione: lm lm a lm lm a () a ( + ) lm lm a ( + ) a (a + ) lm lm a (a + ) a (a + 0) lm lm a (a + 00) a (a + b00) lm

26 mbiguita in Grammatiche e Linguaggi Nella grammatica () la forma sentenziale + ha due derivazioni: + + e + Questo ci da due alberi sintattici: + * * + (a) Grammatiche libere (b) da contesto

27 L esistenza di varie derivazioni di per se non e pericolosa, e l esistenza di vari alberi sintattici che rovina la grammatica. sempio: Nella stessa grammatica 5. a 6. b 7. a 8. b la stringa a + b ha varie derivazioni: e + + a + a + a + b b a + b Pero il loro albero sintattico e lo stesso, e la struttura di a + b e quindi non ambigua.

28 Definizione: Sia G = (V,T,P,S) una CFG. Diciamo che G e ambigua se esiste una stringa in T che ha piu di un albero sintattico. Se ogni stringa in L(G) ha al piu un albero sintattico, G e detta non ambigua. sempio: La stringa terminale a + a a ha due alberi sintattici: + * * + a a a a a a (a) (b)

29 imuovere l ambiguita dalle grammatiche Buone notizie: a volte possiamo rimuovere l ambiguita Cattive notizie: non c e nessun algoritmo per farlo in modo sistematico Ancora cattive notizie: alcuni CFL hanno solo CFG ambigue Studiamo la grammatica + () a b a b 0 1 Non c e precedenza tra * e + Non c e raggruppamento di sequenze di operatori: + + e inteso come + ( + ) o come ( + ) +?

30 Soluzione: ntroduciamo piu variabili, ognuna che rappresenta espressioni con lo stesso grado di forza di legamento 1 Un fattore e un espressione che non puo essere spezzata da un * o un + adiacente. nostri fattori sono: 1 dentificatori 2 Un espressione racchiusa tra parentesi. 2 Un termine e un espressione che non puo essere spezzata da un +. Ad esempio, a b puo essere spezzata da a1 o a1. Non puo essere spezzata da +, perche ad esempio a1 + a b e (secondo le regole di precedenza) lo stesso di a1 + (a b), e a b + a1 e lo stesso di (a b) + a1. 3 l resto sono espressioni, cioe possono essere spezzate con * o +.

31 Usiamo F per i fattori, T per i termini, e per le espressioni. Consideriamo la seguente grammatica: 1. a b a b F () 3. T F T F 4. T + T Ora l unico albero sintattico per a + a a e : + T T T * F F F a a a

32 Perche la nuova grammatica non e ambigua? Un fattore e o un identificatore o (), per qualche espressione. L unico albero sintattico per una sequenza f 1 f 2 f n 1 f n di fattori e quello che da f 1 f 2 f n 1 come termine e f n come fattore, come nell albero del prossimo lucido. Un espressione e una sequenza t 1 + t t n 1 + t n di termini t i. Puo essere solo raggruppata con t 1 + t t n 1 come un espressione e t n come un termine.

33 T T * F. T.. T * F T * F F

34 erivazioni a sinistra e ambiguita due alberi sintattici per a + a a + * * + a a a a a a (a) danno luogo a due derivazioni: + + a + a + lm lm lm lm lm a + lm a + a lm a + a lm a + a a e + + a + lm lm lm lm (b)

35 n generale: Un albero sintattico, ma molte derivazioni Molte derivazioni a sinistra implica molti alberi sintattici. Molte derivazioni a destra implica molti alberi sintattici.

36 Teorema 5.29: Data una CFG G, una stringa terminale w ha due distinti alberi sintattici se e solo se w ha due distinte derivazioni a sinistra dal simbolo iniziale. Prova: (Solo se.) Se due alberi sintattici sono diversi, hanno un nodo dove sono state usate due diverse produzioni: A X 1 X 2 X k e B Y 1 Y 2 Y m. Le corrispondenti derivazioni a sinistra useranno queste diverse produzioni e quindi saranno distinte. (Se.) Per come costruiamo un albero da una derivazione, e chiaro che due derivazioni distinte generano due alberi distinti.

37 mbiguita inerente Un CFL L e inerentemente ambiguo se tutte le grammatiche per L sono ambigue. sempio: Consideriamo L = {a n b n c m d m : n 1,m 1} {a n b m c m d n : n 1,m 1}. Una grammatica per L e S AB C A aab ab B cbd cd C acd add D bdc bc

38 Guardiamo la struttura sintattica della stringa aabbccdd. S A B a A b c B d a b c d

39 Vediamo che ci sono due derivazioni a sinistra: e S lm AB lm aabb lm aabbb lm aabbcbd lm aabbccdd S lm C lm acd lm aaddd lm aabdcdd lm aabbccdd Puo essere provato che ogni grammatica per L si comporta come questa. l linguaggio L e quindi inerentemente ambiguo.

40 inguaggi regolari e grammatiche Un linguaggio regolare e anche libero da contesto. Da una espressione regolare, o da un automa, si puo ottenere una grammatica che genera lo stesso linguaggio.

41 a espressione regolare a grammatica Per induzione sulla struttura della espressione regolare: se = a, allora produzione S a se = ǫ, allora produzione S ǫ se = F + G, allora produzione S F G se = FG, allora produzione S FG se = F, allora produzione S FS ǫ

42 sempio spressione regolare: 0 1(0 + 1) Grammatica: S ABC A 0A ǫ B 1 C DC ǫ D 0 1

43 a automa a grammatica Un simbolo non-terminale per ogni stato. Simbolo iniziale = stato iniziale. Per ogni transizione da stato s a stato p con simbolo a, produzione S ap. Se p stato finale, allora produzione P ǫ

44 sempio Automa: Start q 0 q 2 q 1 0, 1 Grammatica: Q 0 1Q 0 0Q 2 Q 2 0Q 0 1Q 1 Q 1 0Q 1 1Q 1 ǫ La stringa 1101 e accettata dall automa. Nella grammatica, ha la derivazione: Q 0 1Q 0 11Q 0 110Q Q

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

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

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

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 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

Proprietà di CFL. C. Bodei Fondamenti di Programmazione a.a. 17/18

Proprietà di CFL. C. Bodei Fondamenti di Programmazione a.a. 17/18 Proprietà di CFL Pumping Lemma per CFL: simile ai linguaggi regolari. Proprietà di chiusura: alcune delle proprietà di chiusura dei linguaggi regolari valgono anche per i CFL. Proprietà di decisione: possiamo

Dettagli

Equivalenza di PDA e CFG. Equivalenza di PDA e CFG

Equivalenza di PDA e CFG. Equivalenza di PDA e CFG quivalenza di PDA e CFG Un linguaggio e generato da una CFG se e solo se e accettato da un PDA per pila vuota se e solo se e accettato da un PDA per stato finale Grammar PDA by empty stack PDA by final

Dettagli

Automi a pila. Automi a pila

Automi a pila. Automi a pila utomi a pila Un automa a pila (PDA) e in pratica un ǫ-nfa con una pila. In una transizione un PDA: 1 Consuma un simbolo di input. 2 Va in un nuovo stato (o rimane dove e ). 3 Rimpiazza il top della pila

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 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: 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 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

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

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

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

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 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

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

Quiz sui linguaggi CF

Quiz sui linguaggi CF Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2018-2019 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli

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

Quiz sui linguaggi CF

Quiz sui linguaggi CF Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2014-2015 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli

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 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

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

Un messaggio di posta elettronica è costituito da una testata e da un corpo La testata contiene indirizzo,.

Un messaggio di posta elettronica è costituito da una testata e da un corpo La testata contiene indirizzo,. 1 Grammatiche Gli automi sono un modello riconoscitivo/traduttivo/elaborativo (di linguaggi): essi ricevono una stringa nel loro ingresso e la elaborano in vari modi Passiamo ora ad esaminare un modello

Dettagli

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo a cura di Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 automi a pila automi a pila e grammatiche non contestuali notazioni sul livello degli esercizi: (*)

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

Parte n.7 Automi a Pila e Grammatiche Libere

Parte n.7 Automi a Pila e Grammatiche Libere Linguaggi di Programmazione Corso C Parte n.7 Automi a Pila e Grammatiche Libere Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Automi a Pila Per il teorema

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

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

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Sistemi di transizioni (2) Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P. Mancarella e

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 Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari roprieta dei Linguaggi Regolari Pumping Lemma. Ogni linguaggio regolare soddisfa una proprieta ben nota, il pumping lemma. Questa tecnica fornisce uno strumento utile per dimostrare che un linguaggio non

Dettagli

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi tati equivalenti Sia A = (Q,Σ,δ,q,F) un DFA, e {p,q} Q. Definiamo p q w Σ : ˆδ(p,w) F se e solo se ˆδ(q,w) F Se p q diciamo che p e q sono equivalenti Se p q diciamo che p e q sono distinguibili In altre

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

Quiz sui linguaggi regolari

Quiz sui linguaggi regolari Fondamenti dell Informatica 1 semestre Quiz sui linguaggi regolari Prof. Giorgio Gambosi a.a. 2016-2017 Problema 1: Data l espressione regolare a, definita su {a, b}, descrivere il linguaggio corrispondente

Dettagli

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.

Dettagli

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.6 Linguaggi Regolari ed Espressioni Regolari Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Linguaggi Regolari

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

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

Linguaggio Formale 2

Linguaggio Formale 2 Linguaggio Formale 2 Ex: Per generare il linguaggio L(G 1 ) = {a n b n c n } si può usare la grammatica G 1 = < {A,B,C}, {a,b,c}, P, A > Con regole di produzione P: 1. A abc 2. A abbc 3. Bb bb 4. Bc Cbcc

Dettagli

Informatica Teorica. linguaggi non contestuali

Informatica Teorica. linguaggi non contestuali Informatica Teorica linguaggi non contestuali di tipo 2 context free (CF) 1 linguaggi non contestuali molte frasi in linguaggio naturale hanno una struttura sintattica non contestuale esempio: soggetto

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

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

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 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

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

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

Alberi binari: definizione e alcune proprietà

Alberi binari: definizione e alcune proprietà Alberi binari: definizione e alcune proprietà Alberi binari Un albero binario è un albero con radice in cui ogni nodo ha al più due figli. In maniera più formale: Definizione. (Alberi binari) Un albero

Dettagli

Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti utomi a stati finiti Gli automi a stati finiti sono usati come modello per Software per la progettazione di circuiti digitali. Analizzatori lessicali di un compilatore. Ricerca di parole chiave in un file

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

Proprieta dei Linguaggi regolari

Proprieta dei Linguaggi regolari Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione.

Dettagli

LINGUAGGI CONTEXT FREE. Lezione Lezione

LINGUAGGI CONTEXT FREE. Lezione Lezione LINGUAGGI CONTEXT FREE Lezione 25-11-2010 Lezione 30-11-2010 2 INTRODUZIONE GERARCHIA DI CHOMSKY 3 4 DEFINIZIONE DEI LINGUAGGI CONTEXT FREE LINGUAGGI CF I linguaggi di tipo 2 sono detti context free (CF)

Dettagli

Trasformazione di un NDFA in un DFA con ε-regole

Trasformazione di un NDFA in un DFA con ε-regole Trasformazione di un NDFA in un DFA con -regole a A B D d b C E c t A B C D E a D E b D D c D,E D E D d C C a - t ( s, q i ) = -chiusura (δ (s, q j )) qj -chiusura ( qi) -Primo passo dell algoritmo modificato

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

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

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

ESERCITAZIONE II. Linguaggi Context Free

ESERCITAZIONE II. Linguaggi Context Free ESERCITAZIONE II Linguaggi Context Free 2 INTRODUZIONE LINGUAGGI CF I linguaggi di tipo 2 sono detti context free (CF) o non contestuali. Sono GENERATI da grammatiche di tipo 2. Dati: VN insieme dei simboli

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

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

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

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini 04 Giugno 2014 Indice 0.1 Automi.................................

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

GRAMMATICHE LIBERE DAL CONTESTO

GRAMMATICHE LIBERE DAL CONTESTO GRAMMATICHE LIBERE DAL CONTESTO Una grammatica è, intuitivamente, un insieme di regole che permettono di generare un linguaggio. Un ruolo fondamentale tra le grammatiche è costituito dalle grammatiche

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 Generalità delle ǫ-transizioni Gli automi non deterministici, come abbiamo visto, possono

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

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2 Alberto Carraro 12 ottobre 2011 DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Automi a stati finiti deterministici

Dettagli

7. Automi a Pila e Grammatiche Libere

7. Automi a Pila e Grammatiche Libere (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari 20 aprile 2016 1 Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi 2 Teorema delle

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

Espressioni regolari. Espressioni regolari

Espressioni regolari. Espressioni regolari ommario delle espressioni regolari Da automi a espressioni regolari Da espressioni regolari ad automi Leggi algebriche per linguaggi spressioni regolari DFA, NFA, ɛ-nfa sono un metodo formale per costruire

Dettagli

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach Forme Normali A partire da una grammatica Context-free G è sempre possibile costruire una grammatica equivalente G ovvero L(G) = L(G ) che abbiano le produzioni in forme particolari, dette forme normali.

Dettagli

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI Un linguaggio di programmazione è uno strumento per esprimere algoritmi in una forma adatta allo loro esecuzione da parte di un elaboratore La formulazione

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3 Alberto Carraro 26 ottobre 2011 DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Automi a a pila deterministici e

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

Alberi: definizioni e dimostrazioni induttive.

Alberi: definizioni e dimostrazioni induttive. Alberi: definizioni e dimostrazioni induttive. Gennaio 2005 Iniziamo con l introdurre la nozione di albero. Con N indichiamo l insieme dei numeri naturali (zero escluso) e con N l insieme delle liste finite

Dettagli

controllo stringa a a b a b b c c b a b x y z pila di memoria

controllo stringa a a b a b b c c b a b x y z pila di memoria Gli automi a pila Dagli automi finiti iti agli automi a pila Possiamo ottenere un automa a pila a partire da un automa finito (così come l abbiamo definito in precedenza), attraverso l introduzione di

Dettagli

Linguaggi e grammatiche

Linguaggi e grammatiche Linguaggi e grammatiche Corso di Fondamenti di Informatica - 1 modulo Corso di Laurea in Informatica Università di Roma Tor Vergata a.a. 2017-2018 Prof. Giorgio Gambosi Alfabeti e linguaggi Alfabeto Un

Dettagli

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE Cosimo Laneve 1 argomenti 1. linguaggi di programmazione 2. definizione formale di insiemi infiniti 3. la grammatica e la notazione BNF 4. notazioni alternative

Dettagli

Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014

Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Il compito è diviso in due parti come i compitini: 1) Automi e Linguaggi e 2) Macchine di Turing e Calcolabilità. Si può consegnare

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

Orario e ricevimento. Automi e Linguaggi Formali. Altre informazioni utili. Sito del corso. Sommario del corso. Linguaggi di programmazione

Orario e ricevimento. Automi e Linguaggi Formali. Altre informazioni utili. Sito del corso. Sommario del corso. Linguaggi di programmazione Orario e ricevimento Automi e Linguaggi Formali Docente: Francesca Rossi -mail: frossi@math.unipd.it Orario: Lunedi, Martedi, Mercoledi, Giovedi 3:3-5:3 LUM25 Crediti: 8 crediti formativi, circa 64 ore

Dettagli

Esempio stringhe palindrome 1

Esempio stringhe palindrome 1 Esempio stringhe palindrome 1 Automa per il riconoscimento del linguaggio L = {w c w R } A = < {s,f}, {a,b,c}, {a,b},!, s, { f } > con! che contiene le transizioni: 1. (( s, a, " ), (s, a)! [ push a] 2.

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 richiami teorici sulle grammatiche di Chomsky esercizivari esercizi su grammatiche ed espressioni regolari

Dettagli

LINGUAGGI FORMALI. Introduzione

LINGUAGGI FORMALI. Introduzione LINUAI FORMALI Introduzione Alfabeto : un qualunque insieme di simboli. (Tratteremo solo alfabeti finiti). Esempio: {a,b,c,,,x,w,y,z} {0.1.2.3.4.5.6.7.8.9} {0,1} Stringa (su un alfabeto) : una sequenza

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

Suffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017

Suffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017 Complementi di Algoritmi e Strutture Dati Suffix Trees Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017 In generale, possiamo trovare tutte le occorrenze di un pattern y in un testo x in tempo O(

Dettagli

Forma Normale di Chomsky

Forma Normale di Chomsky 2. Eliminazione delle produzioni unitarie Forma Normale di Chomsky Una produzione si dice unitaria se è della forma A! B. Le produzioni unitarie in pratica consistono in una ridenominazione di variabili,

Dettagli

Costruzione di espressioni regolari 4

Costruzione di espressioni regolari 4 ostruzione di espressioni regolari 4 Indicando con d uno dei possibili digits {,, 2,,9} --possiamo esprimere il sotto linguaggio dei digits come d = ( + + 2 +.. + 9) Quale linguaggio produce l espressione:

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