a cura di Luca Cabibbo e Walter Didimo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "a cura di Luca Cabibbo e Walter Didimo"

Transcript

1 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: (*) facile, (**) non difficile (***) media complessità, (****) difficile, (*****) quasi impossibile Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 2

2 automa a pila non deterministico (PDA) : A = <, Γ, Z 0, Q, q 0, F, δ > dove èl alfabeto (finito) di input Γ èl alfabeto (finito) dei simboli della pila Z 0 èil simbolo di pila iniziale Q è un insieme (finito e non vuoto) di stati q 0 Q è lo stato iniziale F Q è l insieme degli stati finali δ : Q ( {ε}) Γ P(Q Γ*) è la funzione di transizione; la transizione δ(q, a, A) <q,γ> indica che: dallo stato q, leggendo a (che può anche essere ε) dalla stringa di input e A come elemento affiorante dalla pila, si passa allo stato q e si inserisce γ al posto di A in pila Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 3 un automa a pila è deterministico se per ogni stato q, simbolo di input a e simbolo di pila A, riesce: δ(q, a, A) + δ(q, ε, A) 1 configurazione (istantanea): <q, x, γ>, dove q è lo stato corrente x è la stringa di input ancora da leggere γ è la stringa ancora presente in pila (il primo simbolo di γ è quello affiorante dalla pila) transizione tra configurazioni: <q, x, γ> <q, x, γ > x = ax, γ = Aα, γ = βα, <q, β> δ(q, a, A) oppure x = x, γ = Aα, γ = βα, <q, β> δ(q, ε, A) computazione: chiusura transitiva e riflessiva * di Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 4

3 definizioni di accettazione: accettazione per pila vuota: una stringa x è accettata da un PDA al termine della computazione su x la pila è vuota accettazione per stato finale: una stringa x è accettata da un PDA al termine della computazione su x il PDA è su uno stato finale linguaggio riconosciuto da un PDA: insieme delle stringhe accettate dal PDA teorema: i linguaggi riconosciuti dai PDA che accettano per pila vuota sono tutti e soli i linguaggi riconosciuti dai PDA che accettano per stato finale (equivalenza dei linguaggi nelle due definizioni) Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 5 Esercizio 1(**) definire un automa a pila per il linguaggio non contestuale L = {a n b n : n 1}. accettazione per pila vuota = {a,b}, Γ={Z, A}, Z 0 = Z, Q ={q 0, q 1 } δ(q 0, a, Z) = {<q 0, A>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, A) = {<q 1, ε >} δ(q 1, b, A) = {<q 1, ε >} az A, aa AA q 0 q 1 Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 6

4 computazione sulla stringa aaabbb <q 0, aaabbb, Z> <q 0, aabbb, A> <q 0, abbb, AA> <q 0, bbb, AAA> <q 1, bb, AA> <q 1, b, A> <q 1, ε, ε> accettazione per stato finale = {a,b}, Γ={Z, A}, Z 0 = Z, Q ={q 0, q 1, q F }, F = {q F } δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, A) = {<q 1, ε >} δ(q 1, b, A) = {<q 1, ε >} δ(q 1, ε, Z) = {<q F, Z>} domanda: come si può modificare l automa affinché accetti contemporaneamente per pila vuota e per stato finale? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 7 Esercizio 2(***) definire un automa a pila per il linguaggio non contestuale L = {a n b 2n : n 1}. accettazione per pila vuota δ(q 0, a, Z) = {<q 0, AA>} δ(q 0, a, A) = {<q 0, AAA>} δ(q 0, b, A) = {<q 1, ε >} δ(q 1, b, A) = {<q 1, ε >} az AA, aa AAA q 0 q 1 Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 8

5 soluzione alternativa con accettazione per pila vuota δ(q 0, a, Z) = {<q 0, A>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, A) = {<q 1, A>} δ(q 1, b, A) = {<q 2, ε>} δ(q 2, b, A) = {<q 1, A>} az A, aa AA ba A q 0 q 1 ba A q 2 Esercizio 3(***) definire un automa a pila per il linguaggio non contestuale L = {a n b m : m n 1}. Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 9 accettazione per pila vuota (e stato finale) δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, A) = {<q 1, ε>} δ(q 1, b, A) = {<q 1, ε>} δ(q 1, b, Z) = {<q 1, Z>} δ(q 1, ε, Z) = {<q F, ε>} az AZ, aa AA q 0 q 1, bz Z εz ε q F Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 10

6 albero di computazione per la stringa abb <q 0, abb, Z> <q 0, bb, AZ> <q 1, b, Z> δ(q 1, b, Z) δ(q 1, ε, Z) <q 1, ε, Z> <q F, b, ε> non accettante <q F, ε, ε> accettata sia per stato finale che per pila vuota Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 11 Esercizio 4(***) definire un automa a pila per il linguaggio non contestuale L = {a n b m : n m 1}. accettazione per stato finale δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, A) = {<q 1, ε >} δ(q 1, b, A) = {<q 1, ε >} δ(q 1, ε, A) = {<q F, ε >} δ(q 1, ε, Z) = {<q F, ε>} az AZ, aa AA q 0 q 1 εz ε εa ε q F Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 12

7 accettazione per pila vuota δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, b, A) = {<q 1, ε>} δ(q 1, b, A) = {<q 1, ε>} δ(q 0, a, A) = {<q 0, AA>, <q 0, A>} δ(q 1, ε, Z) = {<q 1, ε>} az A, aa AA aa A q 0 q 1 εz ε Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 13 albero di computazione per la stringa aab <q 0, aab, Z> <q 0, ab, AZ> <q 0, b, AAZ> <q 0, b, AZ> non accettata <q 1, ε, AZ> <q 1, ε, AZ> <q 1, ε, Z> <q 1, ε, ε> accettata per pila vuota Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 14

8 Esercizio 5(***) definire un automa a pila per il linguaggio non contestuale L = {a n b m c k : n,m,k 1 ed n=m o n=k}. accettazione per pila vuota e stato finale δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, a, A) = {<q 0, AA>} conta le a δ(q 0, b, A) = {<q 1, ε>, <q 2, A>} crea due rami: (n=m) o (n=k) δ(q 1, b, A) = {<q 1, ε >} δ(q 1, c, Z) = {<q 3, Z>} δ(q 3, c, Z) = {<q 3, Z>} δ(q 3, ε, Z) = {<q F, ε>} ramo n=m δ(q 2, b, A) = {<q 2, A>} δ(q 2, c, A) = {<q 4, ε>} ramo n=k δ(q 4, c, A) = {<q 4, ε>} δ(q 4, ε, Z) = {<q F, ε>} Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 15 cz Z cz Z q 1 q 3 εz ε az AZ, aa AA q 0 ba A q 2 ca ε q 4 εz ε q F ba A ca ε Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 16

9 Esercizio 6(***) definire un automa a pila per il linguaggio non contestuale L = {a n b m a m b n : n,m 1}. accettazione per pila vuota e stato finale δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, A) = {<q 1, BA>} δ(q 1, b, B) = {<q 1, BB>} δ(q 1, a, B) = {<q 2, ε>} δ(q 2, a, B) = {<q 2, ε>} δ(q 2, b, A) = {<q 3, ε>} δ(q 3, b, A) = {<q 3, ε>} δ(q 3, ε, Z) = {<q F, ε>} Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 17 bb BB ab ε svuota le B ba BA q 1 ab ε q 2 svuota le A εz ε az AZ, aa AA q 0 inserisce le B q 3 q F inserisce le A Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 18

10 Esercizio 7(***) definire un automa a pila per il linguaggio delle stringhe su {a,b} tali che #a = #b. accettazione per pila vuota e stato finale δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, b, Z) = {<q 0, BZ>} δ(q 0, a, A) = {<q 0, AA>} δ(q 0, b, B) = {<q 0, BB>} δ(q 0, a, B) = {<q 0, ε>} δ(q 0, b, A) = {<q 0, ε>} δ(q 0, ε, Z) = {<q F, ε>} osservazione nella pila non ci possono essere contemporaneamente delle A e delle B Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 19 Esercizio 8(***) definire un automa a pila per il linguaggio delle stringhe su {a,b,c} tali che #a = #b + #c. accettazione per pila vuota e stato finale δ(q 0, a, Z)={<q 0, AZ>}, δ(q 0, b, Z)={<q 0, BZ>}, δ(q 0, c, Z)={<q 0, BZ>} δ(q 0, a, A)={<q 0, AA>}, δ(q 0, b, B)={<q 0, BB>}, δ(q 0, c, B)={<q 0, BB>} δ(q 0, a, B)={<q 0, ε>}, δ(q 0, b, A)={<q 0, ε>}, δ(q 0, c, A)={<q 0, ε>} δ(q 0, ε, Z) = {<q F, ε>} Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 20

11 Esercizio 9(***) definire un automa a pila per ciascuno dei seguenti linguaggi non contestuali: L = {a n c m b n : n,m 1} L = {(ab) n (cd) n : n 1} L = stringhe su {a,b,c,d} tali che #a + #b = #c + #d Esercizio 10(**) mostrare l albero di computazione per la stringa aaabb nell automa dell Esercizio 4 Esercizio 11(**) mostrare l albero di computazione per la stringa aabcc nell automa dell Esercizio 5 Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 21 input : una grammatica non contestuale (CFG) G = < V T,V N, P, S > ouput : un PDA A = <, Γ, Z 0, Q, q 0, δ > che accetta per pila vuota ricavare una G = < V T,V N, P, S > in GNF equivalente a G ma che non genera ε = V T Γ = V N Z 0 = S Q = {q} e q 0 = q per ogni produzione A aγ introdurre δ(q, a, A) <q, γ> se G genera ε allora aggiungere lo stato q a Q, porre q 0 = q ed aggiungere le seguenti transizioni: δ(q, ε, Z 0 ) <q, ε> (per riconoscere ε) δ(q, ε, Z 0 ) <q, Z 0 > (per ricondursi alle transizioni su q) Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 22

12 Esercizio 12(***) definire un automa a pila non deterministico che riconosce il linguaggio generato dalla seguente grammatica non contestuale: S a S + S S * S (S) portiamo la grammatica in GNF portiamo in quasi CNF: S SPS SMS ASZ a P +, M *, A (, Z ) scegliamo l ordinamento S < P < M < A < Z Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 23 eliminiamo la ricursione sinistra su S: S ASZR ar ASZ a R PSR MSR PS MS P +, M *, A (, Z ) sostituiamo a ritroso e semplifichiamo S (SZR ar (SZ a R +SR *SR +S *S Z ) poniamo: = {a, +, *, (, )}, Γ = {S, R, Z}, Q = {q}, q 0 = q, Z 0 = S costruiamo l insieme delle transizioni: Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 24

13 δ(q, (, S) = {<q, SZR>, <q, SZ>} δ(q, a, S) = {<q, R>, <q, ε>} δ(q, +, R) = {<q, SR>, <q, S>} δ(q, *, R) = {<q, SR>, <q, S>} δ(q, ), Z) = {<q, ε>} Esercizio 13(***) definire un automa a pila non deterministico per la seguente grammatica G non contestuale: S ε [S] SS (L(G) è anche detto linguaggio delle parentesi bilanciate o Dyck 1 ) Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 25 consideriamo la grammatica equivalente a G ma che non genera la stringa vuota: S [S] SS [] scriviamo la grammatica in GNF: S [Z [SZ [ZR [SZR R [Z [SZ [ZR [SZR [ZRR [SZRR Z ] poniamo: = {[, ]}, Γ = {S, R, Z}, Q = {q, q }, q 0 = q, Z 0 = S costruiamo l insieme delle transizioni: δ(q, [, S) = {<q, Z>, <q, SZ>, <q, ZR>, <q, SZR>} δ(q, [, R) = {<q, Z>, <q, SZ>, <q, ZR>, <q, SZR>, <q, ZRR>, <q, SZRR>} δ(q, ], Z) = {<q, ε>} δ(q, ε, S) = {<q, ε>, <q, S>} Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 26

14 osservazione: esiste un PDA molto più semplice per il linguaggio definito dalla grammatica delle parentesi bilanciate S = simbolo di pila iniziale δ(q, ε, S) = {<q, ε>} δ(q, [, S) = {<q, AS>} δ(q, [, A) = {<q, AA>} δ(q, ], A) = {<q, ε>} la situazione nella pila all istante generico è così riassunta: - se l elemento affiorante è S allora c è un bilanciamento di parentesi - se l elemento affiorante è A allora ci sono più parentesi aperte Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 27 input : un PDA A = <, Γ, Z 0, Q, q 0, δ > che accetta per pila vuota ouput : una grammatica non contestuale (CFG) G = < V T,V N, P, S > V T = V N = {[paq] : p, q Q, A Γ} {S} l insieme P delle produzioni è il seguente: S [q 0 Z 0 q] q Q [paq] a <q, ε> δ(p, a, A) [paq m+1 ] a[q 1 B 1 q 2 ] [q 2 B 2 q 3 ]... [q m B m q m+1 ] su ogni possibile scelta di q 2,..., q m+1 Q <q 1, γ> δ(p, a, A) con γ = B 1... B m Esercizio 14(***) definire una grammatica non contestuale che genera il linguaggio riconosciuto dal seguente automa a pila non deterministico: Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 28

15 = {[, ]}, Γ = {T, A}, Q = {q 0 }, Z 0 = T δ(q 0, ε, T) = {<q 0, ε>} δ(q 0, [, T) = {<q 0, AT>} δ(q 0, [, A) = {<q 0, AA>} δ(q 0, ], A) = {<q 0, ε>} produzioni per l assioma: S [q 0 Tq 0 ] produzioni per δ(q 0, ε, T) = {<q 0, ε>}: [q 0 Tq 0 ] ε Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 29 produzioni per δ(q 0, ], A) = {<q 0, ε>}: [q 0 ] ] produzioni per δ(q 0, [, T) = {<q 0, AT>} [q 0 Tq 0 ] [ [q 0 ] [q 0 Tq 0 ] produzioni per δ(q 0, [, A) = {<q 0, AA>} [q 0 ] [ [q 0 ] [q 0 ] poiché q 0 è il solo stato dell automa, possiamo rinominare i non terminali al modo: [q 0 Tq 0 ] = T, [q 0 ] = A, e riscrivere dunque la grammatica come segue: S T (S = assioma) T ε [AT A ] [AA Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 30

16 Esercizio 15(***) definire una grammatica non contestuale corrispondente al seguente automa a pila non deterministico: = {a,b}, Γ = {Z, A}, Q = {q 0, q 1, q F }, Z 0 = Z δ(q 0, a, Z) = {<q 0, AZ>} δ(q 0, a, A) = {<q 0, A>, <q 0, AA>} δ(q 0, b, A) = {<q 1, ε>} δ(q 1, b, A) = {<q 1, ε>} δ(q 1, ε, Z) = {<q F, ε>} Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 31 produzioni per l assioma: S [q 0 Zq 0 ] [q 0 Zq 1 ] [q 0 Zq F ] produzioni per <q 0, AZ> δ(q 0, a, Z): [q 0 Zq 0 ] a[q 0 ] [q 0 Zq 0 ] [q 1 Zq 0 ] [q F Zq 0 ] [q 0 Zq 1 ] a[q 0 ] [q 0 Zq 1 ] [q 1 Zq 1 ] [q F Zq 1 ] [q 0 Zq F ] a[q 0 ] [q 0 Zq F ] [q 1 Zq F ] [q F Zq F ] produzioni per <q 0, A> δ(q 0, a, A): [q 0 ] a[q 0 ] [q 0 ] a[q 0 ] [q 0 ] a[q 0 ] produzioni per <q 0, AA> δ(q 0, a, A): [q 0 ] a[q 0 ] [q 0 ] [q 1 ] [q F ] [q 0 ] a[q 0 ] [q 0 ] [q 1 ] [q F ] [q 0 ] a[q 0 ] [q 0 ] [q 1 ] [q F ] Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 32

17 produzioni per <q 1, ε> δ(q 0, b, A): [q 0 ] b produzioni per <q 1, ε> δ(q 1, b, A): [q 1 ] b produzioni per <q F, ε> δ(q 1, ε, Z): [q 1 Zq F ] ε proviamo a semplificare: - rinominiamo ciascun non terminale al modo: [q i Aq j ] = A ij - l intera grammatica si riscrive dunque come segue: Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 33 S Z 00 Z 01 Z 0F Z 00 aa 00 Z 00 aa 01 Z 10 aa 0F Z F0 Z 01 aa 00 Z 01 aa 01 Z 11 aa 0F Z F1 Z 0F aa 00 Z 0F aa 01 Z 1F aa 0F Z FF A 00 aa 00 A 00 aa 01 A 10 aa 0F A F0 aa 00 A 01 aa 00 A 01 aa 01 A 11 aa 0F A F1 aa 01 b A 0F aa 00 A 0F aa 01 A 1F aa 0F A FF aa 0F A 11 b Z 1F ε i simboli fecondi sono: A 01,A 11,Z 1F,Z 0F,S eliminando dunque i simboli: Z 00, Z 01,A 00,A 0F la grammatica diventa Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 34

18 S Z 0F Z 0F aa 01 Z 1F A 01 aa 01 A 11 aa 01 b A 11 b Z 1F ε eliminando le ε-produzioni e poi le produzioni unitarie si ha: S aa 01 A 01 aa 01 A 11 aa 01 b A 11 b rinominiamo i non terminali al modo: A 01 =A, A 11 = B S aa A aab aa b B b Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 35

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

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

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

Dettagli

LINGUAGGI 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 proprietà delle grammatiche non contestuali pumping lemma forme normali notazioni sul livello degli

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

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

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

Automi a pila. Automi a pila

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

Dettagli

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

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

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

Informatica Teorica. linguaggi non contestuali

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

Dettagli

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

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

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

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

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

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

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

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

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

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

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 macchine di Turing a nastro singolo macchine di Turing multinastro macchine di Turing trasduttrici

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

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

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

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

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

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

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

Dettagli

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

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

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

Definire tramite una grammatica ad attributi il

Definire tramite una grammatica ad attributi il 1 ESERCIZI ESERCIZIO 1 Definire tramite una grammatica ad attributi il linguaggio L = {a n b n c n n 0} Implementare un analizzatore sintattico/ semantico a discesa ricorsiva Costruire le tabelle di analisi

Dettagli

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

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

Dettagli

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

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

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

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

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

Dettagli

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI

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

Dettagli

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

Parole note, nuovi significati: linguaggio, determinismo e infinito

Parole note, nuovi significati: linguaggio, determinismo e infinito Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico

Dettagli

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Automi Giacomo PISCITELLI Generalità sugli Automi Automi In informatica teorica e in matematica discreta,

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

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

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

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

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi

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

Dettagli

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

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

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

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

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

Dettagli

(2) se A A, allora A c A; (3) se {A n } A, allora +

(2) se A A, allora A c A; (3) se {A n } A, allora + 1. Spazi di misura In questo paragrafo accenneremo alla nozione di spazio di misura. Definizione 1. Sia X un insieme non vuoto. Una famiglia A di sottoinsiemi di X è una σ-algebra se : (1) A; (2) se A

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

Dispense del corso di Linguaggi Formali e Automi

Dispense del corso di Linguaggi Formali e Automi Dispense del corso di Linguaggi Formali e Automi Marco Alfieri, Matteo Bianchi, Grazia D Aversa, Andrea Fumagalli, Emanuele Mornini, Dario Villa, Massimo Vitali 8 settembre 2002 Appunti tratti dalle lezioni

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

3/10/ Divisibilità e massimo comun divisore

3/10/ Divisibilità e massimo comun divisore MCD in N e Polinomi 3/10/2013 1 Divisibilità e massimo comun divisore 1.1 Divisibilità in N In questa sezione introdurremo il concetto di divisibilità e di massimo comun divisore di due numeri naturali

Dettagli

CAPITOLO SECONDO APPLICAZIONI TRA INSIEMI E RELAZIONI DI EQUIVALENZA

CAPITOLO SECONDO APPLICAZIONI TRA INSIEMI E RELAZIONI DI EQUIVALENZA CAPITOLO SECONDO APPLICAZIONI TRA INSIEMI E RELAZIONI DI EQUIVALENZA 1 Applicazioni tra insiemi Siano A, insiemi. Una corrispondenza tra A e è un qualsiasi sottoinsieme del prodotto cartesiano A ; Se D

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

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero. ANALISI SINTATTICA Data un linguaggio scrivere una grammatica che lo generi ESERCIZIO 1 Definire una grammatica per il linguaggio L = {ww w appartiene a (a, b)*} ESERCIZIO 2 Dato l alfabeto T=[0,1,2,3,4,5,6,7,8,9,/}

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

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori Reti Sequenziali Reti Sequenziali Corso di Architetture degli Elaboratori Caratteristiche 1 Caratteristiche delle reti sequenziali Reti combinatorie: il valore in uscita è funzione (con il ritardo indotto

Dettagli

Presentazioni di gruppi: generatori e relazioni

Presentazioni di gruppi: generatori e relazioni Presentazioni di gruppi: generatori e relazioni Note per il corso di Geometria 4 (relative alla parte dei 6 crediti) Milano, 2011-2012, M.Dedò N.B. Quanto segue si appoggia fortemente al testo [M] consigliato

Dettagli

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Dettagli

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni Università degli Studi di Udine Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni 1 Automi e Linguaggi 1. Sia dato p N, p > 0 dimostri che il linguaggio è regolare. L p = { a 0 a 1... a

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

PARALLELISMO TRA RETTA E PIANO SVILUPPATO SUL PARALLELISMO TRA PIANI

PARALLELISMO TRA RETTA E PIANO SVILUPPATO SUL PARALLELISMO TRA PIANI 04.01.02. PARALLELISMO TRA RETTA E PIANO SVILUPPATO SUL PARALLELISMO TRA PIANI In aggiunta alla procedura già discussa ai punti precedenti e basata sul parallelismo tra la retta data ed una retta del piano,

Dettagli

GRAMMATICHE LIBERE DAL CONTESTO

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

Dettagli

Linguaggi formali e compilazione

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

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

ESERCIZI SULLE DISEQUAZIONI I

ESERCIZI SULLE DISEQUAZIONI I ESERCIZI SULLE DISEQUAZIONI I Risolvere le seguenti disequazioni: 1 1) { x < x + 1 4x + 4 x ) { x + 1 > x 4x x 10 ) x 4 x 5 4x + > ; 4) ; 5) x 1 x + 1 x + 1 0 ) x > x 0 7) x > 4x + 1; 8) 4 5 x 1 < 1 x

Dettagli

Grammatiche e Linguaggi Context-Free

Grammatiche e Linguaggi Context-Free rammatiche e Linguaggi Context-Free Def.: Una rammatica =(N,Σ,P,S) e detta context-free se ogni produzione in P e del ( ). tipo A α, con A N ed " # N $ % I linguaggi generati da una grammatica context-free

Dettagli

Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità

Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità Marco Liverani Ottobre 2005 1 Introduzione Alla base dell Informatica, a fondamento della teoria su cui viene costruita la cosiddetta

Dettagli

Linguaggi formali e compilazione

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

Dettagli

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori I linguaggi formali Giacomo PISCITELLI Traduttori Un traduttore è un programma che effettua la traduzione

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

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE Ivan Lanese argomenti Grammatiche BNF Varianti: BNF + ε EBNF Remind: cos è una grammatica Una grammatica è uno strumento linguistico per definire insiemi di

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

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr Fondamenti di informatica Esercizi Svolti Macchine di Turing Realizzati da: Roberto Quaranta Matr. 449028 Macchina di Turing che calcola la funzione Max(x, y) Q= {q 0, q 1, q 2, q 3, q 4, q 5, q 6,q F

Dettagli

10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI

10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI 10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI Sono computazionalmente più potenti gli ASF o gli ASFND? In altre parole, se con L(ASF) indichiamo la classe dei linguaggi riconoscibili

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

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore MCD in N e Polinomi Giovanna Carnovale October 18, 2011 1 Divisibilità e massimo comun divisore 1.1 Divisibilità in N In questa sezione introdurremo il concetto di divisibilità e di massimo comun divisore

Dettagli

Elaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK

Elaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK Elaborazione di File di Dati Uso di semplici comandi Espressioni regolari AWK Sort sort [option] file1... filen Consente di ordinare, fondere o confrontare le linee dei file in input Ha tre modalità di

Dettagli

STRUMENTI FORMALI PER L ANALISI LESSICALE SINTATTICA

STRUMENTI FORMALI PER L ANALISI LESSICALE SINTATTICA Universtità degli Studi G. D Annunzio Chieti Pescara Facoltà di Economia Corso di Laurea in Economia Informatica Pescara TESINA DI LAUREA STRUMENTI FORMALI PER L ANALISI LESSICALE SINTATTICA DEI COMPILATORI

Dettagli

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore

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

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI 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

ANALISI MATEMATICA PER IL CdL IN INFORMATICA ESERCIZI SULLE DISEQUAZIONI

ANALISI MATEMATICA PER IL CdL IN INFORMATICA ESERCIZI SULLE DISEQUAZIONI ANALISI MATEMATICA PER IL CdL IN INFORMATICA ESERCIZI SULLE DISEQUAZIONI Risolvere le seguenti disequazioni: ( 1 ) x < x + 1 1) 4x + 4 x ) x + 1 > x 4x x 10 ) x 4 x 5 4x + > ; 4) ; 5) 0; ) x 1 x + 1 x

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

Automi per il riconoscimento di linguaggi.

Automi per il riconoscimento di linguaggi. Automi per il riconoscimento di linguaggi. Un altro modo di caratterizzare un linguaggio formale e' quello di identificare l'automa di riconoscimento corrispondente. Un automa e', in generale, una macchina

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

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

1 Relazione di congruenza in Z

1 Relazione di congruenza in Z 1 Relazione di congruenza in Z Diamo ora un esempio importante di relazione di equivalenza: la relazione di congruenza modn in Z. Definizione 1 Sia X = Z, a,b Z ed n un intero n > 1. Si dice a congruo

Dettagli

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x.

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x. ALGEBRE DI BOOLE Un insieme parzialmente ordinato è una coppia ordinata (X, ) dove X è un insieme non vuoto e " " è una relazione binaria definita su X tale che (a) x X x x (riflessività) (b) x, y, X se

Dettagli

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F Macchina di Turing Nastro di Input...!!! a b b! b a! testina!!... s r s t q i Unità di Controllo q j Q S / D / F P Definizione Formale Una macchina di Turing deterministica è una sestupla

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Corso di ALGEBRA (M-Z) INSIEMI PARZIALMENTE ORDINATI E RETICOLI

Corso di ALGEBRA (M-Z) INSIEMI PARZIALMENTE ORDINATI E RETICOLI Corso di ALGEBRA (M-Z) 2013-14 INSIEMI PARZIALMENTE ORDINATI E RETICOLI Sia P un insieme non vuoto. Una relazione d ordine su P è una relazione riflessiva, antisimmetrica e transitiva. La coppia (P,) si

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

Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto

Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto Gabriele Gullà Introduzione Nelle pagine che seguono tratterò, in forma sintetica e il più possibile autocontenuta, le principali proprietà

Dettagli