Non determinismo e grammatiche. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Non determinismo e grammatiche. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano"

Transcript

1 Non determinismo e grammatiche Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano

2 Modelli non deterministici - Macchine Automa a stati niti non deterministico (AFN) A = (Σ, Q, i 0, F, δ) con δ : Q Σ (Q) una parola è accettata se esiste almeno una computazione corretta che sia iniziale e nale. Automa a pila non deterministico (APN) A = (Σ, Q, Γ, i 0, F, δ, Z 0 ) con δ : Q (Σ {ε}) Γ (Q Γ ) una parola è accettata se esiste almeno una computazione corretta che sia iniziale e nale.

3 Modelli non deterministici - Grammatiche È un modello intrinsecamente non deterministico produzioni (V = V N V T ) G = (V N, V T, S, P) α β, α, β V αaβ αγβ, α, β, γ V, A V N A α, α V, A V N A ab a ε, A, B V N, a V T grammatiche non ristrette grammatiche sensibili al contesto grammatiche non contestuali grammatiche regolari

4 Automi a stati niti non deterministici - 1 Costruire un automa che riconosca il linguaggio L 2 = (ab) a(ab) I tentativo a a a b b 3 Non va bene, non è deterministico! δ(0, a) = 1? δ(0, a) = 3? Succede poiché la prima volta che leggo a non so a quale blocco appartiene

5 Automi a stati niti non deterministici - 1 Determinizzo la versione non deterministica. a a a b b 3 Ho creato un automa il cui insieme degli stati fosse l'insieme delle parti dell'automa non deterministico.

6 Automi a stati niti non deterministici - 1 Determinizzo la versione non deterministica. a a a b b 3 Ho creato un automa il cui insieme degli stati fosse l'insieme delle parti dell'automa non deterministico. 0

7 Automi a stati niti non deterministici - 1 Determinizzo la versione non deterministica. a a a b b 3 Ho creato un automa il cui insieme degli stati fosse l'insieme delle parti dell'automa non deterministico. a 0 1, 3

8 Automi a stati niti non deterministici - 1 Determinizzo la versione non deterministica. a a a b b 3 Ho creato un automa il cui insieme degli stati fosse l'insieme delle parti dell'automa non deterministico. a a 0 1, 3 2 b

9 Automi a stati niti non deterministici - 1 Determinizzo la versione non deterministica. a a a b b 3 Ho creato un automa il cui insieme degli stati fosse l'insieme delle parti dell'automa non deterministico. a a b 0 1, b

10 Automi a stati niti non deterministici - 1 Determinizzo la versione non deterministica. a a a b b 3 Ho creato un automa il cui insieme degli stati fosse l'insieme delle parti dell'automa non deterministico. a a b 0 1, b a

11 Automi a stati niti non deterministici - 2 Costruire un automa che riconosca il linguaggio L 1 = (ab + aba) a 0 1 b a a 2 3 b È ancora non deterministico, lo determinizzo.

12 Automi a stati niti non deterministici - 2 Costruire un automa che riconosca il linguaggio L 1 = (ab + aba) a 0 1 b a a 2 3 b È ancora non deterministico, lo determinizzo. 0

13 Automi a stati niti non deterministici - 2 Costruire un automa che riconosca il linguaggio L 1 = (ab + aba) a 0 1 b a a 2 3 b È ancora non deterministico, lo determinizzo. a 0 1, 2

14 Automi a stati niti non deterministici - 2 Costruire un automa che riconosca il linguaggio L 1 = (ab + aba) a 0 1 b a a 2 3 b È ancora non deterministico, lo determinizzo. a b 0 1, 2 0, 3

15 Automi a stati niti non deterministici - 2 Costruire un automa che riconosca il linguaggio L 1 = (ab + aba) a 0 1 b a a 2 3 b È ancora non deterministico, lo determinizzo. a b a 0 1, 2 0, 3 0, 1, 2

16 Automi a stati niti non deterministici - 2 Costruire un automa che riconosca il linguaggio L 1 = (ab + aba) a 0 1 b a a 2 3 b È ancora non deterministico, lo determinizzo. a b a 0 1, 2 0, 3 0, 1, 2 b a

17 Determinismo e non determinismo - 1 Si considerino i linguaggi: 1. L 1 = {a n b n n 1} {a n b 2n n 1}; 2. L 2 = {1a n b n n 1} {2a n b 2n n 1}; 3. L 3 = {a n 1b n n 1} {a n 2b 2n n 1}; 4. L 4 = {a n b n 1 n 1} {a n b 2n 2 n 1}; Per ciascuno di essi si dica qual è la macchina e la relativa grammatica a potenza minima che li genera.

18 Determinismo e non determinismo L 1 = {a n b n n 1} {a n b 2n n 1}.

19 Determinismo e non determinismo L 1 = {a n b n n 1} {a n b 2n n 1}. L 1 è unione di due linguaggi riconosciuti da automi a pila deterministici, ma non può essere riconosciuto da un automa a pila deterministico. Un automa a pila non deterministico che lo riconosce è a, A AAA b, A ε a, Z 0 Z 0 AA b, A ε ε, Z 0 Z a, Z 0 Z 0 A b, A ε a, A AA 4

20 Determinismo e non determinismo L 1 = {a n b n n 1} {a n b 2n n 1}. Una grammatica non contestuale che genera L 1 è denita da V N = {S, S 1, S 2 }, V T = {a, b}, assioma S e produzioni S as 1 b as 2 bb S 1 as 1 b ε S 2 as 2 bb ε

21 Determinismo e non determinismo L 1 = {a n b n n 1} {a n b 2n n 1}. Una grammatica non contestuale che genera L 1 è denita da V N = {S, S 1, S 2 }, V T = {a, b}, assioma S e produzioni Infatti S as 1 b as 2 bb S 1 as 1 b ε S 2 as 2 bb ε S as 1 b n a n+1 S 1 b n+1 a n+1 b n+1 as 2 bb n a n+1 S 2 (bb) n+1 a n+1 b 2(n+1)

22 Determinismo e non determinismo L 2 = {1a n b n n 1} {2a n b 2n n 1}.

23 Determinismo e non determinismo L 2 = {1a n b n n 1} {2a n b 2n n 1}. L 2 è unione di due linguaggi riconosciuti da automi a pila deterministici, e anch'esso lo è. Un automa a pila deterministico che lo riconosce è a, Z 0 Z 0 AA a, A AAA b, A ε 2, Z 0 Z 0 b, A ε ε, Z 0 Z , Z 0 Z 0 b, A ε a, Z 0 Z 0 A a, A AA 4

24 Determinismo e non determinismo L 2 = {1a n b n n 1} {2a n b 2n n 1}. Una grammatica non contestuale che genera L 2 è denita da V N = {S, S 1, S 2 }, V T = {a, b, 1, 2}, assioma S e produzioni S 1aS 1 b 2aS 2 bb S 1 as 1 b ε S 2 as 2 bb ε

25 Determinismo e non determinismo L 2 = {1a n b n n 1} {2a n b 2n n 1}. Una grammatica non contestuale che genera L 2 è denita da V N = {S, S 1, S 2 }, V T = {a, b, 1, 2}, assioma S e produzioni Infatti S 1aS 1 b 2aS 2 bb S 1 as 1 b ε S 2 as 2 bb ε S 1aS 1 b n 1a n+1 S 1 b n+1 1a n+1 b n+1 2aS 2 bb n 2a n+1 S 2 (bb) n+1 2a n+1 b 2(n+1)

26 Determinismo e non determinismo L 3 = {a n 1b n n 1} {a n 2b 2n n 1}.

27 Determinismo e non determinismo L 3 = {a n 1b n n 1} {a n 2b 2n n 1}. L 3 è unione di due linguaggi riconosciuti da automi a pila deterministici, e anch'esso lo è. Un automa a pila deterministico che lo riconosce è ε, Z 0 Z 0 a, Z 0 Z 0 A a, A AA 2, A A b, A ε b, A A 1, A A ε, Z 0 Z 0 b, A ε 4

28 Determinismo e non determinismo L 3 = {a n 1b n n 1} {a n 2b 2n n 1}. Una grammatica non contestuale che genera L 3 è denita da V N = {S, S 1, S 2 }, V T = {a, b, 1, 2}, assioma S e produzioni S as 1 b as 2 bb S 1 as 1 b 1 S 2 as 2 bb 2

29 Determinismo e non determinismo L 3 = {a n 1b n n 1} {a n 2b 2n n 1}. Una grammatica non contestuale che genera L 3 è denita da V N = {S, S 1, S 2 }, V T = {a, b, 1, 2}, assioma S e produzioni Infatti S as 1 b as 2 bb S 1 as 1 b 1 S 2 as 2 bb 2 S as 1 b n a n+1 S 1 b n+1 a n+1 1b n+1 as 2 bb n a n+1 S 2 (bb) n+1 a n+1 2b 2(n+1)

30 Determinismo e non determinismo L 4 = {a n b n 1 n 1} {a n b 2n 2 n 1}.

31 Determinismo e non determinismo L 4 = {a n b n 1 n 1} {a n b 2n 2 n 1}. L 4 è unione di due linguaggi riconosciuti da automi a pila deterministici, ma lui non lo è. Un automa a pila non deterministico che lo riconosce è a, A AAA b, A ε a, Z 0 Z 0 AA b, A ε 2, Z 0 Z a, Z 0 Z 0 A a, A AA b, A ε 1, Z 0 Z b, A ε

32 Determinismo e non determinismo L 4 = {a n b n 1 n 1} {a n b 2n 2 n 1}. Una grammatica non contestuale che genera L 4 è denita da V N = {S, S 1, S 2 }, V T = {a, b, 1, 2}, assioma S e produzioni S as 1 b1 as 2 bb2 S 1 as 1 b ε S 2 as 2 bb ε

33 Determinismo e non determinismo L 4 = {a n b n 1 n 1} {a n b 2n 2 n 1}. Una grammatica non contestuale che genera L 4 è denita da V N = {S, S 1, S 2 }, V T = {a, b, 1, 2}, assioma S e produzioni Infatti S as 1 b1 as 2 bb2 S 1 as 1 b ε S 2 as 2 bb ε S as 1 b1 n a n+1 S 1 b n+1 1 a n+1 b n+1 1 as 2 bb2 n a n+1 S 2 (bb) n+1 2 a n+1 b 2(n+1) 2

34 Grammatiche - 1 Si consideri la grammatica con V N = {S, B}, V T = {a, b}, assioma S e produzioni S Sa as bb b SB BBSS BS abba Quale linguaggio genera? Qual è la classe di automi a potenza minima in grado di accettare lo stesso linguaggio?

35 Grammatiche - 1 Si consideri la grammatica con V N = {S, B}, V T = {a, b}, assioma S e produzioni S Sa as bb b SB BBSS BS abba Quale linguaggio genera? Qual è la classe di automi a potenza minima in grado di accettare lo stesso linguaggio? Il linguaggio generato dalla grammatica è a ba. Infatti le prime due regole generano stringhe del tipo a Sa ; quando si applica la regola S bb, si ottiene una stringa del tipo a bba che non potrà derivare nessun'altra stringa perché per riscrivere B occorre che esso compaia vicino a una S; quindi per poter generare una stringa terminale è necessario applicare la regola S b che impedisce ulteriori derivazioni.

36 Grammatiche - 1 Si consideri la grammatica con V N = {S, B}, V T = {a, b}, assioma S e produzioni S Sa as bb b SB BBSS BS abba Quale linguaggio genera? Qual è la classe di automi a potenza minima in grado di accettare lo stesso linguaggio? Il linguaggio generato dalla grammatica è a ba. Infatti le prime due regole generano stringhe del tipo a Sa ; quando si applica la regola S bb, si ottiene una stringa del tipo a bba che non potrà derivare nessun'altra stringa perché per riscrivere B occorre che esso compaia vicino a una S; quindi per poter generare una stringa terminale è necessario applicare la regola S b che impedisce ulteriori derivazioni. Il linguaggio a ba è chiaramente regolare anche se la grammatica non lo è; di conseguenza esso è riconoscibile da un automa a stati niti.

37 Grammatiche - 2 Si scriva una grammatica che generi il linguaggio L = {a n w w {b, c}, # b w = # c w = n, n 1}, Che tipo di grammatica si ottiene?

38 Grammatiche - 2 Si scriva una grammatica che generi il linguaggio L = {a n w w {b, c}, # b w = # c w = n, n 1}, Che tipo di grammatica si ottiene? S asbc abc genero tante a quante BC BC CB commuto le b con le c CB BC B b ogni B diventa b C c ogni C diventa c

39 Grammatiche - 2 Si scriva una grammatica che generi il linguaggio L = {a n w w {b, c}, # b w = # c w = n, n 1}, Che tipo di grammatica si ottiene? S asbc abc genero tante a quante BC BC CB commuto le b con le c CB BC B b ogni B diventa b C c ogni C diventa c La grammatica non è non-contestuale (e neppure regolare). Non è possibile generare lo stesso linguaggio mediante una grammatica non-contestuale perché occorre tenere aggiornati i conteggi sia delle b che delle c per confrontarli con il numero di a letto inizialmente (non basta un automa a pila non-deterministico, serve una MT).

40 Grammatiche - 2 Si scriva una grammatica che generi il linguaggio L = {a n w w {b, c}, # b w = # c w = n, n 1}, Come funziona una MT che riconosce L?

41 Grammatiche - 2 Si scriva una grammatica che generi il linguaggio L = {a n w w {b, c}, # b w = # c w = n, n 1}, Come funziona una MT che riconosce L? leggo l'input da sx a dx e controllo che tra i caratteri che seguono la prima b o la prima c non ci sia alcuna a riavvolgo il nastro di input, uso due nastri di memoria, leggo da sx a dx: per ogni a letta carico un simbolo in ciascun nastro di memoria nite le a per ogni b letta cancello un simbolo dal primo nastro, per ogni c cancello un simbolo dal secondo se nita la lettura dell'input in memoria resta solo Z 0 su entrambi i nastri, accetto

42 Grammatiche - 3 Si costruisca un automa a pila equivalente alla grammatica con V N = {S, A, B}, V T = {a, b, c} assioma S e produzioni S aab A aaa bab c B bbb aba c L'automa a pila ottenuto è deterministico? In caso negativo, è possibile costruirne uno deterministico?

43 Grammatiche - 3 Si costruisca un automa a pila equivalente alla grammatica con V N = {S, A, B}, V T = {a, b, c} assioma S e produzioni S aab A aaa bab c B bbb aba c L'automa a pila ottenuto è deterministico? In caso negativo, è possibile costruirne uno deterministico? ε, Z 0 Z 0 S ε, Z 0 Z ε, S BAa ε, A AAa ε, A BAb ε, B BBb ε, B ABa ε, B c a, a ε b, b ε Non è deterministico, però...

44 Grammatiche - 3 S aab A aaa bab c B bbb aba c Si può sfruttare il fatto che nelle produzioni c'è sempre un solo terminale a sx per ottenere una versione deterministica

45 Grammatiche - 3 S aab A aaa bab c B bbb aba c Si può sfruttare il fatto che nelle produzioni c'è sempre un solo terminale a sx per ottenere una versione deterministica ε, Z 0 Z 0 S ε, Z 0 Z a, S BA a, A AA a, B AB b, A BA a, B BB c, A ε c, B ε

46 Grammatiche - 4 Si considerino i seguenti linguaggi: L 1 = {a n b 2m n, m 1} e L 2 = {a n b 3n n 0}. Esibire una grammatica che generi il linguaggio L = L 1 L 2. È preferibile una grammatica a potenza minima, si spieghi brevemente perché non esistono grammatiche appartenenti a classi inferiori a quella proposta.

47 Grammatiche - 4 Si considerino i seguenti linguaggi: L 1 = {a n b 2m n, m 1} e L 2 = {a n b 3n n 0}. Esibire una grammatica che generi il linguaggio L = L 1 L 2. È preferibile una grammatica a potenza minima, si spieghi brevemente perché non esistono grammatiche appartenenti a classi inferiori a quella proposta. Il linguaggio il linguaggio L = L 1 L 2 è l'insieme {a 2n b 6n n 1}, infatti L 1 è il linguaggio delle stringhe con un numero pari di b che seguono un numero qualunque di a e tra le stringhe di L 2 del tipo a n b 3n, quelle che appartengono anche a L 1 sono esattamente quelle con un numero pari di b, ossia quelle nella forma a 2n b 3 (2n) = a 2n b 6n.

48 Grammatiche - 4 Si considerino i seguenti linguaggi: L 1 = {a n b 2m n, m 1} e L 2 = {a n b 3n n 0}. Esibire una grammatica che generi il linguaggio L = L 1 L 2. È preferibile una grammatica a potenza minima, si spieghi brevemente perché non esistono grammatiche appartenenti a classi inferiori a quella proposta.

49 Grammatiche - 4 Si considerino i seguenti linguaggi: L 1 = {a n b 2m n, m 1} e L 2 = {a n b 3n n 0}. Esibire una grammatica che generi il linguaggio L = L 1 L 2. È preferibile una grammatica a potenza minima, si spieghi brevemente perché non esistono grammatiche appartenenti a classi inferiori a quella proposta. L = {a 2n b 6n n 1}

50 Grammatiche - 4 Si considerino i seguenti linguaggi: L 1 = {a n b 2m n, m 1} e L 2 = {a n b 3n n 0}. Esibire una grammatica che generi il linguaggio L = L 1 L 2. È preferibile una grammatica a potenza minima, si spieghi brevemente perché non esistono grammatiche appartenenti a classi inferiori a quella proposta. L = {a 2n b 6n n 1} L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB AB A aa B bbbbbb

51 Grammatiche - 4 Si considerino i seguenti linguaggi: L 1 = {a n b 2m n, m 1} e L 2 = {a n b 3n n 0}. Esibire una grammatica che generi il linguaggio L = L 1 L 2. È preferibile una grammatica a potenza minima, si spieghi brevemente perché non esistono grammatiche appartenenti a classi inferiori a quella proposta. L = {a 2n b 6n n 1} L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB AB A aa B bbbbbb È necessario che sia almeno non contestuale, poiché L non è regolare (serve una pila per il suo riconoscimento).

52 Grammatiche - 4 L = {a 2n b 6n n 1} L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB AB A aa B bbbbbb Perché funziona?

53 Grammatiche - 4 L = {a 2n b 6n n 1} L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB AB A aa B bbbbbb Perché funziona? con n 0. S n A n SB n A n+1 B n+1 a 2(n+1) b 6(n+1)

54 Grammatiche - 5 Esibire una grammatica che generi il linguaggio L = {a n (bc) m n, m 1, m < n/2} È preferibile una grammatica a potenza minima.

55 Grammatiche - 5 Esibire una grammatica che generi il linguaggio L = {a n (bc) m n, m 1, m < n/2} È preferibile una grammatica a potenza minima. Non può essere generato da una grammatica regolare, perché serve almeno una pila per tenere conto delle occorrenze di a.

56 Grammatiche - 5 Esibire una grammatica che generi il linguaggio L = {a n (bc) m n, m 1, m < n/2} È preferibile una grammatica a potenza minima. Non può essere generato da una grammatica regolare, perché serve almeno una pila per tenere conto delle occorrenze di a. L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB aaaabc A aa B bc ε

57 Grammatiche - 5 Esibire una grammatica che generi il linguaggio L = {a n (bc) m n, m 1, m < n/2} È preferibile una grammatica a potenza minima. Non può essere generato da una grammatica regolare, perché serve almeno una pila per tenere conto delle occorrenze di a. L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB aaaabc A aa B bc ε È non contestuale, e quindi a potenza minima per quanto osservato prima.

58 Grammatiche - 5 L = {a n (bc) m n, m 1, m < n/2} L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB aaaabc A aa B bc ε Perché funziona?

59 Grammatiche - 5 L = {a n (bc) m n, m 1, m < n/2} L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S ASB aaaabc A aa B bc ε Perché funziona? S n A n SB n A n aaaabcb n a 2(n+2) (bc) n +1 con 0 n n, dunque n + 1 < 2(n + 2)/2.

60 Grammatiche - 6 Esibire una grammatica che generi il linguaggio L = {a n b 3n n 0} {a n (bbbc) n n 0}. Si descriva a grandi linee una macchina a potenza minima che riconosca L.

61 Grammatiche - 6 Esibire una grammatica che generi il linguaggio L = {a n b 3n n 0} {a n (bbbc) n n 0}. Si descriva a grandi linee una macchina a potenza minima che riconosca L. L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S X Y ε X axbbb abbb Y aybbbc abbbc

62 Grammatiche - 6 Esibire una grammatica che generi il linguaggio L = {a n b 3n n 0} {a n (bbbc) n n 0}. Si descriva a grandi linee una macchina a potenza minima che riconosca L. L è generato dalla grammatica con V N = {S, A, B}, V T {a, b}, assioma S e produzioni: S X Y ε X axbbb abbb Y aybbbc abbbc S X n a n X (bbb) n a n+1 (bbb) n+1 ε Y n a n Y (bbbc) n a n+1 (bbbc) n+1

63 Grammatiche - 6 L = {a n b 3n n 0} {a n (bbbc) n n 0}. La grammatica proposta è non-contestuale, è suciente un automa a pila (ma eventualmente non deterministico)

64 Grammatiche - 6 L = {a n b 3n n 0} {a n (bbbc) n n 0}. La grammatica proposta è non-contestuale, è suciente un automa a pila (ma eventualmente non deterministico) Si può progettare un automa a pila deterministico che riconosca L: per ogni a impila un simbolo (ponendo lo stato iniziale tra quelli nali, accetta anche la stringa vuota) ricevuto il primo b ne conta altri due dopo aver letto le prime 3 b, si sposta in due stati diversi a seconda che il carattere successivo sia b o c (e ovviamente va in uno stato di errore se non si verica nessuna delle circostanze previste) da questo punto in poi verica che per ogni simbolo impilato si trovino 3 b oppure 3 b seguite da c a seconda dello stato scelto al punto precedente.

65 Grammatiche - 7** Ricordando che: se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F dire quali delle seguenti famiglie di linguaggi sono chiuse rispetto all'operazione di riessione: 1. i linguaggi non contestuali 2. i linguaggi regolari 3. i linguaggi generati da grammatiche non ristrette 4. i linguaggi riconosciuti da automi a pila deterministici

66 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F.

67 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F. 1. Data una grammatica G non-contestuale che genera il linguaggio L, la grammatica G R ottenuta trasformando ogni produzione di G del tipo A α, nella produzione A α R, genera evidentemente L R. Dunque la famiglia dei linguaggi non-contestuali è chiusa rispetto la riessione.

68 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F.

69 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F. 2. Analogamente al precedente, data una grammatica G regolare che genera il linguaggio L, la grammatica G R ottenuta trasformando ogni produzione di G del tipo A ab, nella produzione A Ba, genera evidentemente L R. Dunque la famiglia dei linguaggi regolari è chiusa rispetto la riessione visto che le grammatiche regolari a sinistra o regolari a destra sono tra loro equivalenti e generano entrambe tutti e soli i linguaggi regolari.

70 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F.

71 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F. 3. Una grammatica G non ristretta è equivalente ad una macchina di Turing. Quindi data una MT che riconosce L basta costruirne una che inverta la stringa di ingresso in un nastro ausiliario e successivamente simuli il comportamento della MT originaria usando il nastro ausiliario al posto del nastro di ingresso. Dunque anche la famiglia dei linguaggi generati da grammatiche non ristrette è chiusa rispetto la riessione.

72 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F.

73 Grammatiche - 7** Se L è un linguaggio, il suo riesso L R è il linguaggio ottenuto da L scrivendo ogni sua stringa in ordine inverso; una famiglia F di linguaggi si dice chiusa rispetto alla riessione se per ogni L F anche L R F. 4. La famiglia dei linguaggi riconosciuti da automi a pila deterministici non è chiusa rispetto la riessione. Infatti il linguaggio L = {0a n b n } {1a n b 2n } è riconosciuto da un automa a pila deterministico, mentre il suo riesso L R = {b n a n 0} {b 2n a n 1} non lo è.

74 Grammatiche - 8*** Si considerino le seguenti denizioni: 1. una grammatica si dice lineare a destra se le sue produzioni sono del tipo A Bx, x V T, oppure A x, x V T ; 2. una grammatica si dice lineare a sinistra se le sue produzioni sono del tipo A xb, x V T, oppure A x, x V T ; 3. una grammatica si dice lineare a destra o a sinistra se le sue produzioni sono del tipo A Bx, x V T, oppure A xb, x V T, oppure A x, x V T ; 4. una grammatica si dice lineare se le sue produzioni sono del tipo A ybx, x, y V T, oppure A x, x V T. Si confrontino tra loro e con i modelli di calcolo noti le potenze generative delle grammatiche denite sopra.

75 Grammatiche - 8*** 1. Una grammatica si dice lineare a destra se le sue produzioni sono del tipo A Bx, x V T, oppure A x, x V T.

76 Grammatiche - 8*** 1. Una grammatica si dice lineare a destra se le sue produzioni sono del tipo A Bx, x V T, oppure A x, x V T. Le grammatiche lineari a destra sono una sorta di abbreviazione delle grammatiche regolari: infatti, ad esempio la produzione A Bac può essere trasformata nella coppia di produzioni regolari equivalenti A A 1 c; A 1 Ba con A 1 simbolo nuovo. Quindi tali grammatiche sono equipotenti agli automi a stati niti.

77 Grammatiche - 8*** 2. Una grammatica si dice lineare a sinistra se le sue produzioni sono del tipo A xb, x V T, oppure A x, x V T.

78 Grammatiche - 8*** 2. Una grammatica si dice lineare a sinistra se le sue produzioni sono del tipo A xb, x V T, oppure A x, x V T. Le grammatiche lineari a sinistra sono una sorta di abbreviazione delle grammatiche regolari: infatti, ad esempio la produzione A acb può essere trasformata nella coppia di produzioni regolari equivalenti A aa 1 ; A 1 cb con A 1 simbolo nuovo. Quindi tali grammatiche sono equipotenti agli automi a stati niti ed equipotenti alle grammatiche lineari a destra.

79 Grammatiche - 8*** 3. Una grammatica si dice lineare a destra o a sinistra se le sue produzioni sono del tipo A Bx, x V T, oppure A xb, x V T, oppure A x, x V T ; 4. una grammatica si dice lineare se le sue produzioni sono del tipo A ybx, x, y V T, oppure A x, x V T.

80 Grammatiche - 8*** 3. Una grammatica si dice lineare a destra o a sinistra se le sue produzioni sono del tipo A Bx, x V T, oppure A xb, x V T, oppure A x, x V T ; 4. una grammatica si dice lineare se le sue produzioni sono del tipo A ybx, x, y V T, oppure A x, x V T. Le grammatiche lineari a destra o a sinistra sono un caso particolare delle grammatiche lineari, quindi non sono più potenti di esse. Inoltre ogni produzione del tipo A xby di una grammatica lineare, può essere trasformata nella coppia di produzioni A xa 1, A 1 By di una grammatica lineare a destra o a sinistra (con A 1 simbolo nuovo); di conseguenza non sono più potenti di esse. Ne segue che i due formalismi sono equivalenti.

81 Grammatiche - 8*** 3. una grammatica si dice lineare se le sue produzioni sono del tipo A ybx, x, y V T, oppure A x, x V T.

82 Grammatiche - 8*** 3. una grammatica si dice lineare se le sue produzioni sono del tipo A ybx, x, y V T, oppure A x, x V T. Le grammatiche lineari sono un caso particolare di quelle non-contestuali, quindi ogni linguaggio generato da una grammatica lineare è sicuramente riconosciuto da un automa a pila non deterministico. NB: si potrebbe provare (ma non è semplice) che non vale il viceversa.

Automi a pila deterministici. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano

Automi a pila deterministici. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano Automi a pila deterministici Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano Automi a pila A = (Σ, Q, Γ, i 0, F, δ, ) Σ = {a 1,..., a n } Q = {q 1,..., q m } Γ = {A

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

Algoritmi e Principi dell'informatica

Algoritmi e Principi dell'informatica Algoritmi e Principi dell'informatica Alessio Massetti 15 Novembre 2011 Contents 1 Linguaggi 3 1.1 Tipi di linguaggi............................ 3 1.1.1 Linguaggio regolare...................... 3 1.1.2

Dettagli

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 2 Marzo 2015 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 ore e 30 minuti. Chi deve sostenere solo il modulo di Informatica

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

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

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

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

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

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

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

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

Fondamenti d Informatica: lavoriamo con le grammatiche. Barbara Re, Phd

Fondamenti d Informatica: lavoriamo con le grammatiche. Barbara Re, Phd Fondamenti d Informatica: lavoriamo con le grammatiche Barbara Re, Phd Esercizio Grammatica e generazione stringhe Data una Grammatica ed una Stringa, verificare che la Stringa sia generata dalla Grammatica:

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

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

Esercizi di Informatica Teorica

Esercizi di Informatica Teorica Esercizi di Informatica Teorica Linguaggi non contestuali: automi a pila 1 Automa a pila richiami un automa a pila non deterministico è una settupla: A = dove èl alfabeto (finito)

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

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

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

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 1 Settembre 2016 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 ore e 30 minuti. Chi deve sostenere solo il modulo di

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

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

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

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

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

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

Programmazione Teoria dei linguaggi formali

Programmazione Teoria dei linguaggi formali Programmazione Teoria dei linguaggi formali Rosario Culmone rosario.culmone@unicam.it 18/11/2009 UNICAM - p. 1/42 Linguaggi Definizione di grammatica di Chomsky Derivazione di stringhe e generazione di

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

AUTOMI A STATI FINITI

AUTOMI A STATI FINITI AUTOMI A STATI FINITI I linguaggi regolari godono di interessanti proprietà algebriche: Sono defnibili con le espressioni regolari Sono generati da grammatiche di Chomsky di tipo 3. Sono riconoscibili

Dettagli

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Esercizio 1 } Consideriamo una MdT che modifica una sequenza di A rimpiazzando ogni A in posizione dispari con una B (la prima A ha posizione

Dettagli

Proprietá di chiusura dei linguaggi lineari destri

Proprietá di chiusura dei linguaggi lineari destri Proprietá di chiusura dei linguaggi lineari destri 4 aprile 2007 1 Dati due linguaggi L e L deniti sullo stesso alfabeto X : unione L L = {w X w L w L } prodotto L L = {w = w 1 w 2 X w 1 L w 2 L } iterazione

Dettagli

Modelli per i linguaggi

Modelli per i linguaggi Grammatiche 1 Modelli per i linguaggi Modelli adeguati per riconoscere/accettare, tradurre, calcolare linguaggi Ricevono una stringa di ingresso e la elaborano Modelli operazionali (Automi) Modelli adeguati

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

10. LINGUAGGI REGOLARI

10. LINGUAGGI REGOLARI 10. LINGUAGGI REGOLARI I linguaggi regolari: Sono i linguaggi generati da grammatiche di Chomsky di tipo 3. Vari elementi sintattici di base dei linguaggi di programmazione sono regolari (es. identificatori)

Dettagli

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO ANALISI SINTATTICA TIPO 1: Data un linguaggio scrivere una grammatica che lo generi TIPO 2: Verificare se una grammatica non contestuale è ambigua TiPO 3: Verificare se una grammatica e LL(1) e costruirne

Dettagli

Grammatiche. Dipartimento di Elettronica e Informazione Politecnico di Milano. 27 marzo 2017

Grammatiche. Dipartimento di Elettronica e Informazione Politecnico di Milano. 27 marzo 2017 Grammatiche Dipartimento di Elettronica e Informazione Politecnico di Milano 27 marzo 2017 Modelli Generativi Grammatiche I modelli di linguaggio/calcolo visti finora definiscono un linguaggio tramite

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

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

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

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento

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

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 automi a pila automi a pila e grammatiche non contestuali notazioni sul livello degli esercizi:(*)facile,

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

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

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

Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti Linguaggi regolari e automi a stati finiti Argomenti della lezione Linguaggi regolari e automi a stati finiti Automi a stati finiti non deterministici Relazione tra automi deterministici e non deterministici

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

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

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Definizioni preliminari Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: diagramma degli stati, configurazioni, relazione

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

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

(1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario

(1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario Luigi Rizzi Linguistica computazionale I. Elementi di base sulle grammatiche formali (1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario (2) Dato un vocabolario A, l insieme

Dettagli

Sommario. Esistenza problemi non Turing riconoscibili. Il metodo della diagonalizzazione di Cantor. L autoreferenzialità

Sommario. Esistenza problemi non Turing riconoscibili. Il metodo della diagonalizzazione di Cantor. L autoreferenzialità Sommario Esistenza problemi non Turing riconoscibili. Il metodo della diagonalizzazione di Cantor L autoreferenzialità La diagonalizzazione. Georg Cantor ha inventato il metodo della diagonalizzazione

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

Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune.

Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune. Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune. Si delinei un algoritmo che decide se un DFA accetta un linguaggio infinito Si delinei

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

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Fondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari

Fondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari Corso di Laurea in icurezza dei sistemi e delle reti informatiche Fondamenti di informatica per la sicurezza anno accademico 2004 2005 docente: tefano Ferrari 14.01.2005 del secondo compitino vers. B valutazioni

Dettagli

AUTOMI A PILA. M.P. Schutzenberger

AUTOMI A PILA. M.P. Schutzenberger AUTOMI A PILA Introdotti da A. G. Oettinger in Automatic Syntactic Analysis and the pushdown store Proc. Symp. Applied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata

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

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

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi,

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi, Corso di Automi e Linguaggi Formali Gennaio- Marzo 2004 Docente: Francesca Rossi, frossi@math.unipd.it Corso di Automi e Linguaggi Formali Gennaio-Marzo 2004 p.1/30 Dati del corso Orario: Lunedi 15:50-17:30,

Dettagli

R = {(0, 0), (1, 1), (2, 2), (3, 3),... }. Esempio 2. L insieme

R = {(0, 0), (1, 1), (2, 2), (3, 3),... }. Esempio 2. L insieme Definizione 1. Siano A e B insiemi. Si definisce prodotto cartesiano l insieme: A B = {(a, b) : a A b B}. Osservazione 1. Si osservi che nella Definizione 1. le coppie sono ordinate, vale a dire (x, y)

Dettagli

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI PARTE I RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI Linguaggi regolari Linguaggi non contestuali Automi 1 1.1 I LINGUAGGI IN INFORMATICA @ Presenti a vari livelli di applicazione linguaggi di

Dettagli

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 12 Luglio 2012 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 h 30 Chi deve sostenere solo il modulo di Informatica teorica

Dettagli

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 20 Febbraio 2012 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2h e 30 Chi deve sostenere solo il modulo di Informatica

Dettagli

AUTOMI A PILA. M.P. Schutzenberger

AUTOMI A PILA. M.P. Schutzenberger UTOMI PIL Introdotti da. G. Oettinger in utomatic Syntactic nalysis and the pushdown store Proc. Symp. pplied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata Information

Dettagli

Fondamenti d Informatica: Simulazione d esame. Barbara Re, Phd

Fondamenti d Informatica: Simulazione d esame. Barbara Re, Phd Fondamenti d Informatica: Simulazione d esame Barbara Re, Phd 2 Parte teorica (1 punto per ogni domanda) Domande Parte Teorica } Che cosa s intende per teoria della computabilità? Cosa è computabile? Chi

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

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

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 21 Febbraio 2013 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 3 ore. Chi deve sostenere solo il modulo di Informatica

Dettagli

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

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

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 FORMALI

LINGUAGGI E GRAMMATICHE FORMALI LINGUAGGI E GRAMMATICHE FORMALI I LINGUAGGI IN INFORMATICA Presenti in tutte le applicazioni Fondamentali nel software di sistema Paradigmatici nella teoria molti importanti problemi teorici son riconducibili

Dettagli

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina. Automa deterministico con prospezione 1 < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R δ(a, a) = ε se a Gui(X α) senza spostamento della testina con spostamento della testina Grammatica 1S ( S ) 2S [ S ] 3S

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

Automi deterministici e non

Automi deterministici e non Automi deterministici e non Negli esempi visti fin ora gli automi avevano sempre relazioni di transizione per cui per un dato elemento del dominio coppia (s, v), dove s è uno stato (sorgente) e v un simbolo,

Dettagli

Def. 2. Si dice che una matrice A, m n, ha un inversa sinistra se esiste una matrice L,

Def. 2. Si dice che una matrice A, m n, ha un inversa sinistra se esiste una matrice L, Facoltà di Scienze Statistiche, Algebra Lineare 1 A, G.Parmeggiani LEZIONE 8 Inverse destre, sinistre e bilatere Def. 1. Si dice che una matrice A, m n, ha un inversa destra se esiste una matrice R, n

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

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

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

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Grammatiche Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi

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 della seconda parte 02.04.2004 Versione A

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

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

Sommario. Esistenza problemi indecidibili. Il metodo della diagonalizzazione di Cantor L autoreferenzialità

Sommario. Esistenza problemi indecidibili. Il metodo della diagonalizzazione di Cantor L autoreferenzialità Sommario Esistenza problemi indecidibili. Il metodo della diagonalizzazione di Cantor L autoreferenzialità La diagonalizzazione. Ricorderete che Georg Cantor ha inventato il metodo della diagonalizzazione

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 Liberi dal Contesto. Linguaggi Liberi dal Contesto

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

Dettagli

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La

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

Limiti di un Elaboratore

Limiti di un Elaboratore Limiti di un Elaboratore Lemma There are problems that cannot be solved by any model of computation. Such problems are called undecidable (indecidibili). Example Input: 1 Dato un (generico) programma Prog

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

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

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

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

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 12 Automi deterministici Currying Funzioni caratteristiche Linguaggio accettato da un automa Teorema di Kleene F.Bonchi Dip.to Informatica Fondamenti

Dettagli