Linguaggi e Grammatiche Liberi da Contesto
|
|
|
- Rossana Mancuso
- 9 anni fa
- Просмотров:
Транскрипт
1 N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016
2 1 Linguaggi Liberi da Contesto 2
3 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica libera da contesto sse: v w P dove v V. Il linguaggio L(G) si dice linguaggio libero da contesto. Il nome deriva dal fatto che un non terminale può essere sostituito indipendentemente dal contesto della forma di frase dove si trova. La sostituzione è sempre valida. Appartiene a questa categoria la maggior parte dei linguaggi di programmazione.
4 Alberi Linguaggi Liberi da Contesto Le derivazioni di una grammatica libera possono essere rappresentate graficamente da alberi Albero: Grafo orientato, aciclico, connesso con al più un arco entrante per ogni nodo La frontiera dell albero è rappresentata dalle foglie lette da sinistra verso destra La lunghezza di un cammino dalla radice ad una foglia è data dal numero di non terminali incontrati L altezza dell albero è data dalla lunghezza del cammino più lungo
5 Data una grammatica libera G = (X, V, S, P) e w X tale che S = w un albero di derivazione di w ha le seguenti proprietà: 1 radice = S 2 nodi interni = V 3 foglie = X {λ} 4 se il nodo interno è A e A 1, A 2,..., A k sono i figli del nodo A allora A A 1 A 2 A k P 5 w si ottiene leggendo e concatenando le foglie da sinistra a destra
6 Osservazioni. Un albero di derivazione non impone alcun ordine nell applicazione delle produzioni in sequenza per ottenere una derivazione data una derivazione esiste uno ed un solo albero che la rappresenta dato un albero di derivazione esistono più derivazioni possibili a seconda dell ordine scelto per l applicazione delle produzioni
7 Esempio. Data una grammatica libera G = (X, V, S, P) con X = {a}, V = {S, H} e P = {S 1 Ha, H 2 HS, H 3 a} La stringa aaaa è in L(G), come dimostra l albero: Da cui la stringa si ricava sia tramite: S = 1 Ha = 2 HSa = 3 asa = 1 ahaa = 3 aaaa sia con: S = 1 Ha = 2 HSa = 1 HHaa = 3 Haaa = 3 aaaa
8 Data una grammatica G = (X, V, S, P) si dirà che la derivazione S = w 1 = w 2 = = w n = w con w i = y i Az i e w i+1 = y i w i z i, i = 1,..., n 1 è una derivazione canonica destra (risp. canonica sinistra) sse per ogni i = 1,..., n 1 risulta: z i X (risp. y i X )
9 Esempio. Considero la grammatica con produzioni: S 0B 1A P = A 0 0S 1AA B 1 1S 0BB Derivazione sinistra di 0011: S = 0B = 00BB = 001B = 0011 Derivazione destra di 0011: S = 0B = 00BB = 00B1 = 0011
10 S = 0011 S = Iterando: 0011 w = w = w = n 11 n w = 2n + 2 Alberi di derivazione si possono sostituire con sottoalberi alberi di pari radice (non terminale)
11 La lunghezza delle parole così ottenute cresce in maniera costante (lineare) quindi un linguaggio con parole che crescono in modo esponenziale non può essere libero Generalizzazione: supposto di incontrare almeno due volte un non terminale A nell albero di derivazione di z. il sottoalbero più basso con radice A genera w quello più alto genera vwx sostituendo l albero più alto con il più basso si ottiene una derivazione valida della stringa uwy invece, sostituendo quello più basso con quello più alto si ottiene una derivazione della stringa uvvwxxy cioè uv 2 wx 2 y iterando questa sostituzione si ottiene l insieme {uv n wx n y n 0}
12 S A A u v w x y
13 Proposizione. Ogni linguaggio libero infinito deve contenere almeno un sottinsieme infinito di stringhe della forma uv n wx n y n 0 Lemma. Data una grammatica G = (X, V, S, P) libera, supponiamo che m = max{ w N A w P} Sia T w un albero di derivazione per una stringa w di L(G). Se l altezza di T w è al più pari a j N, allora w m j
14 Dim. Per induzione sull altezza j: (base) j = 1 : w m = m 1 (passo) supponendo che il lemma valga per albero di altezza pari al più a j e la cui radice sia un non terminale, si deve dimostrare la tesi per j + 1: Sia A v, dove v = v 1 v 2 v k, v = k, k m la prod. che determina il livello più alto dell albero Ogni simbolo v i v, i = 1,..., k può avere altezza al più uguale a j, essendo T w in questo caso di altezza j + 1 Per ipotesi di induzione, questi alberi hanno al più m j foglie. Poiché v = k m la stringa w frontiera di T w avrà lunghezza: k volte { }} { w m j + m j + + m j = v m j = k m j m m j = m j+1
15 Teorema uvwxy. Sia L un linguaggio libero da contesto. Esiste una costante p dipendente solo da L, tale che se z è una parola di L di lunghezza maggiore di p ( z > p), allora z può essere scritta come uvwxy in modo che: 1 vwx p 2 al più uno tra v e x è la parola vuota (vx λ) 3 i N, i 0 : uv i wx i y L
16 Dim. Sia G una grammatica che genera L m = max{ v A v P} e k = V Posto p = m k+1, consideriamo z L tale che z > p Per il lemma: z > p = m k+1 allora ogni albero di derivazione per z ha un altezza maggiore di k + 1, cioè esiste un cammino di lunghezza maggiore o uguale a k + 2. Ma k = V quindi sul cammino ci sono almeno due NT ripetuti o un NT che compare 3 volte. Sia A l NT ripetuto più in alto Siccome A è l NT ripetuto più in alto non vi sono altri NT ripetuti almeno due volte sotto la A più in alto, quindi il cammino dalla A superiore ad una foglia ha lunghezza al più k + 1 Chiamiamo vwx la stringa derivata dal sottoalbero radicato nella A superiore, dove w è la sottostringa derivata dall A inferiore
17 1 Dal Lemma risulta: vwx m k+1 = p 2 Per assurdo se fosse v = λ = x la sostituzione dell albero radicato nell A superiore con quello inferiore non provoca nessun cambiamento. Ma in tal caso esiste un cammino di lunghezza inferiore. Si ottiene un albero di derivazione di z di altezza al più pari a k + 1. Assurdo. 3 Applicando il principio di sostituzione a z = uvwxy sostituiamo il sottoalbero radicato nell A inferiore con quello dell A superiore ottenendo: uwy = uv 0 wx 0 y Con la sostituzione inversa: uv 2 wx 2 y e ripetendo i 1 volte: uv i wx i y
18 Osservazioni. Dato un linguaggio generato da una grammatica non libera non si può escludere che esista una grammatica libera che lo generi se un linguaggio infinito non rispetta il Pumping Lemma dei linguaggi liberi non potrà essere generato da una grammatica libera quindi questo teorema fornisce una condizione necessaria (ma non sufficiente) perché un linguaggio sia libero Si può utilizzare per dimostrare (per assurdo) che un linguaggio non sia libero
19 Linguaggi Liberi da Contesto Una grammatica G libera da contesto si dice ambigua sse esiste una stringa x in L(G) che ha due alberi di derivazione differenti ovvero sse x ha due derivazioni sinistre (o destre) Esempio. La grammatica libera G = (X, V, S, P) con X = {a, +}, V = {S} e P = {S S + S, S a} è una grammatica ambigua. Ad es. w = a + a + a ottenibile con
20 Linguaggi Inerentemente Ambigui Un linguaggio G si dice inerentemente ambiguo sse ogni grammatica che lo genera è ambigua Esempio. L = {a i b j c k i, j, k > 0, (i = j) (j = k)}
21 Esempio. G = (X, V, S, P) con X = {if, then, else, a, b, p, q}, V = {S, C} P = { S if C then S else S if C then S a b, C p q } Si consideri w = if p then if then a else b S S if C then S if C then S else S p if C then S else S p if C then S b q a b q a
22 Per ottenere G = (X, V, S, P ) non ambigua usiamo la convenzione di associare ogni else alla if più vicina: V = V {S 1, S 2, T } S S 1 S 2 S 1 if C then S 1 else S 2 T P = S 2 if C then S if C then S 1 else S 2 T C p q T a b S S 2 if C then S p S 2 if C then S 1 else S 2 q T a T b
23 . Dimostrare che i seguenti linguaggi non sono liberi da contesto: L = {a t t primo} L = {a n b n c n n > 0} L = {a n2 n 0} L = {a i b j i = 2 j, i, j 0} L = {a k b r k > 0, r > k 2 }
24 o 2. Dimostrare che L = {a n b n c n n > 0} non è libero Supponiamo che L sia libero. Vale il Pumping Lemma per un certo p N. Si consideri z = uvwxy = a p b p c p L tale che z = 3p > p ma vwx p Per vwx si hanno le seguenti possibilità. In tutti questi casi si dimostra che uv 2 wx 2 y L quindi L non può essere libero.
25 vwx = a k, 0 < k p aggiungendo almeno a ed al più a p si ottiene: uv 2 wx 2 y = a p+k b p c p vwx = b k, 0 < k p analogamente vwx = c k, 0 < k p analogamente
26 vwx = a k b r, 0 < k + r p per la 2. del Pumping Lemma: 1 v λ, x λ: se v λ allora v = a k perchè se fosse v = a k b r allora uv 2 wx 2 y = a p k a k b r a k b r b s c p L con p s 2(r r ) + p r Analogamente x λ implica che x = b r per cui: uv 2 wx 2 y = a p+k b p+r c p L per k, r > 0 2 v λ, x = λ per le considerazioni fatte: v = a k, 0 < k k e uv 2 wx 2 y = a p+k b p c p L 3 v = λ, x λ: analogamente vwx = b k c r, 0 < k + r p caso analogo al precedente
27 o 3. Dimostrare che L = {a n2 n 0} non è libero Consideriamo L = {λ, a, aaaa, a 9, a 16,...} e supponiamo che sia libero. Vale il Pumping Lemma per un certo p N. Considero allora z = uvwxy = a p2 L tale che z = p 2 > p Anche uv 2 wx 2 y L (per la 3. del Lemma) Ma si osservi l catena di maggiorazioni: uv 2 wx 2 y = uvwxy + vx = z + vx p 2 + p < p 2 + 2p + 1 = (p + 1) 2 rissumendo: uv 2 wx 2 y < (p + 1) 2 Inoltre uv 2 wx 2 y = z + vx > z = p 2 Perciò z ha una lunghezza compresa (non uguale) tra due quadrati successivi, ciò implica che uv 2 wx 2 y L. Assurdo, quindi L non è libero
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 ([email protected]) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
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=
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=
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.
Parte V: Rilassamento Lagrangiano
Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice
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:
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
Fondamenti 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
Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :
Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i
RISOLUZIONE 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
Esistenza ed unicità per equazioni differenziali
Esistenza ed unicità per equazioni differenziali Per concludere queste lezioni sulle equazioni differenziali vogliamo dimostrare il teorema esistenza ed unicità per il problema di Cauchy. Faremo la dimostrazione
Fondamenti d Informatica: Grammatiche. Barbara Re, Phd
Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare
Grammatiche Parse trees Lezione del 17/10/2012
Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,
Logica Computazionale Sequenti e Deduzione Naturale
Logica Computazionale 2009 - Sequenti e Deduzione Naturale Gianluigi ellin November 24, 2009 Complementi per la soluzione dell esercizio 3, Compito 4. 1 Nozioni Preliminari Consideriamo il calcolo dei
m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica
G. Pareschi COMPLEMENTI ED ESEMPI SUI NUMERI INTERI. 1. Divisione con resto di numeri interi 1.1. Divisione con resto. Per evitare fraintendimenti nel caso in cui il numero a del Teorema 0.4 sia negativo,
SISTEMI LINEARI MATRICI E SISTEMI 1
MATRICI E SISTEMI SISTEMI LINEARI Sistemi lineari e forma matriciale (definizioni e risoluzione). Teorema di Rouché-Capelli. Sistemi lineari parametrici. Esercizio Risolvere il sistema omogeneo la cui
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno
Introduzione ai grafi
TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale
LOGARITMI. Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA. L uguaglianza: a x = b
Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA LOGARITMI L uguaglianza: a x = b nella quale a e b rappresentano due numeri reali noti ed x un incognita, è un equazione
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)
Quiz sui linguaggi CF
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2018-2019 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli
Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica
Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica Soluzione del compito di Matematica Discreta 1 del 25 luglio 200 1. Qual è il numero di applicazioni f : A = {1,..., 5} B
Il Teorema di Kakutani
Il Teorema di Kakutani Abbiamo visto, precedentemente, il seguente risultato: 1 Sia X uno spazio di Banach. Se X è separabile, la palla è debolmente compatta. B X = {x X x 1} Il Teorema di Kakutani è un
Linguaggi 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
Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi
Suffix 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(
FUNZIONE DI UTILITÀ CURVE DI INDIFFERENZA (Cap. 3)
FUNZIONE DI UTILITÀ CURVE DI INDIFFERENZA (Cap. 3) Consideriamo un agente che deve scegliere un paniere di consumo fra quelli economicamente ammissibili, posto che i beni di consumo disponibili sono solo
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
CORSO DI LAUREA IN MATEMATICA ESERCIZI SUI LIMITI 2
CORSO DI LAUREA IN MATEMATICA ESERCITAZIONI DI ANALISI MATEMATICA I ESERCIZI SUI LIMITI CALCOLARE IL VALORE DEI SEGUENTI LIMITI sine 4 log e e sin e 5 tan sin 5 7 tan 9 sin + e e + 4 6 8 + 0 n + log +
Programmazione Greedy I codici di Huffman
Programmazione Greedy I codici di Huffman Codifica dell informazione La rappresentazione ordinaria dell informazione prevede l impiego di un numero costante di bit; per esempio ad ogni carattere del codice
Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018
Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018 Esercizio 1 (Automi a stati finiti) {a, b}. Si considerino i seguenti automi a stati finiti sull alfabeto Per ognuno degli automi,
Esercizi sulla Programmazione Lineare. min. cx Ax b x 0
Soluzioni 4.-4. Fondamenti di Ricerca Operativa Prof. E. Amaldi Esercizi sulla Programmazione Lineare 4. Risoluzione grafica e forma standard. Si consideri il problema min x cx Ax b x dove x = (x, x )
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
Def. 2. Si dice che una matrice A, m n, ha un inversa sinistra se esiste una matrice L,
Facoltà di Scienze Statistiche, Algebra Lineare 1 A, G.Parmeggiani LEZIONE 8 Inverse destre, sinistre e bilatere Def. 1. Si dice che una matrice A, m n, ha un inversa destra se esiste una matrice R, n
ALBERI ORIENTATI. Definizione: Albero orientato = rooted tree = grafo orientato con le seguenti proprietà: - ha un nodo fissato, detto radice (r);
ALBERI ORIENTATI Pagina 1 ALBERI ORIENTATI 15:05 Definizione: Albero orientato = rooted tree = grafo orientato con le seguenti proprietà: - ha un nodo fissato, detto radice (r); - per ogni nodo v, esiste
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
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.................................
Premessa. retta orientata diseguaglianze diverso intervallo di estremi a e b 1) a < x < b aperto N.B.: 2) a x b chiuso N.B.: 3) a x < b semichiuso
Premessa. Ci sono problemi, alcuni appartenenti anche alla vita quotidiana, che possono essere risolti attraverso una disequazione, ossia un espressione algebrica formata da due membri, contenenti un incognita,
Algoritmi e Strutture Dati. HeapSort
Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene
Geometria analitica di base (seconda parte)
SAPERE Al termine di questo capitolo, avrai appreso: il concetto di luogo geometrico la definizione di funzione quadratica l interpretazione geometrica di un particolare sistema di equazioni di secondo
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 calcolabilità in vari contesti riduzioni e calcolabilità dimostrazioni di decidibilità di problemi
Esercizi di Logica Matematica (parte 2)
Luca Costabile Esercizio 317 Esercizi di Logica Matematica (parte 2) Dimostro per induzione sulla costruzione del termine : - Supponiamo che sia una variabile :, - Supponiamo che sia una variabile diversa
