Analisi Lessicale: Linguaggi Regolari

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Analisi Lessicale: Linguaggi Regolari"

Transcript

1 Analisi Lessicale: Linguaggi Regolari Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 18 mar, 2016

2 Sommario 1 Espressioni Regolari Linguaggi Formali e Operazioni 2 Automi a Stati Finiti Automi Non-Deterministici Automi Deterministici ɛ-chiusura 3 Grammatiche Regolari 4 Corrispondenze Espressioni Regolari Automi DFA Grammatiche Regolari Grammatiche Espressioni Regolari 5 Minimizzazione Automi Indistinguibilità Tabella a Scala 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

3 Introduzione Trasformazione stringa di caratteri in lista di token Teoria del linguaggi formali Come si implementa? Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

4 Introduzione [... cont.] Scopo: riconoscere nella stringa in ingresso gruppi di caratteri che corrispondono a categorie sintattiche trasformare la stringa di caratteri in sequenze di simboli astratti token da passare all analisi sintattica Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

5 Introduzione [... cont.] separazione tra analisi lessicale e sintattica motivi teorici? motivi pratici? tecnologie più efficienti maggiore semplificazione della specifica e struttura del compilatore semplicità nella descrizione del linguaggio (progettazione macchina astratta / programmazione) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

6 Token Token rappresentazione astratta di una sottostringa in ingresso nome, valore nome simbolo astratto che rappresenta una categoria sintattica es.: identificatore, operatore, parola chiave,... valore la stringa letta in ingresso Osservazione il valore può essere sottinteso quando la relazione nome-valore è 1-a-1 (es. parole chiave) Esempio token IDE, x1 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

7 Token [... cont.] Specifica lessicale di un linguaggio: descrizione dei suoi token attraverso pattern che identificano la forma dei suoi lessemi pattern descrizione generale della forma dei valori del token (cfr. espressioni regolari) lessema la stringa istanza del pattern Esempio pattern: (x y)(x y 0 1) lessema: x1 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

8 Token [... cont.] Esempio Nella stringa in C: if (x > 0) printf("positivo"); potrebbero essere riconosciuti i token: IF, IDE, printf, (, (, IDE, x, CONSTSTR, positivo, OPREL, >, ), CONSTNUM, 0, ;. ), Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

9 Agenda 1 Espressioni Regolari Linguaggi Formali e Operazioni 2 Automi a Stati Finiti 3 Grammatiche Regolari 4 Corrispondenze 5 Minimizzazione Automi 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

10 Stringhe e Operazioni Alfabeto: insieme di simboli finito e non vuoto di simboli Esempi Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} alfabeto delle cifre decimali Σ = {a, b, c,..., z} alfabeto delle lettere (minuscole) Stringa (o parola) w su un alfabeto Σ: sequenza finita di simboli s 1 s 2 s n tale che i {1,..., n} : s i Σ La lunghezza di w è pari ad n e si denota con w Esempi Alcune stringhe su Σ sono aaba, aca, cbaa, b,... Dato Σ = {0, 1} sia w = con w = 7 La stringa vuota, denotata con ɛ, è la parola priva di simboli ( ɛ = 0) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

11 Stringhe e Operazioni [... cont.] Si denota con Σ l insieme di tutte le stringhe su Σ Osservazione Σ : ɛ Σ Esempio Dato Σ = {0, 1} risulta Σ = {ɛ, 0, 1, 00, 01, 10, 11, 000, 001,...} Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

12 Stringhe e Operazioni [... cont.] Date w, z Σ, si definisce l operazione di concatenazione: w z Osservazioni non commutativa ɛ elemento neutro: w ɛ = ɛ w = w Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

13 Stringhe e Operazioni [... cont.] Iterando, si ottiene una forma esponenziale Data w Σ, potenza k-esima di w: w k = { ɛ k = 0 ww k 1 k > 0 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

14 Linguaggi Formali Definizione Un linguaggio L su un alfabeto Σ è un sottoinsieme di Σ : L Σ Osservazioni, {ɛ} e Σ sono linguaggi su Σ = 0 1 = {ɛ} Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

15 Linguaggi Formali [... cont.] Esempi Linguaggio finito L = {ɛ, aab, aaaabb}. Linguaggio infinito L = {a i b 2i i 0}. Linguaggio delle parentesi bilanciate L {(, )} : (())() L e ()(()()) L mentre (()() L e ())(() L Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

16 Linguaggi Formali [... cont.] Dati due linguaggi L e L definiti sullo stesso alfabeto Σ: prodotto L L = {w = w 1 w 2 Σ w 1 L w 2 L } unione L L = {w Σ w L w L } iterazione L k = { {ɛ} se k = 0 L k 1 L se k > 0 potenza L + = k>0 k L chiusura positiva (o transitiva) L = L 0 L + = {ɛ} L + chiusura di Kleene (transitiva e riflessiva) L = {w 1... w n Σ n N i = 1,..., n : w i L} Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

17 Linguaggi Formali [... cont.] Altre operazioni complemento L = {w Σ w L} intersezione L L = {w Σ w L w L } riflessione L R = {w R w L} dove la stringa riflessa w R di una stringa w inverte l ordine dei simboli Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

18 Espressioni Regolari Espressioni e linguaggi regolari: 1 ɛ è una espressione regolare (ER) L(ɛ) = {ɛ} 2 a è una ER per ogni a Σ L(a) = {a} 3 (r) è una ER, per ogni ER r L((r)) = L(r) 4 (r) (s) è una ER, per ogni coppia di ER r, s L((r) (s)) = L(r) L(s) 5 (r) (s) è una ER, per ogni coppia di ER r, s L((r) (s)) = L(r) L(s) 6 (r) è una ER, per ogni r L((r) ) = L(r) 7 nient altro è una ER Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

19 Espressioni Regolari [... cont.] Osservazioni il simbolo di concatenazione può essere omesso le parentesi possono essere omesse essendo le op. associative a sinistra e imponendo la precedenza: > > Esempio (((a) (b)) ((a) (b))) (a) si può scrivere in modo compatto come: (a b) (a b) a (((1) )(0)) (2) si può scrivere Per ogni linguaggio possono esistere diverse ER che lo denotano Esempio L[(ab) a] = L[a(ba) ] Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

20 Espressioni Regolari [... cont.] Esempi i) ab b definisce il linguaggio {ab, b} ii) a(a b)b definisce {aab, abb} iii) a sta per {a n n 0} = {ɛ, a, aa, aaa, aaaa,...} iv) b a c denota per {b n a n 0} {c} Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

21 Espressioni Regolari [... cont.] Identità: si definisce una relazione d equivalenza tra ER in base ai linguaggi definiti: r = s se e solo se L[r] = L[s] Proprietà commutatività di r r = r r associatività di r (r r ) = (r r ) r associatività di r(r r ) = (rr )r ɛ elem. neutro per ɛr = rɛ = r idempotenza di r = r distributività a sinistra di su r(r r ) = rr rr distributività a destra di su (r r )r = rr r r Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

22 Espressioni Regolari [... cont.] Estensioni rip. positiva r + = rr = r r possibilità r? = r ɛ elenco [a 1,..., a n ] = a 1 a n dove a i Σ se sussiste una rel. d ordine tra i simboli: [a 1 -a n ] = a 1 a n Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

23 Linguaggi Regolari Definizione (Linguaggio Regolare) Un linguaggio L è regolare se L = oppure L = L(r) per qualche espressione regolare r Esempio Dato Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,.} l ER: [0-9] + (ɛ.[0-9] + ) denota il linguaggio dei numeri decimali (senza segno) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

24 Linguaggi Regolari [... cont.] Definizioni Regolari dato Σ d 1 := r 1 d 2 := r 2... d n := r n dove d i sono nuovi simboli e ogni r i è una ER sull alfabeto Σ {r j 1 j i 1} Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

25 Esercizi { } 1 Dato L = 0 n 1 2n 0 n 2, determinare L 2 e L 3 { } 2 Dato L = a k b k k > 0, determinare L 2 e L 3 3 Dato L = {00, 01, 100}, stabilire se appartengono a L w w w Quali di queste appartengono a L 4? 4 Dato L = { 0 n 1 n n > 0 }, determinare L [scomporre nelle varie sotto-stringhe] [scomporre in sotto-insiemi (disgiunti) definiti anche ricorsivamente] 5 Determinare una ER per identificatori C 6 Determinare una ER per numeri in notazione scientifica es E-7 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

26 Agenda 1 Espressioni Regolari 2 Automi a Stati Finiti Automi Non-Deterministici Automi Deterministici 3 Grammatiche Regolari 4 Corrispondenze 5 Minimizzazione Automi 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

27 Automi a Stati Finiti Problema: riconoscere i lessemi ed associarli ai token Automi Modelli astratti di macchine in input su un nastro, fatto da celle contenenti un simbolo ciascuna, stringhe su un dato alfabeto d ingresso Σ lettura L-to-R (con/senza terminatore) un simbolo alla volta una unità di controllo a stati finiti determina il funzionamento della macchina Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

28 Automi a Stati Finiti [... cont.] b b a a a a q 3... q 2 δ q n q 1 q 0 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

29 Automi a Stati Finiti [... cont.] Diagrammi di transizione per descrivere automi Esempio [0-9] [0-9] [0-9]. [0-9] A B C D riconosce [0-9] + (ɛ.[0-9] + ) accetta 23 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

30 Automi a Stati Finiti [... cont.] Esempio [0-9] E. F [0-9] riconosce [0-9] + (ɛ.[0-9] + ) ma anche altre stringhe Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

31 Automi a Stati Finiti [... cont.] Esempio riconoscere (a b) ba a b a b non determinismo: nello stato 0 si legge b per accettare deve esistere almeno un percorso che porti ad uno stato finale accetta bba e abba, rifiuta aabb Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

32 Automi Non-Deterministici Un automa finito non deterministico (NFA) è una quintupla Σ, Q, δ, q 0, F dove Σ è un alfabeto finito di simboli di input; Q è un insieme finito di stati; δ è la funzione di transizione δ : Q (Σ {ɛ}) P(Q) q 0 Q stato iniziale; F Q stati finali Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

33 Automi Non-Deterministici [... cont.] matrice di transizione: δ a 1 a 2 a n ɛ q 0 q q m Esempio automa precedente δ a b ɛ 0 {0} {0, 1} 1 {2} 2 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

34 Automi Non-Deterministici [... cont.] Un NFA N = Σ, Q, δ, q 0, F accetta w = a 1 a n sse nel diagramma di transizione esiste un cammino da q 0 a uno stato di F nel quale w è esattamente la stringa che si ottiene concatenando le etichette degli archi percorsi Il linguaggio accettato da un NFA N è l insieme L[N] = {w Σ N accetta w} Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

35 Automi Non-Deterministici [... cont.] formalmente: δ : P(Q) Σ P(Q) δ (Q i, za) = δ(q, a) δ (Q i, ɛ) = a Σ δ(q i, a) q δ (Q i,z) w accettata sse: q F : q δ ({q 0 }, w) L[N] = {w Σ δ ({q 0 }, w) F } Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

36 Automi Non-Deterministici [... cont.] ɛ ɛ 2 a 4 ɛ ɛ 0 1 ɛ ɛ ɛ b a b ɛ 5 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

37 Automi Deterministici Un automa finito deterministico (DFA) è una quintupla Σ, Q, δ, q 0, F dove Σ è un alfabeto finito di simboli di input; Q è un insieme finito di stati; δ è la funzione di transizione δ : Q Σ Q q 0 Q (lo stato iniziale); F Q (gli stati finali). Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

38 Automi Deterministici [... cont.] B a a a A b D b b b C a DFA per (a b) ba Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

39 Equivalenza DFA NFA Dato un linguaggio accettato da un NFA è sempre possibile costruire un DFA per lo stesso linguaggio? Definizione (ɛ-chiusura) Dato un NFA, sia q Q: la ɛ-chiusura di q (ɛ-clos(q)) è il più piccolo insieme di stati raggiungibili da q via ɛ-transizioni: q ɛ-clos(q) e se p ɛ-clos(q) allora δ(p, ɛ) ɛ-clos(q) Per estensione, sia P Q ɛ-clos(p) = p P ɛ-clos(p) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

40 Equivalenza DFA NFA [... cont.] Calcolo ɛ-clos(p) 1 T P; // iniz. 2 ɛ-clos(p) P; // iniz. 3 4 while T { 5 scegli r T; 6 T T \ {r}; 7 foreach s δ(r, ɛ) 8 if (s / ɛ-clos(p)) { 9 ɛ-clos(p) ɛ-clos(p) {s}; 10 T T {s}; 11 } 12 } Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

41 Equivalenza DFA NFA [... cont.] Mossa (non deterministica) mossa : P(Q) Σ P(Q) mossa(p, a) = p P δ(p, a) Dallo stato q, consumando a, un NFA potrà transitare in uno degli stati in ɛ-clos(mossa(ɛ-clos({q}), a)) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

42 Equivalenza DFA NFA [... cont.] Costruzione Sottoinsiemi (stati del DFA) sia N = Σ, Q, δ, q 0, F 1 S ɛ-clos(q 0 ); // insieme di stati 2 T {S}; // insieme di sottoinsiemi 3 4 while P T non marcato { 5 marca P; 6 for each a Σ { // calcolo arco uscente 7 R ɛ-clos(mossa(p, a)); // raggiunto con mossa+chiusura 8 definisci (P, a) = R; 9 if R / T 10 T T {R}; // nuovo, aggiunto non marcato 11 } 12 } Si definisce il DFA M N = Σ, T,, ɛ-clos(q 0 ), F dove F = {R T R F } Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

43 Equivalenza DFA NFA [... cont.] Esempio 2 a b a b 5 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

44 Equivalenza DFA NFA [... cont.] init: ɛ-clos(0) = {0, 1, 2, 3, 7} = A e T = {A} T = {A}: (A, a) = ɛ-clos(mossa(a, a)) = = ɛ-clos(4) = {1, 2, 3, 4, 6, 7} = B, e T = T {B} (A, b) = ɛ-clos(mossa(a, b)) = = ɛ-clos({5, 8}) = {1, 2, 3, 5, 6, 7, 8} = C, e T = T {C} T = {A, B, C}, si marca B e si calcolano gli archi uscenti: (B, a) = ɛ-clos(mossa(b, a)) = ɛ-clos({4}) = B T (B, b) = ɛ-clos(mossa(b, b)) = ɛ-clos({5, 8}) = C T T = {A, B, C}; si marca C con archi uscenti calcolati: (C, a) = ɛ-clos(mossa(c, a)) = = ɛ-clos({4, 9}) = {1, 2, 3, 4, 6, 7, 9} = D, e T = T {D} (C, b) = ɛ-clos(mossa(c, b)) = ɛ-clos({5, 8}) = C T T = {A, B, C, D}; si marca D e si assegnano gli archi uscenti: (D, a) = B (D, b) = C A stato iniziale, chiusura dello stato iniziale del NFA D unico stato finale perché contiene lo stato 9 del NFA Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

45 Equivalenza DFA NFA [... cont.] stati NFA stato DFA {0, 1, 2, 3, 7} A {1, 2, 3, 4, 6, 7} B {1, 2, 3, 5, 6, 7, 8} C {1, 2, 3, 4, 6, 7, 9} D A a B b a a D b b a b C Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

46 Equivalenza DFA NFA [... cont.] Teorema Sia N = Σ, Q, δ, q 0, F un NFA e sia M N il DFA ottenuto con la costruzione per sottinsiemi. Risulta che L[N] = L[M N ] Teorema La classe dei linguaggi riconosciuti dagli NFA coincide con la classe dei linguaggi riconosciuti dai DFA. Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

47 Esercizi [Approfondimento 3.2] Esercizio Ricavare un DFA dal NFA per (a a(a b)b) a 0 a a,b 1 2 b Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

48 Agenda 1 Espressioni Regolari 2 Automi a Stati Finiti 3 Grammatiche Regolari 4 Corrispondenze 5 Minimizzazione Automi 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

49 Grammatiche Regolari Una grammatica libera è regolare sse ogni produzione ha la forma V aw oppure V a con V, W NT e A T. Per S è ammessa anche S ɛ Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

50 Grammatiche Regolari [... cont.] Esempio Sia G = {A, B, C}, {a, b}, A, R con R dato da A aa bb, B bb ac a, C aa bb Grammatica regolare tale che L[G] = (a b) ba Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

51 Agenda 1 Espressioni Regolari 2 Automi a Stati Finiti 3 Grammatiche Regolari 4 Corrispondenze Espressioni Regolari Automi DFA Grammatiche Regolari Grammatiche Espressioni Regolari 5 Minimizzazione Automi 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

52 Espressioni Regolari Automi Teorema Data un espressione regolare r, si può costruire un NFA N r tale che L[r] = L[N r ] Dim. per induzione r ɛ i f r a i a f Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

53 Espressioni Regolari Automi [... cont.] i s N[s] f s r s t i f i t N[t] f t r st i N[s] s f s /i N[t] t f t Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

54 Espressioni Regolari Automi [... cont.] r s i i N[s] s f s f Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

55 DFA Grammatiche Regolari Teorema Da un DFA M si può definire una grammatica regolare G M tale che L[M] = L[G M ] Dim. Sia M = Σ, Q, δ, q 0, F il DFA. La grammatica G M = Q, Σ, R, q 0 ha: non terminali NT = Q, stati di M; terminali T = Σ, alfabeto d ingresso di M; simbolo iniziale S = q 0 ; produzioni R: per ogni δ(q i, a) = q j : q i aq j R e q i a R se q j F Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

56 DFA Grammatiche Regolari [... cont.] Esempio dato B a a a A b D b b C b a la grammatica corrispondente G = {A, B, C, D}, {a, b}, A, R con R dato da A ab bc, B ab bc, C ad a bc, D ab bc Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

57 Grammatiche Espresioni Regolari Teorema Il linguaggio definito da una grammatica regolare G è un linguaggio regolare: è vuoto, oppure è possibile costruire un espressione regolare r G tale che L[G] = L[r G ] Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

58 Grammatiche Espresioni Regolari [... cont.] [Approfondimento 3.6] Grammatica definizione ricorsiva di un linguaggio (sistema di produzioni/equazioni) NT: variabili T: costanti Soluzione: (L Σ ) per la variabile S NT Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

59 Grammatiche Espresioni Regolari [... cont.] Esempio data A aa b c ɛ può essere considerata come un equazione tra linguaggi: L A = {a}l A {b} {c} {ɛ} soluzione (più piccola): A = a (b c ɛ) si sostituisce la ricorsione su A con la chiusura di Kleene e la si concatena con le alternative non ricorsive Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

60 Grammatiche Espresioni Regolari [... cont.] Esempio G con A simbolo distintivo e produzioni/equazioni A = aa bb c (1) B = ca ab d (2) risolviamo prima la (2): B = a (ca d) sostituendo B nella (1): A = aa b(a (ca d)) c = aa ba ca ba d c = (a ba c)a ba d c quindi: A = (a ba c) (ba d c) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

61 Grammatiche Espresioni Regolari [... cont.] Caso generale G regolare con NT = {A 1,..., A n } e T = Σ come sistema lineare di n equazioni in n incognite: A 1 = a 11 A 1 a 1n A n b 11 b 1p A 2 = a 21 A 1 a 2n A n b 21 b 2p. A n = a n1 A 1 a nn A n b n1 b np dove a ij e b hk sono elementi (non necessariamente distinti) di Σ Si parte da un A i S, si risolve e si sostituisce nelle altre eq. fino a risolvere per il simbolo distintivo (soluzione generale) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

62 Corrispondenza per i Linguaggi Regolari ESPRESSIONI REGOLARI NFA GRAMMATICHE REGOLARI DFA Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

63 Esercizi Esercizio Ricavare una grammatica dal DFA a,b F b A b C a b a a b E b B a D a [Approfondimento 3.5] Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

64 Esercizi [... cont.] Esercizio Sia G grammatica regolare con R dato da ricavare l ER corrispondente A ab bc, B ab bc, C ad a bc, D ab bc Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

65 Agenda 1 Espressioni Regolari 2 Automi a Stati Finiti 3 Grammatiche Regolari 4 Corrispondenze 5 Minimizzazione Automi Indistinguibilità Tabella a Scala 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

66 Indistinguibilità Siano q 1 e q 2 due stati di un DFA e x Σ x distingue q 1 e q 2 sse i. il cammino che parte da q 1 e consuma x arriva in q F, ma il cammino che parte da q 2 e consuma x arriva in q / F ii. oppure, viceversa, il cammino che parte da q 1 e consuma x arriva in q / F, e il cammino che parte da q 2 e consuma x arriva in q F q 1 e q 2 sono indistinguibili se nessuna x Σ li distingue La relazione di indistinguibilità è una relazione d equivalenza Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

67 Indistinguibilità [... cont.] Esempio A b a b Osservazione B C b a b a a D ɛ distingue ogni stato in F da ogni stato in Q \ F, quindi sono distinguibili: {A, D}, {B, D} e {C, D} a distingue B da C essendo δ(b, a) = B mentre δ(c, a) = D, e {B, D} già distinguibili e anche {A, C} e {C, D} b non distingue alcuna coppia A e B indistinguibili: da entrambi gli stati le stringhe che iniziano con a portano a B le stringhe che iniziano con b portano a C Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

68 Tabella a Scala Sia M = Σ, Q, δ, q 0, F un DFA. Un elemento (p, q) della tabella può contenere: nulla: p e q non sono ancora distinti; X : p e q sono distinguibili; alcune coppie (p, q ): se p e q sono distinguibili, allora tutte le (p, q ) saranno distinguibili Esempio q 1 q 2 q 3 q 0 q 1 q 2 Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

69 Tabella a Scala [... cont.] Algoritmo di riempimento della tabella 1 marca (X) ogni (p, q) tale che p F e q Q \ F o viceversa; 2 per ogni altra (p, q): se esiste un a Σ con (δ(p, a), δ(q, a)) già marcata con X: i. marca (p, q) con X; ii. marca con X tutte le coppie elencate in (p, q), e procedi ricorsivamente alla marcatura di tutte le coppie marcate in questo modo; altrimenti, per ogni a Σ tale che δ(p, a) δ(q, a), metti (p, q) nella lista di (δ(p, a), δ(q, a)) 3 sia J l insieme delle coppie che non contengono X 4 la relazione di indistinguibilità I Q Q sarà: I = J {(q, q) q Q} {(q, p) (p, q) J} chiusura riflessiva e simmetrica di J Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

70 Tabella a Scala [... cont.] a B a a (a) inizio (b) marca coppie distinte da ɛ (c) marca coppie distinte da a A b D b b b C a B C D A B C (a) B C D X X X A B C (b) B C X X D X X X A B C (c) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

71 Tabella a Scala [... cont.] Teorema Dato un DFA M = Σ, Q, δ, q 0, F, l algoritmo di riempimento della tabella a scala termina. Due stati p e q sono distinguibili se e solo se la casella (p, q) (ovvero (q, p)) è marcata con X. Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

72 Automa Minimo Dato il DFA M = Σ, Q, δ, q 0, F, l automa minimo equivalente è M min = Σ, Q min, δ min, [q 0 ], F min con: Q min = Q/I insieme delle classi di equivalenza [q] Q di I δ min ([q], a) = [δ(q, a)] F min = {[q] q F} Teorema Dato un DFA M = Σ, Q, δ, q 0, F, l automa M min riconosce lo stesso linguaggio di M, ed ha il minimo numero di stati tra tutti gli automi per questo linguaggio Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

73 Automa Minimo [... cont.] Esempio dato il DFA 0 1 A B A B A C C D B D D A E D F F G E G F G H G D da cui si ricava: la tabella a scala risultante è: B X C X X D X X X E X X X F X X X X G X X X X X H X X X X X X X A B C D E F G 0 1 A, G B, F A, G B, F A, G C, E C, E D B, F D D A, G Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

74 Automa Minimo [... cont.] Esempio DFA: [Ausiello et al.] a b tabelle a scala risultanti (iniziale/finale) 1 2 X X 3 X X 4 X X 5 X X 6 X X (3,6) 2 X X 3 X X X 4 X X (2,5) X 5 X X (0,1) X (2,4) 6 X X X (2,5) X X Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

75 Automa Minimo [... cont.] Indistinguibili I = {(0, 1), (2, 4), (2, 5), (4, 5), (3, 6)} quindi Q/I = {{0, 1}, {2, 4, 5}, {3, 6}} da cui si ricava: a b [0] [0] [2] [2] [2] [3] [3] [0] [2] Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

76 Agenda 1 Espressioni Regolari 2 Automi a Stati Finiti 3 Grammatiche Regolari 4 Corrispondenze 5 Minimizzazione Automi 6 Pumping Lemma linguaggi regolari Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

77 Pumping Lemma per Linguaggi Regolari Teorema (Pumping Lemma linguaggi regolari) Sia L un linguaggio regolare. Esiste una costante N > 0 tale che, ogni z L con z N può essere suddivisa in tre sottostringhe z = uvw tali che (i) uv N; (ii) v ɛ; (iii) per ogni k 0, uv k w L Inoltre N è minore o uguale del numero di stati del DFA minimo che accetta L Osservazioni condizione necessaria ma non sufficiente da usare per dimostrare che un linguaggio non è regolare Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

78 Pumping Lemma per Linguaggi Regolari [... cont.] Dim. (cenni) Si considera un DFA tale che L(M) = L con N = Q e z L, z = a 1 a 2 a l con l N Percorso d accettazione di z (sequenza di stati q (0), q (1),..., q (l) ): a q (0) 1 a q (1) 2 a i a i+1 a q (i) l q (l) con q 0 = q (0) e q (l) F Sono l + 1 stati ma z = l N = Q quindi c è (almeno) uno stato ripetuto nella sequenza: i, j {0,..., l} : q (i) = q (j) con i < j e (i + j) N Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

79 Pumping Lemma per Linguaggi Regolari [... cont.] q (0) u a 1 a i q (i) q (j) w a j+1 a l q (l) v a i+1 a j z = uvw e q (l) F costituisce uno stato di accettazione per uvvw, uvvvw, ecc.,... dunque k 0 uv k w L(M) Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

80 Pumping Lemma per Linguaggi Regolari [... cont.] Esempio L = {a n b n n 0} Supponiamo che sia regolare Deve valere il P.L. quindi si considera N 0 non noto, ma fissato Scegliamo uno specifico z tale che z N : z = a N b N Per ogni scomposizione z = uvw si ha che (i) uv N (ii) v 1 Quindi v = a h con 1 h N Scegliendo uno numero di ripetizioni di v pari a k = 2, risulta: z 2 = uvvw = a N+h b N / L che contraddice la tesi (iii) del P.L. Quindi L non può essere regolare Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

81 Pumping Lemma per Linguaggi Regolari [... cont.] Esempio [Linz] Dimostrare che L = {w {a, b} n a (w) n b (w)} non è regolare. Si assuma, per assurdo, che L sia regolare. Allora, per un certo N, si consideri in modo che z > N. z = a N! b (N+1)! L In base al P.Lemma, u, v, w tali che z = uvw e uv N, v 1 i 0 : uv i w L Poiché dev essere k = v uv N, sarà v = a k. Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

82 Pumping Lemma per Linguaggi Regolari [... cont.] Quindi le stringhe gonfiate avranno la forma: a N! k (a k ) i b (N+1)! i = 0, 1,... Esse rientrano nel tipo a m b m L se N! k + ki = (N + 1)!, ossia se i = (N + 1)! N! + k k = ((N + 1) 1)N! k + k k = N N! k + 1 N ma ciò è sempre valido, essendo k N. Quindi L non può essere regolare. Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

83 Esercizi 1 Es.3, Cap.3: NFA da ab (a b) 2 DFA (minimo) dal NFA dell esercizio precedente 3 Grammatica dal DFA dell esercizio precedente 4 Dato L = {aaa} {a 2k k 0}, scrivere un NFA N tale che L(N) = L, ricavare un DFA M equivalente minimale e fornire la grammatica G tale che L[M] = L[G] = L 5 Es.1, Cap.3: Dimostrare che non sono regolari i linguaggi: i. {ww w {0, 1} } ii. {w {0, 1} n 0 (w) = n 1 (w)} iii. {ww R w {0, 1} } iv. {0 n 1 m n m 0} v. {1 m m primo} 6 Dimostrare che non sono regolari i linguaggi: i. {a n b k n > k > 0} ii. {a n b m c k n > k, n, m, k > 0} iii. {a n b m c k m > k, n, m, k > 0} Si vedano anche i testi consigliati sui ling. formali Analisi Lessicale: Linguaggi Regolari 18 mar, / 84

84 Riferimenti M. Gabbrielli, S. Martini: Linguaggi di programmazione. Principi e paradigmi, 2/e. McGraw-Hill. Cap. 3 [con gli Approfondimenti] Hopcroft, Motwani, Ullman: Automi, Linguaggi e Calcolabilità, Pearson Italia, 3/a Ed. [Capp. 1-7] Ausiello, d Amore, Gambosi: Linguaggi, Modelli, Complessità, FrancoAngeli Linz: An Introduction to Formal Languages and Automata, 5th Ed. Jones & Bartlett

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

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

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Linguaggi regolari e automi a stati finiti 6 Ottobre 214 A.A. 214-215 Enrico Mezzetti emezzett@math.unipd.it Recap Definizione informale di automi a stati finiti Diagramma delle

Dettagli

Linguaggi e Traduttori: Analisi lessicale

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

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

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Espressioni regolari A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it Espressioni regolari Un FA (NFA o DFA) e un metodo per costruire una macchina che riconosce linguaggi

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Argomenti della lezione Obiettivi e programma del corso Alfabeti, stringhe, linguaggi Operazioni su linguaggi Espressioni regolari Per studiare le proprietà fondamentali di algoritmi,

Dettagli

Sommario. Espressioni regolari. Equivalenza tra espressioni regolari e DFA. Esercizi problemi di decisione

Sommario. Espressioni regolari. Equivalenza tra espressioni regolari e DFA. Esercizi problemi di decisione Sommario Espressioni regolari Equivalenza tra espressioni regolari e DFA Esercizi problemi di decisione ESPRESSIONI REGOLARI Le espressioni regolari sono una notazione per rappresentare insiemi di stringhe

Dettagli

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar I metodi formali dell Analisi Lessicale: Le Espressioni Regolari (ER) N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Introduzione 2 3 4 5 Espressioni Regolari Dato un alfabeto finito X, una espressione regolare

Dettagli

Fondamenti dell Informatica

Fondamenti dell Informatica Fondamenti dell Informatica Compito scritto 28 settembre 2005 Cognome: Nome: Matricola: Note 1. Per i quiz a risposta multipla, fare una croce sulla/e lettera/e che identifica/no la/e risposta/e desiderata/e.

Dettagli

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi Nozioni Preliminari e Terminologia Alfabeti Stringhe Linguaggi Insiemi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra

Dettagli

Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017

Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017 Automi a pila Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Aumentiamo la potenza di un FSA Descrizione operativa dei limiti Un FSA ha un Organo di Controllo (OC) con memoria

Dettagli

Espressioni regolari

Espressioni regolari spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.

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

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

NFA per riconoscere numeri decimali

NFA per riconoscere numeri decimali NFA per riconoscere numeri decimali Vogliamo un NFA che accetta numeri decimali. Un numero decimale consiste di: 1 Un segno + o -, opzionale 2 Una stringa di cifre decimali 3 un punto decimale 4 un altra

Dettagli

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}

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

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: configurazioni, relazione porta a e relative definizioni di linguaggio

Dettagli

Linguaggi. Che cos è un linguaggio di programmazione? Aspetti da studiare e comprendere per poter scrivere programmi:

Linguaggi. Che cos è un linguaggio di programmazione? Aspetti da studiare e comprendere per poter scrivere programmi: Linguaggi Che cos è un linguaggio di programmazione? Aspetti da studiare e comprendere per poter scrivere programmi: Sintassi: forma delle frasi, correttezza sintattica Semantica: significato delle frasi,

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

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

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

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

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

Prefazione all edizione italiana

Prefazione all edizione italiana Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiscono il programma d'esame. Si noti che la presentazione di alcuni argomenti

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

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Progamma sintetico Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Un problema classico Un uomo viaggia con un lupo, una pecora

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

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione Automi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione automa o automa: macchina astratta o realizza un certo algoritmo, secondo

Dettagli

Linguaggi regolari e automi a stati finiti. Linguaggi regolari e automi a stati finiti

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

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

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

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

non è lineare destro. (PUNTI 15)

non è lineare destro. (PUNTI 15) 6 Giugno 2005 (h.1.00) 1) Dimostrare formalmente che il seguente linguaggio: L = {a i b j c k : k = i+ j, i, j, k 0} non è lineare destro. 2) Progettare, commentando opportunamente, l automa a stati finiti

Dettagli

Automi a stati finiti

Automi a stati finiti ommario Introduzione agli automi a stati finiti Concetti di base della teoria degli automi Tecniche di dimostrazione deterministici (DFA) non deterministici (NFA) non deterministici con ɛ-transizione (ɛ-nfa)

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

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

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

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi Sipser, Capitolo 0 Alfabeti, Stringhe, Linguaggi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra le parentesi Insiemi

Dettagli

Analisi e Sintesi di circuiti sequenziali

Analisi e Sintesi di circuiti sequenziali Analisi e Sintesi di circuiti sequenziali Definizione Uscite combinatorie Porte logiche combinatorie Uscite di memoria Elementi di memoria Una macchina sequenziale è un sistema nel quale, detto I(t) l'insieme

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

Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019

Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019 Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019 Chiara Bodei Dipartimento di Informatica chiara.bodei@unipi.it Testi di riferimento Libro di testo

Dettagli

Teoria della complessità

Teoria della complessità Teoria della complessità Materiale consigliato: testo del corso capitolo 34 Introduzione agli algoritmi e strutture dati T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein McGraw Hill, 2005 Denise Salvi

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

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

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

Introduzione ai Linguaggi Formali

Introduzione ai Linguaggi Formali Introduzione ai Linguaggi Formali Elementi dei linguaggi Alfabeto o vocabolario Insieme finito di simboli di base Esempi: Alfabeto latino {a, b,, z} Cifre {0, 1,, 9} Alfabeto binario {0, 1} Stringa su

Dettagli

Esercizi di Informatica Teorica - DFA

Esercizi di Informatica Teorica - DFA Esercizi di Informatica Teorica - DFA Esercizio Definire, se esso esiste, l automa deterministico a stati finiti A che riconosce il linguaggio L = {w w {,},w[i] =, i dispari,i > }. Dimostrare rigorosamente

Dettagli

Capitolo 1: Concetti matematici di base

Capitolo 1: Concetti matematici di base Capitolo 1: Concetti matematici di base 1 Insiemi x A x é elemento dell insieme A. B A B é un sottoinsieme di A. B A B é un sottoinsieme proprio di A. A costituito da n elementi A = n é la sua cardinalitá.

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

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

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

Proprietà dei linguaggi regolari

Proprietà dei linguaggi regolari Proprietà dei linguaggi regolari Argomenti della lezione Relazione tra automi, grammatiche ed espressioni regolari Pumping lemma per i linguaggi regolari Equivalenza di automi a stati finiti Le seguenti

Dettagli

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Progamma sintetico Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Un problema classico Un uomo viaggia con un lupo, una pecora

Dettagli

Espressioni regolari in UNIX p.1/19

Espressioni regolari in UNIX p.1/19 Espressioni regolari in UNIX Violetta Lonati a Dipartimento Scienze dell Informazione Università degli Studi di Milano a E garantito il permesso di copiare, distribuire e/o modificare i materiali cont

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

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

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

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

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

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Espressioni regolari descrivono i linguaggi regolari Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere

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

Aniello Murano Automi e Pushdown

Aniello Murano Automi e Pushdown Aniello Murano Automi e Pushdown 2 Lezione n. Parole chiave: Automi e PDA Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Calcolabilità, complessità e macchine computazionali

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

MATRICI E SISTEMI LINEARI

MATRICI E SISTEMI LINEARI MATRICI E SISTEMI LINEARI - PARTE I - Felice Iavernaro Dipartimento di Matematica Università di Bari 27 Febbraio 2006 Felice Iavernaro (Univ. Bari) Matrici e Sistemi lineari 27/02/2006 1 / 1 Definizione

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

Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018

Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018 Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018 Esercizio 1 (Automi a stati finiti) {a, b}. Si considerino i seguenti automi a stati finiti sull alfabeto Per ognuno degli automi,

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

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da: Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano

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

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

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

Aumentare il potere degli FSA

Aumentare il potere degli FSA PDA 1 Aumentare il potere degli FSA Punto di vista meccanico Nastro d ingresso Dispositivo di controllo a stati finiti Nastro d uscita PDA 2 Ora arricchiamolo a Nastro d ingresso Memoria a pila (stack)

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

Automi e Linguaggi Formali

Automi e Linguaggi Formali E-mail: frossi@math.unipd.it rario e ricevimento Orario: Mercoledi 13:30 15:30, LUM 250 Giovedi 13:30 15:30, LUM 250 Venerdi 12:30 13:30, LUM 250 Ricevimento: Martedi 16:00-18:00, studio 428, IV piano,

Dettagli

Automi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/55

Automi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/55 Automi Rosario Culmone, Luca Tesei 20/10/2009 UNICAM - p. 1/55 Storia Dal latino automatus "che si muove da sé" Macchine o dispositivi reali o ipoteticamente realizzabili, i quali siano in grado di eseguire

Dettagli

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

Dettagli

Fondamenti di informatica per la sicurezza

Fondamenti di informatica per la sicurezza Corso di Laurea in icurezza dei sistemi e delle reti informatiche Fondamenti di informatica per la sicurezza anno accademico 2003 2004 docente: tefano Ferrari del secondo compitino 13.01.2004 versione

Dettagli

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

Dettagli

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di rappresentazione per descrivere programmi e specifiche. ω-automi:

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

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

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

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

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

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

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri.

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri. SIMBOLI Un simbolo è un entità primitiva astratta non meglio definita. Per ciò che ci concerne, un simbolo è atomico: se anche avesse una struttura interna, noi non la osserviamo. Le uniche caratteristiche

Dettagli