Pumping lemma per i linguaggi Context-free
|
|
- Annabella Pappalardo
- 5 anni fa
- Visualizzazioni
Transcript
1 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= u v w x y in cui: 1. v w x # k 2. v + x > 0 3. u v i w x i y # L per i $ 0 Es1: mostrare che il linguaggio L = {a n b n c n con n $ 0 } non è context-free Es2: mostrare che il linguaggio L = {a m2 m $ 1 } non è context-free
2 Pumping lemma per i linguaggi Context-free Per la dimostrazione del Pumping Lemma si fa uso delle grammatiche in forma normale di Chomsky, per le grammatiche in tale forma si ha che ogni nodo interno ha due figli, ad esclusione di quelli che hanno foglie come sottoalberi. Lemma - Sia w una stringa terminale prodotta dall albero sintattico se h è l altezza dell albero si ha che w # 2 h-1 Si consideri ora una grammatica G = < VN,VT,P, S > tale che L(G) = L-{%} e sia m = VN, si sceglie k= 2 m e quindi per le condizioni poste dal pumping lemma la stringa z sarà lunga almeno k. Per il lemma precedente un albero sintattico il cui cammino più lungo sia di lunghezza m, o meno, ha un prodotto di lunghezza 2 m-1 = k/2 o meno. Un tale albero sintattico non può quindi produrre la stringa z, cioé ogni albero sintattico che produce z deve essere di altezza almeno pari a m+1. Ora, essendo m = V N, si ha che nel percorso dalla radice alle foglie ci saranno almeno due simboli non terminali uguali (per il principio della piccionaia). Supponiamo che A = Ai = Aj
3 Pumping lemma per i linguaggi Context-free L albero di derivazione avrà la seguente struttura dove ciascun triangolo rappresenta il sottoalbero generante le varie parti della stringa. Essendo che A = A i = A j possiamo costruire altri alberi sintattici tramite sostituzione a partire dall albero originale. A A S A S A S A u v w x y z u v A x y w v w x u x albero di derivazione per la stringa uv 2 wx 2 y albero di derivazione per la stringa uwy
4 Proprietà di chiusura dei linguaggi Context-free Teorema: I linguaggi context-free non sono chiusi rispetto all intersezione e alla complementazione Intersezione considerato che i due linguaggi L 1 = {a n b n c m n,m$ 0} e L 2 = {a m b n c n n,m$ 0} sono context free, il linguaggio intersezione è costituito da {a n b n c n n,m$ 0} che sappiamo non essere contextfree. Complementazione Se L 1 e L 2 sono context free allora anche L = L dovrebbe essere context free in virtù 1 ( L 2 dei risultati sulla unione, ma siccome per la legge di De Morgan L= L 1 ) L 2 questo equivarrebbe a dire che i linguaggi context-free sono chiusi rispetto all intersezione, contrariamente a quanto detto prima. Tuttavia L intersezione di un linguaggio Context-free ed un linguaggio regolare è ancora un linguaggio context-free
5 Determinismo e linguaggi context-free Un automa a pila è in genere non deterministico. Il non determinismo viene espresso da una o entrambe delle seguenti condizioni: 1. esistono più transizioni del tipo che iniziano con (q, a, A) 2. (q,a,a) e (q,",a) sono entrambe definite, cioè l automa può scegliere di leggere il simbolo a! oppure di non leggere niente. A differenza del caso delle grammatiche regolari in cui il non determinismo non aggiungeva potere computazionale all automa riconoscitore. L automa a Pila non deterministico è computazionalmente più potente dell automa deterministico. Ciò in virtù del seguente Teorema: Teorema: La famiglia dei linguaggi riconosciuta dagli automi a pila deterministici è contenuta strettamente in quella dei linguaggi context- free. Per dimostrarlo basta considerare la classe dei linguaggi inerentemente ambigui (cioé ogni grammatica equivalente è ambigua) per cui necessariamente l automa riconoscitore è non deterministico. Es. L = {a n b n c* n $0 } ( {a* b n c n n $0 } è un linguaggio Context free inerentemente ambiguo e quindi non riconoscibile da un automa a pila deterministico
6 Determinismo e linguaggi context-free Si dimostra anche che esistono linguaggi non ambigui che sono non deterministici Es1: L = L ( L = {a n b n n $1 } ( {a n b 2n n $1} è non deterministico intuitivamente l automa dovrebbe collocare nella pila i primi n caratteri a e cominciare a disimpilare un a appena trova il primo b se la stringa # L, mentre se la stringa # L sono due i b che devono essere letti prima di disimpilare un a. Es2: il linguaggio L = {w w R } è non deterministico.
7 Proprietà di chiusura dei linguaggi deterministici La classe dei linguaggi deterministici è chiusa rispetto alla complementazione. La classe dei linguaggi deterministici non è chiusa rispetto all unione l esempio 1 della precedente slide!! L = L ( L = {a n b n n $1 } ( {a n b 2n n $1} ne è un esempio, infatti a partire da due linguaggi deterministici si costruisce con la loro unione un linguaggio non deterministico. La classe dei linguaggi deterministici non è chiusa rispetto all intersezione. Es: L = L 1 ) L 2 = {a n b n c* n $0 } ) {a* b n c n n $0 } = {a n b n c n n $0 } dove L 1, L 2 sono certamente linguaggi deterministici
8 Utilità degli automi pushdown deterministici L uso di automi pushdown non deterministici come riconoscitori di grammatiche context-free è computazionalmente oneroso: O(n 3 ). Nella pratica vengono impiegati gli automi deterministici considerato anche il fatto che la maggior parte dei linguaggi di programmazione appartiene alla classe dei linguaggi deterministici.
9 Un cenno sui riconoscitori top-down Un riconoscitore sintattico top-down basato su grammatiche LL(k) implementa un automa a pila push-down che attua un riconoscimento per pila vuota. In genere gli automi che vengono impiegati fanno riferimento all uso di una marca di fine stringa $. Per ottenere il determinismo si sfrutta la conoscenza che proviene dall avere sotto considerazione la stringa in ingresso. In caso di indecisione di quale transizione attuare si considerano i prossimi k simboli che l automa dovrà leggere per prendere le opportune decisioni.
10 Analisi sintattica Obiettivi! verificare la correttezza sintattica del programma dato in ingresso! costruire l albero sintattico Strategie! top down (discendente), si parte dal simbolo distinto e si cerca di applicare in qualche! ordine le produzioni in modo da verificare se la stringa x è generabile dalla grammatica. Cioé!!! S!* x! Bottom-up, si parte dalla stringa x, si cerca una sottostringa che sia parte destra di una!! produzione e la si sostituisce con la corrispondente parte sinistra. Questa operazione viene denominata di Riduzione e viene iterata fino a quando la stringa non si riduce al simbolo distinto S.
11 Derivazioni Canoniche E! E + T E - T -T T T! T * F F! F! (E) i E "* a + b*c? Derivazione canonica sinistra [sostituzione del primo simbolo non terminale a sinistra] E" E +T "T + F " F + T" i + T" i + T*F " i + F*F "i+ i*f " i +i*i Derivazione canonica a destra [sostituzione del primo simbolo non terminale a destra] E " E + T" E + T*F " E +T*i " E + F*i " E + i*i "T + i*i " F + i*i" i + i*i E E + T Albero sintattico risultante T F i T F i * F i c a b
12 Grammatiche LL(k) Per costruire riconoscitori deterministici occorre agire sulle grammatiche in due direzioni: 1. Porre dei vincoli alla grammatica sì da renderla adatta all analisi top-down. 2. Utilizzare l informazione fornita dai simboli successivi alla parte già riconosciuta per guidare l analizzatore nella scelta della parte destra con cui espandere il simbolo non terminale corrente. Grammatiche LL(K) L - indica che la stringa in ingresso è esaminata da sinistra (Left) verso destra. L - indica che viene costruita la derivazione canonica a sinistra (Left). K - indica il numero di simboli di lookahead che l analizzatore considera per scegliere la parte! destra con cui espandere il simbolo non terminale corrente.
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=
DettagliProprietà di CFL. C. Bodei Fondamenti di Programmazione a.a. 17/18
Proprietà di CFL Pumping Lemma per CFL: simile ai linguaggi regolari. Proprietà di chiusura: alcune delle proprietà di chiusura dei linguaggi regolari valgono anche per i CFL. Proprietà di decisione: possiamo
DettagliLinguaggi 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
DettagliLinguaggi 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
DettagliProprietà 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
DettagliProprieta 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
DettagliEsempio 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.
DettagliEsempio. Grammatica E! T E!! T! *F T " F! (E) i. procedure E. ! if cc in FIRST (TE )! then T; E!!! else ERRORE (1); E! T E
Esempio Grammatica E! T E!! E! + T E " T! F T T! *F T " F! (E) i E! T E T! F T E! + T E "!! tabella codici di errore # 1. omissione di operando 2. omissione di operatore 3. simbolo inatteso 4. carattere
DettagliLINGUAGGI 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)
DettagliESERCITAZIONE II. Linguaggi Context Free
ESERCITAZIONE II Linguaggi Context Free 2 INTRODUZIONE LINGUAGGI CF I linguaggi di tipo 2 sono detti context free (CF) o non contestuali. Sono GENERATI da grammatiche di tipo 2. Dati: VN insieme dei simboli
DettagliANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA
ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA AUTOMI PUSHDOWN input u t w $ v x y z $ pila tabella controllo 2 ARGOMENTI Il compito dell'analisi sintattica Generazione automatica Trattamento
DettagliGrammatiche e Linguaggi Liberi da Contesto
Grammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi più grandi di linguaggi. I Linguaggi Liberi da Contesto (CFL) sono stati usati
DettagliFondamenti d Informatica: Grammatiche. Barbara Re, Phd
Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare
DettagliTrasformazione di un NDFA in un DFA con ε-regole
Trasformazione di un NDFA in un DFA con -regole a A B D d b C E c t A B C D E a D E b D D c D,E D E D d C C a - t ( s, q i ) = -chiusura (δ (s, q j )) qj -chiusura ( qi) -Primo passo dell algoritmo modificato
DettagliParte 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
DettagliGrammatiche libere da contesto. Grammatiche libere da contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello
DettagliFondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018
Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018 Esercizio 1 (Automi a stati finiti) {a, b}. Si considerino i seguenti automi a stati finiti sull alfabeto Per ognuno degli automi,
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliGrammatiche libere da contesto. Grammatiche libere da contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello
DettagliProprieta 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
DettagliVerifica se un Linguaggio Regolare è vuoto
Verifica se un Linguaggio Regolare è vuoto Se si suppone di usare la rappresentazione del linguaggio nella sua forma di automa a stati finiti il problema puo essere formulato nel modo seguente: Se esiste
DettagliAutomi e Linguaggi Formali
Automi e Linguaggi Formali Analisi Sintattica A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Ruolo dell analisi sintattica Un compilatore deve produrre codice oggetto e deve anche controllare
DettagliQuiz sui linguaggi CF
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2018-2019 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli
DettagliAnalisi sintattica. Analisi sintattica
uolo dell analisi sintattica Un compilatore deve produrre codice oggetto e deve anche controllare che il programma in input sia scritto secondo le regole della sua sintassi L analisi lessicale controlla
DettagliLinguaggi 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
DettagliLinguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo
e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere
DettagliSui 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.
DettagliFondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014
Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Il compito è diviso in due parti come i compitini: 1) Automi e Linguaggi e 2) Macchine di Turing e Calcolabilità. Si può consegnare
DettagliLinguaggi 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
DettagliProprietà 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
DettagliAnalisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser
Ruolo del parser Analisi 1 1 Dipartimento di Matematica e Informatica Universitá di Camerino mariarita.diberardini@unicam.it Ruolo del parser Ruolo dell analisi sintattica Ruolo del parser Metodologie
DettagliQuiz 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
DettagliLe 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
DettagliAnalizzatori sintattici a discesa ricorsiva
Analizzatori sintattici a discesa ricorsiva E uno schema di analizzatore che sfrutta la descrizione grammaticale in EBNF adatto a grammatiche LL(1). Si basa sulla scrittura di procedure ricorsive ricavate
DettagliTabelle LALR. Costruzione delle tabelle di parsing LALR. Maria Rita Di Berardini
Costruzione delle tabelle di parsing LALR Dipartimento di Matematica e Informatica Università di Camerino mariarita.diberardini@unicam.it Metodo LALR Introduciamo l ultimo metodo di costruzione di tabelle
DettagliForme 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.
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 16 Grammatiche Libere da Contesto Alberi di derivazione sintattica Linguaggio generato F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione
Dettaglinon è lineare destro. (PUNTI 15)
6 Giugno 2005 (h.1.00) 1) Dimostrare formalmente che il seguente linguaggio: L = {a i b j c k : k = i+ j, i, j, k 0} non è lineare destro. 2) Progettare, commentando opportunamente, l automa a stati finiti
DettagliCostruzione 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:
DettagliForma 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,
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione quivalenza di grammatiche In Informatica (e non solo, naturalmente) esistono sempre molti
DettagliSupplemento alle dispense di Sintassi
Supplemento alle dispense di Sintassi Luca Tesei 20 ottobre 2002 1 Formalizzazione Lo scopo di questa sezione è quello di presentare in maniera formale e precisa le nozioni di Automa e di Grammatica Libera
DettagliLinguaggi di Programmazione e Compilatori
Maria Rita Di Berardini Linguaggi di Programmazione e Compilatori Raccolta Esercizi 10 giugno 2009 Università di Camerino Dipartimenento di Matematica e Informatica Indice 1 Analisi Lessicale...........................................
DettagliInformatica 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
DettagliAlgoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014
Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti
DettagliGrammatiche libere da contesto. Grammatiche libere da contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliLinguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi
Linguaggi di Programmazione Corso C Parte n.6 Linguaggi Regolari ed Espressioni Regolari Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Linguaggi Regolari
DettagliRISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
DettagliParte n.7 Automi a Pila e Grammatiche Libere
Linguaggi di Programmazione Corso C Parte n.7 Automi a Pila e Grammatiche Libere Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Automi a Pila Per il teorema
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei
DettagliInformatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione
Informatica e Laboratorio di Programmazione Automi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione automa o automa: macchina astratta o realizza un certo algoritmo, secondo
DettagliLinguaggi di Programmazione Corso C. Parte n.9 Analisi Sintattica. Nicola Fanizzi
Linguaggi di Programmazione Corso C Parte n.9 Analisi Sintattica Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Analizzatore Sintattico L analisi sintattica
DettagliEsercizi 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:
DettagliLINGUAGGI REGOLARI. Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti:
LINGUAGGI REGOLARI Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti: 1 - L(GR): linguaggi generati da grammatiche di tipo 3 (anche con ε-produzioni) 2 - L(ASF): linguaggi riconosciuti
DettagliVerificare 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
DettagliAumentare il potere degli FSA
PDA 1 Aumentare il potere degli FSA Punto di vista meccanico Nastro d ingresso Dispositivo di controllo a stati finiti Nastro d uscita PDA 2 Ora arricchiamolo a Nastro d ingresso Memoria a pila (stack)
DettagliGRAMMATICHE 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
DettagliProblemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune.
Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune. Si delinei un algoritmo che decide se un DFA accetta un linguaggio infinito Si delinei
DettagliLinguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto
rammatiche e Linguaggi Liberi da Contesto Data una stringa w L(G), dove G e un CGF, possono esistere diverse derivazioni di w (che tipicamente differiscono per l ordine di applicazione delle produzioni)
DettagliRiconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio
POLITECNICO I TORINO Laboratorio di Compilatori Corso di Linguaggi e Traduttori mail: stefano.scanzio@polito.it sito: Riconoscitori e analizzatori sintattici ata una grammatica non ambigua ed una sequenza
DettagliLINGUAGGI FORMALI. Introduzione
LINUAI FORMALI Introduzione Alfabeto : un qualunque insieme di simboli. (Tratteremo solo alfabeti finiti). Esempio: {a,b,c,,,x,w,y,z} {0.1.2.3.4.5.6.7.8.9} {0,1} Stringa (su un alfabeto) : una sequenza
DettagliCostruzione dell insieme dei Follow
Costruzione dell insieme dei Follow E! T E - T E E! + T E - T E " T! F T T! *F T " F! (E) i Per evitare che alcuni insiemi siano vuoti si aggiunge per default il simbolo speciale $ che demarca la fine
DettagliPROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI ESEMPIO
PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli
DettagliLinguaggi 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
DettagliDispense 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.................................
DettagliAlberi: definizioni e dimostrazioni induttive.
Alberi: definizioni e dimostrazioni induttive. Gennaio 2005 Iniziamo con l introdurre la nozione di albero. Con N indichiamo l insieme dei numeri naturali (zero escluso) e con N l insieme delle liste finite
DettagliDefinizione 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
DettagliConcetti 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
DettagliProprieta 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
Dettagli7. Automi a Pila e Grammatiche Libere
(fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari 20 aprile 2016 1 Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi 2 Teorema delle
DettagliLINGUAGGI E TRADUTTORI - 20 giugno Prof. S. Crespi Reghizzi. Automi e espressioni regolari (40%)
LINGUAGGI E TRADUTTORI - 20 giugno 2001 - Prof. S. Crespi Reghizzi COGNOME e NOME... MATRICOLA... Tempo a disposizione: 90 minuti. Libri e appunti personali possono essere impiegati. Parte I Punti 30-esimi
DettagliFondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Grammatiche Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi
Dettaglia 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 proprietà delle grammatiche non contestuali pumping lemma forme normali notazioni sul livello degli
DettagliAutomi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017
Automi a pila Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Aumentiamo la potenza di un FSA Descrizione operativa dei limiti Un FSA ha un Organo di Controllo (OC) con memoria
DettagliSchema generale parser LR
Schema generale parser LR Input' a 1' 8'8'8' a i' 8'8'8' a n' $' ' Pila' s m' s m81' 8'8'8 ' Programma' di'parsing' LR' ' ACTION' ' ' GOTO' ' Output' Parser diversi di eriscono per la definizione delle
DettagliInformatica triennale (L31) sede di Bari Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione
Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica triennale (L31) sede di Bari Crediti formativi 9 Denominazione inglese Programming
DettagliNote 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
DettagliDispensa 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)
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal
DettagliAlgoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 1 Settembre 2016 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 ore e 30 minuti. Chi deve sostenere solo il modulo di
Dettaglialbero sintattico parser scanner Errori sintattici
albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini di regole di produzione di una
DettagliLinguaggio Formale 2
Linguaggio Formale 2 Ex: Per generare il linguaggio L(G 1 ) = {a n b n c n } si può usare la grammatica G 1 = < {A,B,C}, {a,b,c}, P, A > Con regole di produzione P: 1. A abc 2. A abbc 3. Bb bb 4. Bc Cbcc
DettagliEsercizi di Informatica Teorica
Esercizi di Informatica Teorica Linguaggi non contestuali: automi a pila 1 Automa a pila richiami un automa a pila non deterministico è una settupla: A = dove èl alfabeto (finito)
DettagliCorso 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
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliPROLOG 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
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliParser 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
DettagliSuffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017
Complementi di Algoritmi e Strutture Dati Suffix Trees Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017 In generale, possiamo trovare tutte le occorrenze di un pattern y in un testo x in tempo O(
DettagliPOLITECNICO DI TORINO. Laboratorio di Compilatori Corso di Linguaggi e Traduttori. Esercitazione 2. a.a 2010 / 2011
POLITECNICO DI TORINO Laboratorio di Compilatori Corso di mail: stefano.scanzio@polito.it sito: a.a 2010 / 2011 Riconoscitori e analizzatori sintattici Data una grammatica non ambigua ed una sequenza di
DettagliINFORMATICA 3 Prof.ssa Sara Comai
INFORMATICA 3 Prof.ssa Sara Comai ESERCIZI SESSIONE LIVE 3 Complessità, liste e alberi Ing. Paola Spoletini, Sara Comai. Complessità Si determini l ordine di grandezza Q della complessità temporale di
DettagliProprieta 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.
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 4 Marzo 2008 Derivazioni canoniche Una derivazione
Dettagli