LINGUAGGI FORMALI Esercizi PPPPPP Nicol Fnizzi LINGUAGGI DI PROGRAMMAZIONE Corso di Informtic T.P.S. Diprtimento di Informtic Università di Bri Aldo Moro [2014/01/28-13:30:23]
[ 2 / 14 ]
Indice 1 Introduzione i Linguggi Formli 5 1.1 Operzioni.................................... 5 1.2 Grmmtiche................................... 5 1.3 Automi...................................... 7 2 Linguggi Regolri 8 2.1 Grmmtiche Lineri Destre........................... 8 2.2 Automi...................................... 8 2.2.1 DFA.................................... 8 2.2.2 NFA e trsformzioni........................... 9 2.3 Espressioni Regolri............................... 9 2.4 Appliczioni del Teorem di Kleene....................... 10 2.5 Proprietà di chiusur............................... 10 2.6 Pumping Lemm Linguggi regolri...................... 11 3 Linguggi Liberi 12 3.1 Grmmtiche................................... 12 3.2 Pumping Lemm................................. 12 3.3 Proprietà di chiusur............................... 13 3.4 Forme Normli.................................. 13 3.5 Automi Pil................................... 13 [ 3 / 14 ]
[ 4 / 14 ]
Introduzione i Linguggi Formli P1 1.1 Operzioni 1.1.1 Dto L = { n b n n > 0}, determinre L 2 e L 3 1.1.2 Dto L = {00, 01, 100}, stbilire se pprtengono L le stringhe 000010000 100000100001 00000100 Quli di queste pprtengono L 4? Suggerimento: scomporre nelle vrie sotto-stringhe 1.1.3 Dto L = {0 n 1 n n > 0}, determinre L Suggerimento: scomporre in sotto-insiemi (disgiunti) definiti nche ricorsivmente 1.2 Grmmtiche 1.2.1 Dt G = (Σ, V, S, P ), con Σ = {, b} V = {S, B} P = {S B, B bs b} indicre 1. il tipo di G 2. L(G) [ 5 / 14 ]
[ 6 / 14 ] 1. INTRODUZIONE AI LINGUAGGI FORMALI 1.2.2 Dt G = (Σ, V, S, P ), con Σ = {, b, c, d} V = {S, E, F } P = {S ESF EF, E b, F cd} indicre 1. il tipo di G 2. L(G) 1.2.3 Dt G = ({}, {S}, S, P ), con P = {S S } indicre 1. il tipo di G 2. L(G) ed il suo tipo 1.2.4 Dto G = ({, b, c}, {S, A}, S, P ) dove P = {S Sc A, A Ab b} indicre L(G) 1.2.5 Dto G = ({, b}, {S}, S, P ) dove P = {S ɛ SS Sb bs} indicre L(G) 1.2.6 Dto G = ({0}, {S, A, B}, S, P ) dove P = {S A0, A B, B A0} indicre L(G) ed il suo tipo 1.2.7 Dto Σ = {0, 1}, definire G tle che L = L(G) nei seguenti csi: i. L delle stringhe con uno ed un solo 1 ii. L delle stringhe con lmeno uno 0 iii. L delle stringhe con non più di tre 1 iv. L delle stringhe con lmeno tre 0 1.2.8 Dto Σ = {0, 1}, definire G per i seguenti linguggi: i. L 1 = {0 n 1 m m > n 0}
1.3. AUTOMI [ 7 / 14 ] ii. L 2 = { 0 n 1 2n n 0 } iii. L 3 = { 0 n 1 n+2 n 1 } iv. L 4 = { 0 n 1 n 3 n 3 } v. L 1 L 2 vi. L 1 L 2 vii. L 3 1 viii. L 1 ix. L 1 L 4 1.2.9 Dto L = {w {0, 1} w mod 3 = 1}, definire G tle che L = L(G) 1.2.10 Dto L = { 0 n 1 k k = n + 1, n 0 }, definire G tle che L = L(G) 1.3 Automi 1.3.1 Dto l utom M definito d: b q 0 q 0 q 1 q 1 q 0 q 2 q 2 q 2 q 1 Quli tr 3 b, bb, 4 bb, 6 b 8 b sono ccettte? 1.3.2 Dto l utom definito nell Esercizio 1.3.1, fornire il digrmm di trnsizione 1.3.3 Dto l utom definito dl digrmm di trnsizione 1 0 0 q 0 q 1 1 q 2 0,1 fornire l su tbell di trnsizione 1.3.4 Dto l utom definito dl digrmm di trnsizione b b q 0 q 1 q 2 b indicre il linguggio ccettto
P2 Linguggi Regolri 2.1 Grmmtiche Lineri Destre 2.1.1 Definire grmmtiche lineri destre che generino ognuno linguggi seguenti: i. L delle stringhe binrie con uno ed un solo 1 ii. L delle stringhe binrie con lmeno uno 0 iii. L delle stringhe binrie con non più di tre 1 iv. L delle stringhe binrie con lmeno tre 0 2.1.2 Definire un grmmtic linere destr che generi {1 n 0 n > 0} { 0 k 1 k > 0 } 2.2 Automi 2.2.1 DFA 2.2.1 Trovre un DFA M tle che ccetti l insieme delle stringhe binrie che bbino 11 come prefisso 2.2.2 Trovre un DFA tle che ccetti { (10) k n > 0 } 2.2.3 Dto L = { w {, b} w mod 3 = 1 }, definire un DFA M tle che L = L(M) 2.2.4 Definire un DFA M che ccett tutte le stringhe binrie trnne quelle che contengono 001 come sottostring 2.2.5 Dto L = {w w {, b} }, definire il DFA M tle che L = L(M) 2.2.6 Dto L dell esercizio 2.2.5, definire il DFA M tle che L 2 = L(M) [ 8 / 14 ]
2.3. ESPRESSIONI REGOLARI [ 9 / 14 ] 2.2.7 Trovre un DFA per i seguenti linguggi sull lfbeto binrio: i. {w {, b} w mod 3 = 0} ii. {w {, b, c} w mod 5 0} iii. { w {0, 1} n 1 (w) mod 3 = 0 } iv. { w {0, 1} [n 0 (w) mod 3] > [n 1 (w) mod 3] } 2.2.2 NFA e trsformzioni 2.2.8 Trovre un DFA equivlente l NFA q 1 q 3 q 4 q 0 q 2 q 5 2.2.9 Definire un NFA con mssimo 5 stti per {bb n n 0} {bb m m 0} 2.2.10 Trovre un DFA equivlente : 0 1 0, 1 0, 1 q 0 q 1 q 2 2.3 Espressioni Regolri 2.3.1 Dt R = (00) (11) 1, definire L(R) come insieme 2.3.2 Definire un espressione regolre per ognuno linguggi seguenti:
[ 10 / 14 ] 2. LINGUAGGI REGOLARI i. L delle stringhe binrie con uno ed un solo 1 ii. L delle stringhe binrie con lmeno uno 0 iii. L delle stringhe binrie con non più di tre 1 iv. L delle stringhe binrie con lmeno tre 0 2.3.3 Definire un espressione regolre R per il linguggio {w {0, 1} w non contiene zeri consecutivi } 2.3.4 Definire un espressione regolre R per il linguggio { i b j i + j pri } 2.3.5 Definire un espressione regolre R per il linguggio { w {0, 1} n 0 (w) + n 1 (w) dispri } 2.4 Appliczioni del Teorem di Kleene 2.4.1 Definire un DFA per ognun delle espressioni regolri ottenute nell Es. 2.3.2. 2.4.2 Definire espressioni regolri per i linguggi di cui ll Es. 2.2.7 trsformndo ognuno dei DFA. 2.4.3 Dt R = (00) (11) 1, definire un DFA M ed un grmmtic G tli che L(R) = L(M) = L(G) 2.4.4 Dto l utom M dell Es. 2.2.8, trovre un R tle che L(R) = L(M). 2.4.5 Dto l utom M dell Es. 2.2.9, trovre un R tle che L(R) = L(M). 2.4.6 Dto l utom M dell Es. 2.2.10, trovre un R tle che L(R) = L(M). 2.4.7 Definire un NFA che ccetti il linguggio denotto d: ((10 + 1)(11) ) + (01) 2.5 Proprietà di chiusur 2.5.1 Definire un grmmtic linere destr che generi: { w {, b} w = k n b k, k > 0 } 2.5.2 Definire un DFA per il complemento dei linguggi di cui ll Es. 2.2.7. 2.5.3 Definire un grmmtic regolre per ognuno dei DFA ottenuti nell Es. 2.5.2. 2.5.4 Sfruttndo l chiusur rispetto ll unione, definire un grmmtic linere destr ed un DFA per il linguggio {......} *d completre* 2.5.5 Trovre gli NFA che ccettino i. L((0 + 1)1 ) L(011 ) ii. L(b ) L( b )
2.6. PUMPING LEMMA LINGUAGGI REGOLARI [ 11 / 14 ] 2.6 Pumping Lemm Linguggi regolri Esercizi d risolvere ttrverso il Pumping Lemm su L reg. 2.6.1 Provre che non sono regolri i linguggi: i. { 0 i 1 j i, j > 0, i < j } ii. { i b j i, j > 0, i > j } iii. { 0 i 1 j i, j > 0, 2i > j } iv. { i b j i, j > 0, i j } v. {w {0, 1} i, j > 0, 2i > j} vi. { w {0, 1} n 0 (w) n 1 (w) } vii. { w {, b} n(w) n b (w) } 2.6.2 Provre che non sono regolri i linguggi: i. { i b i i > 0 } ii. { ww R w {, b} } iii. {ww w {0, 1} } 2.6.3 Provre che non sono regolri i linguggi: i. { k b k c k k 0 } ii. { h b k c k d h h, k 0 } 2.6.4 Provre che non sono regolri i linguggi: i. { 0 k k = 2 i, i 0 } ii. { 0 h h = i 2, i 0 } iii. { w {, b} w = i 2, i 0 } 2.6.5 Stbilire se poss essere regolre {w 1 cw 2 w 1, w 2 {, b}, w 1 w 2 }
P3 Linguggi Liberi 3.1 Grmmtiche 3.1.1 Determinre un grmmtic G per i seguenti linguggi: 1. { ww R w {, b, c} } 2. { w {, b} n(w) = n b (w) } 3.2 Pumping Lemm 3.2.1 Dimostrre che i seguenti linguggi non sono liberi d contesto: i. { n b n c n n > 0} ii. { n b m c p 1 n m p} iii. { i b j c i d j i, j 1} iv. {ww w {0, 1} + } 3.2.2 Dimostrre che i seguenti linguggi non sono liberi d contesto: i. { t t numero primo} ii. { n2 n 0} iii. { i b j i = 2 j, i, j 0} iv. { n b m n > 2 m, n, m 0} v. { k b r k > 0, r > k 2 } vi. { 2n n 1} [ 12 / 14 ]
3.3. PROPRIETÀ DI CHIUSURA [ 13 / 14 ] 3.3 Proprietà di chiusur 3.3.1 Determinre un grmmtic G per i seguenti linguggi: 1. { 0 i 1 j i j, i, j > 0 } 2. { w {, b} n(w) n b (w) } 3.3.2 Dimostrre che i seguenti linguggi sono liberi d contesto: i. {0 n 1 n n = 2k + 1, k > 0} ii. { n b n n > 0, n 7} iii. { w {, b} n(w) = n b (w) e w non contiene bbb } iv. { c n i b k c m n, m, i, k > 0, i k } 3.3.3 Dimostrre che sono liberi d contesto i linguggi complemento L dei seguenti linguggi: i. {ww w {0, 1} } ii. { i b i c i i 0 } 3.3.4 Dimostrre che i seguenti linguggi non sono liberi d contesto: i. { n b n c n n > 0} ii. { w {, b, c} n(w) = n b (w) = nc(w) } 3.4 Forme Normli 3.4.1 Dte le grmmtiche di cui ll Esercizio 3.1.1, trsformrle in GNF. 3.5 Automi Pil 3.5.1 Dte le grmmtiche di cui ll Esercizio 3.4.1, ricvre i PDA che riconoscno gli stessi linguggi.
Bibliogrfi [1] Giorgio Ausiello, Fbrizio D Amore, e Giorgio Gmbosi. Linguggi, Modelli, Complessità. FrncoAngeli, 2003. [2] Dniel I.A. Cohen. Introduction to Computer Theory. Wiley, 1996. [3] John E. Hopcroft, Rjeev Motwni, e Jeffrey D. Ullmn. Automi, Linguggi e Clcolbilità. Person Itli, 3 edizione, 2009. [4] Peter Linz. An Introduction to Forml Lnguges nd Automt. Jones & Brtlett, 5 edizione, 2012. [5] Robert N. Moll, Michel A. Arbib, e Assf J. Kfoury. An introduction to forml lnguge theory. Springer, 1988. [6] Michel Sipser. Introduction to the theory of computtion. Thomson, 2 edizione, 2005. [7] Thoms Sudkmp. Lnguges nd Mchines. Addison-Wesley, 3 edizione, 2006. [ 14 / 14 ]