Esempio stringhe palindrome 1

Documenti analoghi
Forma Normale di Chomsky

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

LINGUAGGI CONTEXT FREE. Lezione Lezione

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

a cura di Luca Cabibbo e Walter Didimo

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

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Linguaggi Regolari e Linguaggi Liberi

7. Automi a Pila e Grammatiche Libere

AUTOMI A PILA. M.P. Schutzenberger

Pumping lemma per i linguaggi Context-free

Parte n.4 Linguaggi: Gerarchia ed Operazioni

Quiz sui linguaggi CF

Aniello Murano Automi e Pushdown

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Definizione di Grammatica

Linguaggi Regolari e Linguaggi Liberi

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

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

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

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

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

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

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

Automi a pila. Automi a pila

Definire tramite una grammatica ad attributi il

Principio di composizione delle MT

Espressioni Regolari

Costruzione di espressioni regolari 4

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

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

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

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

Concetti di base sugli automi e sui linguaggi formali

AUTOMA A STATI FINITI

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

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

Proprietà dei linguaggi non contestuali

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

Espressioni regolari

Proprietà dei linguaggi regolari

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

Automi per il riconoscimento di linguaggi.

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

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Proprieta dei Linguaggi regolari

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

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

Linguaggi regolari e automi a stati finiti

La macchina universale

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

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

Le grammatiche formali

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI

Parole note, nuovi significati: linguaggio, determinismo e infinito

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

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

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

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

RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :

LINGUAGGI E GRAMMATICHE FORMALI

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

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

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

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi.

Fondamenti di informatica per la sicurezza

Aniello Murano Problemi non decidibili e riducibilità

Espressioni regolari. Espressioni regolari

Linguaggi formali e compilazione

albero sintattico parser scanner Errori sintattici

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

Tar Campania, Napoli, n. 873 ISSN Pubblicato dal 11/03/2010

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI

Dispensa 3. Se in uno stato c è l LR(0) item A α. (ossia un item col punto alla fine) è invocata una riduzione per ogni terminale a in Follow(A)

Macchine di TURING. Alan Mathison Turing ( )

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

Linguaggi formali e compilazione

Linguaggi formali e compilazione

Macchine di Turing. a n B B. Controllo Finito

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

Corso di Geometria BIAR, BSIR Esercizi 10: soluzioni

Automi, Complessità e Calcolabilità Prof. E. Fachini

Espressività e limitazioni delle grammatiche regolari

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

Dispense del corso di Linguaggi Formali e Automi

soluzione in 7 step Es n 208

certificazione antimafia : Tribunale Amministrativo Regionale per la Calabria (Sezione Prima) sentenza n. 480 del 2010

Aniello Murano Problemi decidibili e non decidibili

Transcript:

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. (( s b, " ), (s, b) [ push b] 3. (( s, c, " ), (f, ")!! 4. (( f a, a ), (f, ")! [ pop a ] 5. (( f, b, b ), (f, ")! [ pob b ] Si osservi come nell alfabeto di stack non è compreso il simbolo c che denota la demarcazione tra le due parti della stringa esecuzione per abbcbba Stato Stringa di input stack transizione s abbcbba " s bbcbba a 1 s bcbba ba 2 s cbba bba 2 f bba bba 3 f ba ba 5 f a a 5 f " " 4

Esempio stringhe palindrome 2 Automa per il riconoscimento del linguaggio L = {w w R } A = < {{s,f}, {a,b}, {a,b},!, s, { f } > con! che contiene le transizioni: 1. (( s, a, " ), (s, a)! [ push a] 2. (( s b, " ), (s, b) [ push b] 3. (( s, ", " ), (f, ")!! 4. (( f a, a ), (f, ")! [ pop a ] 5. (( f, b, b ), (f, ")! [ pob b ] Nell applicazione della regola 3 la macchina puo scegliere non deterministicamente di andare nello stato f senza consumare input o fare un push del prossimo simbolo nello stack. Si osservi come questa sia l unica regola variata rispetto all automa precedente. Esecuzione per abbbba Stato Stringa di input stack transizione s abbbba " " s bbbba a 1 s bbba ba 2 s bba bba 2 f bba bba 3 f ba ba 5 f a a 5 f " " 4

Esercizio 2 Esercizi Esercizio 1 Definire un automa per il linguaggio L = {a n b n }! 1. (( q, a, "), (q, a)) 2. (( q, b, a), (p, ")) 3. (( p, b, a), (p, ")) 4. (( p, ", "), (f, " )) Definire un automa a pila che riconosca il linguaggio!! L = {w # {a,b}* : w ha lo stesso numero di a e di b } 1. (( s, ", " ), (q, c))! si colloca un carattere c nello stack [c non fa parte di!, ma di $] 2. (( q, a, c ), (q, ac)) se ti trova un a la prima volta si inizializza uno stack di a 3. (( q, a, a ), (q, aa)) ogni altro a viene collocato nello stack di a 4. (( q, a, b ), (q, "))! se si legge un a e nello stack si trova b si elimina b dallo stack! 5. (( q, b, c ), (q, bc)) 6. (( q, b, b ), (q, bb)) 7. (( q, b, a ), (q, ")) } analogamente per il carattere b 8. (( q, ", c ), (f, "))!

Modalità di accettazione Dato l automa pushdown < K, ", $,!, s, Z > si dice che un linguaggio L è accettato per pila vuota se: L e (M) = { w # "* : ( s, w, ") %* (q, ", ") per qualche q # K } [In altre parole la stringa è accettata se e solo se al termine della scansione la pila è vuota " indipendentemente dallo stato raggiunto] Dato l automa pushdown < K, ", $,!, s, Z > si dice che un linguaggio L è accettato per raggiungimento di stato finale se: L f (M) = { w # "* : ( s, w, ") %* (f, ", &) per qualche f # Z, & # $* } [In altre parole la stringa è accettata se e solo se al termine della scansione della stringa l automa raggiunge uno stato finale]

Modalità di accettazione Teorema. Dato un automa a pila non deterministico A che accetta un linguaggio per stato finale esiste un automa A non deterministico che accetta lo stesso linguaggio per pila vuota. Teorema. Dato un automa a pila non deterministico A che accetta un linguaggio per pila vuota esiste un automa A non deterministico che accetta lo stesso linguaggio per stato finale. Questa equivalenza non si mantiene qualora si faccia riferimento ad automi a pila deterministici. Anticipando quanto verrà illustrato nel seguito gli automi a pila deterministici hanno un potere computazionale inferiore rispetto agli automi a pila non deterministici. Si può mostrare come esistano linguaggi accettati da automi a pila deterministici per stato finale che non sono accettati da automi a pila per pila vuota.

Automi Pushdown e grammatiche context-free Teorema: La classe dei linguaggi accettati dagli automi pushdown è esattamente la! classe dei linguaggi context-free. Data la grammatica context-free G = < V N, V T, P, S > siamo in grado di costruire un automa pushdown M equivalente, nel senso che L(G) = L(M) dato da: l insieme K degli stati = {p, q} l alfabeto di ingresso " è V T l alfabeto di stack $ è V = VN ( VT la funzione di transizione! contiene le transizioni definite come: 1. ((p, ", "), (q, S) 2. ((q, ", A), (q, x) per ogni regola grammaticale A' x in P 3. (q, s, s), (q, ") per ciascun simbolo s # V T lo stato iniziale = {p} lo stato finale = {q} [l automa M possiede due stati p, q e rimane permanentemente nello stato q dopo la prima mossa]

Esempio Dalla grammatica G 15 = < S, {a, b, c}, P, S> con produzioni P date da: S ' a S a b S b c [che riconosce il linguaggio L = {w c w R }] è possibile costruire l automa M = < {p, q}, {a, b, c}, {S,a, b, c},!, { p},{q} > con! che contiene le transizioni 1. ((p, ", "), (q, S) 2. ((q, ", S), (q, a S a) 3. ((q, ", S), (q, b S b) 4. ((q, ", S), (q, c) 5. ((q, a, a), (q, ") 6. ((q, b, b), (q, ") 7. ((q, c, c), (q, ") regole grammaticali simboli terminali

Esempio cont. Esecuzione per abbcbba Stato Stringa di input stack regola applicata p abbcbba " q abbcbba S 1. ((p, ", "), (q, S) q abbcbba a S a 2.((q, ", S), (q, a S a) q bbcbba S a 5. ((q, a, a), (q, ") q bbcbba b S b a 3.((q, ", S), (q, b S b) q bcbba S b a 6.((q, b, b), (q, ") q bcbba b S b b a 3.((q, ", S), (q, b S b) q cbba S b b a 6.((q, b, b), (q, ") q cbba c b b a 4.((q, ", S), (q, c) q bba b b a 7.((q, c, c), (q, ") q ba b a 6.((q, b, b), (q, ") q a a 6.((q, b, b), (q, ") q " " 5. ((q, a, a), (q, ")

Proprietà di chiusura dei linguaggi context-free Teorema: La classe dei linguaggi context-free è chiusa rispetto all Unione, Concatenazione,! Chiusura di Kleene. Date le grammatiche context-free G = < V N, V T, P, S > e G = < V N, V T, P, S > che riconoscono i linguaggi L(G ) e L(G ) si costruisce la grammatica G = < V N, V T, P, S> nel seguente modo. 1. Unione L(G) = L(G ) ( L(G )! G =< VN = V N ( V N ({S} ; V T = V T ( V T ; P = P ( P ({S' S, S' S }, S > 2. Concatenazione L(G) = L(G ) L(G ) G = < V N = V N ( V N ({S} ; V T = V T ( V T ; P = P ( P ({S' S S }, S > 3. Chiusura di Kleene L(G )* G = < V N = V N ({S} ; V T = V T ; P = P ( {S' ", S' SS }, S >