7. Automi a Pila e Grammatiche Libere

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "7. Automi a Pila e Grammatiche Libere"

Transcript

1 Dipartimento di Informatica Università degli Studi di Bari 20 aprile 2016

2 1 Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi 2 Teorema delle

3 Automi con Memoria Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Per riconoscere linguaggi superiori rispetto a quelli di L FSL occorrono altri strumenti più potenti: Dato un alfabeto finito X di ingresso: nastro di ingresso: contiene i simboli dell alfabeto di ingresso X ; su un simbolo insiste una testina di lettura memoria ausiliaria: ha capacità virtualmente illimitata ed un proprio alfabeto di memoria (o di lavoro) Se l organizzazione della memoria è uno stack, l automa risultante si definirà automa a pila (o automa push-down, PDA) unità di controllo: controlla le transizioni dell automa, in base al contenuto della memoria e del simbolo letto dalla testina sul nastro.

4 Modello di PDA Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi nastro di ingresso a a a a a a b b b b b b testina di lettura unità di controllo a stati finiti q 0 q 1... q n A S memoria ausiliaria

5 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Un automa a pila non deterministico è una n-pla: M = (Q, X, Γ, δ, q 0, Z 0, F ) Q insieme finito e non vuoto degli stati X insieme finito e non vuoto detto alfabeto di ingresso Γ insieme finito e non vuoto detto alfabeto della pila δ funzione di transizione: δ : Q (X λ) Γ (Q Γ ) scritta anche come (q, σ) δ(q, x, Z) ovvero (q, x, Z, q, σ) q 0 Q è lo stato iniziale Z 0 Γ è il simbolo iniziale della pila F Q è l insieme degli stati finali

6 Descrizioni Istantanee Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Una descrizione istantanea (ID) per un PDA è una terna (q, w, σ) Q X Γ q Q è lo stato corrente dell unità di controllo w = x 1 x 2 x n X è la sottostringa della stringa sul nastro ancora da esaminare (testina posizionata su x 1 ) σ = Z 1 Z 2 Z m è il contenuto della pila con Z 1 in cima e Z m al fondo Servono a descrivere lo stato globale di un PDA in ogni istante. descrizione iniziale (q 0, w, Z 0 ) descrizione finale (q, λ, σ) con q F, σ Γ

7 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Sia M nello stato q, sia x letto dalla testina e A in cima alla pila: 1 se δ contiene (q, x, A, q, A 1 A k ) ossia se (q, A 1 A k ) δ(q, x, A) M può operare la transizione: (q, xw, Aσ) = (q, w, A 1 A k σ) 2 se δ è descritta dalla n-pla (q, λ, A, q, A 1 A k ) ossia se (q, A 1 A k ) δ(q, λ, A) allora la sua esecuzione può provocare la transizione: (q, w, Aσ) = (q, w, A 1 A k σ) = è la chiusura riflessiva e transitiva dell operatore = Con ID 1 = ID 2 si indica la pssibilità di transitare dalla descrizione ID 1 alla ID 2 in un numero finito (anche nullo) di passi

8 Condizioni di Accettazione Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi w X è accettata dal PDA M in condizione di stato finale sse: (q 0, w, Z 0 ) = (q, λ, σ) q F e σ Γ linguaggio accettato da M in condizione di stato finale: T (M) = {w X (q 0, w, Z 0 ) = (q, λ, σ) con q F e σ Γ } w X è accettata dal PDA M in condizione di pila vuota sse: (q 0, w, Z 0 ) = (q, λ, λ) q Q linguaggio accettato da M in condizione di pila vuota: T (M) = {w X (q 0, w, Z 0 ) = (q, λ, λ) con q Q}

9 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Teorema. La classe dei linguaggi accettati da PDA in condizione di pila vuota è equivalente alla classe dei linguaggi accettati in condizione di stato finale Cenni sulla Dimostrazione. Se si raggiunge uno stato finale e la pila non è vuota occorre ripulire la pila dai simboli restanti senza cambiare stato Se la pila è vuota bisogna obbligare l automa a transitare in uno stato finale senza modificare la situazione della pila

10 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Esempio 1. L = {w {a, b} w ha lo stesso numero di a e di b} G = (X, V, S, P) X = {a, b} V = {S} P = {S ab ba SS asb bsa} M = (Q, X, Γ, δ, q 0, Z 0, F ) Q = {q 0 } Γ = {Z 0, A, B} F = simbolo pila stato a b A q 0 AA λ B q 0 λ BB Z 0 q 0 AZ 0 BZ 0

11 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Programma per PDA (è omesso lo stato q 0 ): 1 (a, Z 0, AZ 0 ) 2 (b, Z 0, BZ 0 ) 3 (a, A, AA) 4 (b, B, BB) 5 (a, B, λ) 6 (b, A, λ) 7 (λ, Z 0, λ) λ-regola per cancellare il fondo della pila

12 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi esempio di elaborazione stringa abba ID iniziale: (q 0, abba, Z 0 ) = (q 0, bba, AZ 0 ) = (q 0, ba, Z 0 ) = (q 0, a, BZ 0 ) = (q 0, λ, Z 0 ) = (q 0, λ, λ) la stringa è accettata. stringa aababa ID iniziale: (q 0, aababa, Z 0 ) = (q 0, ababa, AZ 0 ) = (q 0, baba, AAZ 0 ) = (q 0, aba, AZ 0 ) = (q 0, ba, AAZ 0 ) = (q 0, a, AZ 0 ) = (q 0, λ, AAZ 0 ) la stringa non è accettata.

13 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Esempio 2. L = {wcw R w {a, b} } G = (X, V, S, P) X = {a, b, c} V = {S} P = {S c asa bsb} M = (Q, X, Γ, δ, q 0, Z 0, F ) Q = {q 0, q 1 } q 0 = lettura q 1 = match Γ = {Z 0, A, B} F =

14 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi simbolo pila stato a b c A q 0 (q 0, AA) (q 0, BA) (q 1, A) A q 1 (q 1, λ) - - B q 0 (q 0, AB) (q 0, BB) (q 1, B) B q 1 - (q 1, λ) - Z 0 q 0 (q 0, AZ 0 ) (q 0, BZ 0 ) (q 1, Z 0 ) Z 0 q Si osservi che c segnala il cambiamento di stato interno (centro della stringa palindroma) q 1 nel quale si comincia a svuotare la pila riempita nello stato q 0

15 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi 1 (q 0, a, Z 0, q 0, AZ 0 ) 2 (q 0, a, A, q 0, AA) 3 (q 0, a, B, q 0, AB) 4 (q 0, b, Z 0, q 0, BZ 0 ) 5 (q 0, b, A, q 0, BA) 6 (q 0, b, B, q 0, BB) 7 (q 0, c, Z 0, q 1, Z 0 ) 8 (q 0, c, A, q 1, A) 9 (q 0, c, B, q 1, B) 10 (q 1, a, A, q 1, λ) 11 (q 1, b, B, q 1, λ) 12 (q 1, λ, Z 0, q 1, λ) λ-regola Programma per PDA: la 1. la 2. e la 3. si possono riassumere con: (q 0, a, Z, q 0, AZ) Z Γ la 4. la 5. e la 6. si possono riassumere con: (q 0, b, Z, q 0, BZ) Z Γ la 7. la 8. e la 9. si possono riassumere con: (q 0, c, Z, q 1, Z) Z Γ

16 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Esempio 3. L = {ww R w {a, b} } G = (X, V, S, P) X = {a, b} V = {S} P = {S λ asa bsb} M = (Q, X, Γ, δ, q 0, Z 0, F ) Q = {q 0, q 1 } q 0 = lettura q 1 = match Γ = {Z 0, A, B} F =

17 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi simbolo pila stato a b A q 0 {(q 0, AA), (q 1, λ)} (q 0, BA) A q 1 (q 1, λ) - B q 0 (q 0, AB) {(q 0, BB), (q 1, λ)} B q 1 - (q 1, λ) Z 0 q 0 (q 0, AZ 0 ) (q 0, BZ 0 ) Z 0 q 1 - -

18 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Programma per PDA: 1 (q 0, a, Z, q 0, AZ) Z Γ 2 (q 0, b, Z, q 0, BZ) 3 (q 0, λ, Z, q 1, Z) (invece della λ-regola precedente) 4 (q 1, a, A, q 1, λ) 5 (q 1, b, B, q 1, λ) 6 (q 1, λ, Z 0, q 1, λ) automa non deterministico con due possibilità, trovandosi in q 0 leggere il prossimo simbolo dal nastro passare in q 1

19 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi esempio di elaborazione stringa abba (q 0, abba, Z 0 ) = (q 0, bba, AZ 0 ) = (q 0, ba, BAZ 0 ) 1 = (q 0, a, BBAZ 0 ) = (q 0, λ, ABBAZ 0 ). 5 = (q 1, a, AZ 0 ) = (q 1, λ, Z 0 ) = (q 1, λ, λ) la stringa è accettata.

20 Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi Osservazioni. L 1 = {wcw R w {a, b} } accettato da un PDA deterministico L 2 = {ww R w {a, b} } accettato da un PDA non deterministico si può dimostrare che M PDA deterministico tale che T (M) = L 2 pertanto la classe dei linguaggi riconosciuta dai PDA deterministici è inclusa strettamente in quella dei linguaggi riconosciuti da PDA non determinisitici

21 Automi a Pila Teorema delle Esempio. G = (X, V, S, P) X = {0, 1, 2} V = {S, A, B} P = {S 0SAB 1, A 1A 1, B 2B 2} Data la forma delle produzioni, la lettura del primo simbolo (terminale) può essere usata in modo predittivo per decidere il resto della stringa che si dovrà derivare

22 Teorema delle Costruiamo l automa a pila equivalente: M = (Q, X, Γ, δ, q 0, Z 0, F ) Q = {q 0 } Γ = {S, A, B} con Z 0 = S F = top pila stato S q 0 (q 0, SAB) (q 0, λ) A q 0 {(q 0, A), (q 0, λ)} B q 0 {(q 0, B), (q 0, λ)}

23 Teorema delle Teorema. Sia G = (X, V, S, P) una grammatica libera con produzioni del tipo A xα con x X, α V. Allora esiste un PDA M, tale che L(G) = T (M) con: Q = {q 0 } Γ = V Z 0 = S F = M = (Q, X, Γ, δ, q 0, Z 0, F ) A xα P : (q 0, α) δ(q 0, x, A) Occorre riportare le produzioni di una grammatica libera in una forma particolare per poter effettuare il passaggio ad un automa riconoscitore mediante questo teorema

24 Teorema delle Una grammatica libera G = (X, V, S, P) è in forma normale di Chomsky se ogni produzione è di uno dei tipi seguenti: 1 S λ 2 A BC con A V e 3 A a con A V, a X { B, C V \ {S} se S λ P B, C V altrimenti

25 Automi a Pila Teorema delle Una grammatica libera G = (X, V, S, P) è in forma normale priva di ricorsioni sinistre (NLR, No Left Recursion) se non ha produzioni del tipo: dove A V, v (V X ) A Av

26 Teorema delle Una grammatica libera G = (X, V, S, P) è in forma normale di Greibach (GNF, Greibach Normal Form) se ogni produzione è del tipo: 1 S λ 2 A xα dove A V, x X, α V

27 Passaggio alle Teorema delle Teorema. Sia G una grammatica libera. Allora esistono G i, i = 1, 2, 3 equivalenti a G (cioè L(G) = L(G i )) tali che G 1 è in forma normale di Chomsky G 2 è in forma normale di Greibach G 3 è in forma normale NLR priva di ricorsioni sinistre Dim. (costruttivamente) da G a G 1 CNF con l Algoritmo 1 da G 1 a G 2 GNF con l Algoritmo 2 da G 2 a G 3 NLR come passo dell Algoritmo 2

28 Teorema delle Esempio Conduttore Algoritmo 1. Grammatica libera G = (X, V, S, P) con X = {0, 1, 2} V = {S, A, B} P = {S 00A B 1, A 1AA 2, B 0}

29 Algoritmo 1 Automi a Pila Teorema delle input: G = (X, V, S, P) grammatica libera output: G 1 = (X, V, S, P) in CNF Passo 1. Conversione dei terminali che compaiono nelle parti destre di produzioni in non terminali Aggiunta delle produzioni appropriate per tali non terminali: S BBA B 1 A CAA 2 C 1 B 0

30 Teorema delle Passo 2. Suddivisione delle produzioni in cui le parti destre hanno più di due simboli non terminali S BD B 1 D BA A CE 2 E AA C 1 B 0

31 Teorema delle Passo 3. Sostituzione dei non terminali che costituiscono, da soli, parti destre di qualche produzione S BD 0 1 D BA A CE 2 E AA C 1 B 0

32 Teorema delle Esempio Conduttore Algoritmo 2. Si consideri la grammatica G = (X, V, S, P) con: X = {a, b, c, d} V = {S, A, B, C, D} P = { S AaB, A λ, B CD c, C BC d, D ab a }

33 Algoritmo 2 Automi a Pila Teorema delle input: G = (X, V, S, P) in CNF output: G 1 = (X, V, S, P) in GNF Passo 1. Eliminazione delle λ-regole Dividiamo V in due parti V 1 = {A V A = λ} e V 2 = V \ V 1 Algoritmo di calcolo di e(a) = vero sse A = λ: 1 A V : e(a) false 2 A λ P : e(a) true e si marcano (con ) le occorrenze di A che appaiono nelle parti destre delle produzioni di G 3 A α P si cancellano da α i non terminali marcati; se la parte destra diventa vuota allora e(a) true e si marcano tutte le A occorrenti in parti destre 4 se nel passo (3) qualche e(a) è mutato allora torna al passo (3) altrimenti termina

34 Teorema delle Nell esempio precedente costruiamo le nuove produzioni P 2 : quindi V 1 = {A} e() (1) (2) (3) (4) S A B C D

35 Teorema delle Per il lemma della stringa vuota: 1 S λ P 2 sse S = λ (quando λ L(G)) 2 Se A X 1 X 2... X r, r 1 allora apparterranno alla nuovo insieme P 2 le produzioni con: Y i = A Y 1 Y 2... Y r { Xi se X i X V 2 ; X i λ se X i V 1 (2 prod. per ogni scelta di X i ) P 2 = { S ab AaB, A λ, (si può eliminare) B CD c, C BC d, D ab a }

36 Teorema delle Passo 2. Eliminazione dei non terminali A inutili A non genera alcuna stringa terminale da S non deriva alcuna forma di frase contenente A Algoritmo per il calcolo di t(a) e s(a) t(a) = true sse A = w, w X A V s(a) = true sse S = αaβ, α, β (X V )

37 Teorema delle 1 A V : t(a) falso 2 se A x P, x X allora t(a) vero e si marcano con un apice t tutte le occorrenze di A in parti destre di produzioni di P 3 s(s) vero e si marcano con un apice s tutte le occorrenze di S in parti sinistre di produzioni di P 4 A α P se i non terminali di α sono marcati t allora si marcano con t tutte le A in parti destre di P se A è marcato s allora s(b) vero A αbβ e si marcano con s tutte le occorrenze di B in parti sinistre di P 5 se nel passo 4. qualcosa è mutato allora torna al passo 4. 6 A tale che t(a) = falso oppure s(a) = falso: Cancella da P tutte le produzioni in cui compare A.

38 Teorema delle t s t s t s t s t s S A B C D S s ab t AaB t B s C t D t c C s B t C t d D s ab a essendo A il non terminale inutile, quindi S AaB può essere eliminata

39 Teorema delle Passo 3. Eliminazione dei non terminali ciclici A = + A Algoritmo per il calcolo di c(a) = {B A = + B} 1 A V : c(a) 2 A α P con α = βbγ e β = λ e γ = λ si pone c(a) c(a) {B} 3 A V se B c(a) allora c(a) c(a) c(b) 4 se al passo 3. è mutata la composizione di un insieme c( ) allora torna a 2. altrimenti STOP

40 Teorema delle Nel nostro caso: c( ) S B C D quindi non vi sono non terminali ciclici

41 Teorema delle Passo 4. Eliminazione delle produzioni A B Algoritmo 1 Partizionare P in P 1 e P 2 ove P 2 = {A B P A, B V } 2 P 1 P 1 {A α B c(a) B α P 1 } NB: Si possono produrre NT ciclici. Nell esempio non vi sono tali produzioni

42 Teorema delle Passo 5. Eliminazione delle produzioni A Bβ Algoritmo Per ognuna di queste produzioni: 1 Se B α 1 α 2 α n P allora sostituisco A Bβ con A α 1 β α 2 β α n β 2 Se i [1, n]: α i inizia con un terminale allora termina per A Bβ altrimenti se α k = Cγ ripetere per A Cγβ NB: Si possono generare NT inutili

43 Teorema delle L algoritmo termina sse (ipotesi): non terminali inutili eliminati in precedenza grammatica priva di ricorsioni sinistre tali che A = Aα Sotto queste ipotesi le produzioni della grammatica risultante sono del tipo A xα con x X e α (X V ) Applico i passi fino al prossimo 6. (ed eventualmente anche i precedenti). A questo punto (passo 7.) si trasforma ogni terminale in α in un non terminale aggiungendo un opportuna produzione La grammatica ottenuta sarà in GNF

44 Teorema delle S ab B CD c C BC d D ab a Ordine scelto S B C D S ab tipo (b) : A i xv, x X, v (X V ) B CD tipo (a) : A i A j v, i < j B c tipo (b) C BC nè (a) nè (b) essendo B C C d tipo (b) D ab a tipo (b)

45 Teorema delle Trasformazione di C BC usando B CD c B B {}}{{}}{ C CD C c C ottenendo la grammatica equivalente: S ab B CD c C CDC cc d D ab a

46 Teorema delle Passo 6. Eliminazione delle ricorsioni sinistre A Av Per ogni NT tale che A Av w con v, w (X V ), w Aγ e γ (X V ) si sostituiscono le produzioni A Av w con: 1. A w wb 2. B vb v λ

47 Teorema delle S ab B CD c C CDC cc d D ab a Unica ricorsione sinistra: C CDC trasformata in: C cc d cce de con E DCE DC La grammatica diventa quindi: S ab B CD c C cc d cce de E DCE DC D ab a

48 Teorema delle L introduzione di E cambia l ordinamento in: S B C E D e tutte le produzioni sono del tipo (a) o (b) E DCE DC diventa E abce ace abc ac B CD diventa B ccd dd cced ded quindi: S ab B ccd dd cced ded c C cc d cce de E abce ace abc ac D ab a

49 Teorema delle Passo 7. Introduzione di nuovi non terminali le produzioni della grammatica sono del tipo A xα con x X e α (X V ) Per ogni a X in α si introduca un nuovo non terminale A e si aggiunga una produzione A a

50 Teorema delle Nell esempio: S ab B ccd dd cced ded c C cc d cce de E abce ace abc ac D ab a diventa: S ab B ccd dd cced ded c C cc d cce de D af a E afce ace afc ac F b che è in GNF

51 Teoremi di Equivalenza Automi a Pila Teorema delle Teorema. Un linguaggio libero è generabile da una grammatica in GNF ottenuta tramite l algoritmo. Teorema. Ogni linguaggio libero è riconosciuto da un automa a pila Teorema. Ogni linguaggio accettato da un automa a pila è libero

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

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

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

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

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

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

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

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

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

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

Quiz sui linguaggi regolari

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

Dettagli

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

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

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

Esercizi di Informatica Teorica

Esercizi di Informatica Teorica Esercizi di Informatica Teorica Linguaggi non contestuali: proprietàe forme normali 1 Grammatiche non contestuali richiami grammatica non contestuale (CFG o tipo 2): A β con A V N, β (V T V N )+ osservazione:

Dettagli

Equivalenza di PDA e CFG. Equivalenza di PDA e CFG

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

Dettagli

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

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

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

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

Dettagli

Linguaggi 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

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

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

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

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

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

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

Dettagli

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Linguaggi e Traduttori: Analisi lessicale

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

Dettagli

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

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

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

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

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

Dettagli

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

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

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

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

L algoritmo per la classificazione delle superfici topologiche connesse e compatte

L algoritmo per la classificazione delle superfici topologiche connesse e compatte Università degli studi di Torino Corso di Studi in Matematica Geometria 3 L algoritmo per la classificazione delle superfici topologiche connesse e compatte Alberto Albano Come notato varie volte a lezione,

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

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

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

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

Le Macchine di Turing

Le Macchine di Turing Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella

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

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

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 Logica proposizionale Linguaggio matematico

Dettagli

Metodo LALR. Tabelle LALR. Metodo LALR. Idea. Idea. Idea. Costruzione delle tabelle LALR

Metodo LALR. Tabelle LALR. Metodo LALR. Idea. Idea. Idea. Costruzione delle tabelle LALR Metodo LALR Tabelle LALR Costruzione delle tabelle LALR Introduciamo l ultimo metodo di costruzione di tabelle per il parsing LR Nome: lookahead-lr abbreviato in LALR Questo metodo è usato spesso dato

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

Parser Bottom UP. Giuseppe Morelli

Parser Bottom UP. Giuseppe Morelli Parser Bottom UP Giuseppe Morelli Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di input partendo dalle foglie (bottom) e risalendo via

Dettagli

Teoria della Calcolabilità!

Teoria della Calcolabilità! Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici

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

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

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

Grammatiche context-free

Grammatiche context-free Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche

Dettagli

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

La tesi di Church-Turing

La tesi di Church-Turing ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo

Dettagli

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

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

Dettagli

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

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE? STORIA DELLE CONOSCENZE SCIENTIFICHE SULL UOMO E SULLA NATURA a.a. 2016 2017 Prof. Roberto Giuntini, PhD. Introduzione alla storia dell intelligenza artificiale e della robotica Modulo II: Le macchine

Dettagli

Turing e la nascita dell'algoritmica Fabrizio luccio. Fibonacci Liber Abaci 1202

Turing e la nascita dell'algoritmica Fabrizio luccio. Fibonacci Liber Abaci 1202 Turing e la nascita dell'algoritmica Fabrizio luccio Fibonacci Liber Abaci 1202 Turing è spesso indicato come padre dell'informatica teorica e dell'intelligenza artificiale, o mitizzato come crittoanalista.

Dettagli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):

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

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

Spazi Vettoriali ed Applicazioni Lineari

Spazi Vettoriali ed Applicazioni Lineari Spazi Vettoriali ed Applicazioni Lineari 1. Sottospazi Definizione. Sia V uno spazio vettoriale sul corpo C. Un sottoinsieme non vuoto W di V è un sottospazio vettoriale di V se è chiuso rispetto alla

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

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

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

Responsabilidade Civil do Médico no Tocante à Culpa Médica e à Liquidação dos Danos

Responsabilidade Civil do Médico no Tocante à Culpa Médica e à Liquidação dos Danos ISSN 1127-8579 Pubblicato dal 13/10/2011 All'indirizzo http://www.diritto.it/docs/32396-responsabilidade-civil-do-m-dico-no-tocanteculpa-m-dica-e-liquida-o-dos-danos Autore: Aldo Aranha de Castro Responsabilidade

Dettagli

Turing, i nastri e le macchine

Turing, i nastri e le macchine Turing, i nastri e le macchine Giochiamo con i nastri Avete a disposizione un nastro diviso in sezioni rettangolari, che chiameremo caselle, ognuna delle quali può essere vuota oppure contenere la lettera

Dettagli

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR: Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)

Dettagli

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

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

Dettagli

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica

Dettagli

Sistemi compatibili (Il metodo di Fourier-Motzkin) Claudio Arbib Università degli Studi di L Aquila

Sistemi compatibili (Il metodo di Fourier-Motzkin) Claudio Arbib Università degli Studi di L Aquila Sistemi compatibili (Il metodo di Fourier-Motzkin) Claudio Arbib Università degli Studi di L Aquila Sommario Poliedri Poliedri compatibili Diseguaglianzeimplicate Proiezione di un poliedro Definizione

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

Linguaggi formali e compilatori

Linguaggi formali e compilatori POLITECNICO DI MILANO Linguaggi formali e compilatori Appunti Stefano Invernizzi Anno accademico 2010-2011 Corso del prof. Angelo Morzenti Sommario Introduzione ai linguaggi... 5 Terminologia di base...

Dettagli