18 marzo 2010
N. Fanizzi (LdP)
18 marzo 2010
1 / 37
Linguaggi Contestuali Denizioni Linguaggi Monotoni Teoremi di Equivalenza sui Linguaggi Monotoni Linguaggi Liberi da Contesto Alberi di Derivazione e Derivazioni Canoniche Principio di sostituzione Pumping Lemma per Linguaggi Liberi Ambiguit Esercizi Esercizio 2 Esercizio 3 Esercizio 1
N. Fanizzi (LdP)
18 marzo 2010
2 / 37
Linguaggi Contestuali
Denizioni
Le grammatiche dipendenti da contesto sono caratterizzate per avere produzioni dei tipi seguenti:
1
N. Fanizzi (LdP)
18 marzo 2010
3 / 37
Linguaggi Contestuali
Linguaggi Monotoni
Non tutti i linguaggi possono essere generati attraverso grammatiche dipendenti da contesto Esempio. Consideriamo grammatiche aventi, tra le altre, produzioni del tipo: 1. AB CDEF 2. CB BC che evidentemente non sono produzioni contestuali Osservazione. Tali produzioni non hanno parti destre di lunghezza non inferiori a quelle delle parti sinistre.
N. Fanizzi (LdP)
18 marzo 2010
4 / 37
Linguaggi Contestuali
Linguaggi Monotoni
Un linguaggio monotno quando esiste una grammatica monotona che lo genera. Su alcuni testi queste denizioni vengono date per le grammatiche dipendenti da contesto vi uno stretto legame a livello di queste classi di linguaggi
N. Fanizzi (LdP)
18 marzo 2010
5 / 37
Linguaggi Contestuali
Linguaggi Monotoni
Esempio (continua). Le produzioni monotone ma non contestuali viste in precedenza: 1. AB CDEF 2. CB BC possono essere sostituite con le seguenti catene di produzioni contestuali: AB AG AG CG AB CDEF equivale a CG CDEF
CB XB CB BC equivale a XC
XB XC BC
N. Fanizzi (LdP)
18 marzo 2010
6 / 37
Linguaggi Contestuali
Teoremi di Equivalenza
Teorema. Sia G una grammatica monotona, tranne al pi per una produzione S . Se S non appare in una parte destra di produzioni di G, allora esiste una grammatica contestuale G che risulta equivalente a G In maniera equivalente si dimostra: Teorema. Un linguaggio L contestuale sse esiste una grammatica G tale che L = L(G) a produzioni monotone, tranne al pi il caso che L per cui pu essere generato direttamente da S se S non appare in alcuna parte destra di produzioni di G
N. Fanizzi (LdP)
18 marzo 2010
7 / 37
Linguaggi Contestuali
Dim. Supponiamo che le produzioni possano essere ricondotte a: A1 A2 . . . Am B1 B2 . . . Bn con m n e Ai V , i = 1, . . . , m Usiamo m nuovi simboli non terminali Ck V , k = 1, . . . , m Trasformiamo ogni produzione nella seguente maniera: A1 A2 . . . Am C1 A2 . . . Am C1 A2 . . . Am C1 C2 A3 . . . Am . . . C1 C2 . . . Cm1 Am C1 C2 . . . Cm Bm+1 Bm+2 . . . Bn C1 C2 . . . Cm Bm+1 Bm+2 . . . Bn C1 C2 . . . Cm1 Bm Bm+1 . . . Bn . . . C1 B2 . . . Bn B1 B2 . . . Bn G contestuale e si dimostra: L(G) = L(G )
N. Fanizzi (LdP) Linguaggi Contestuali e Liberi 18 marzo 2010 8 / 37
Linguaggi Contestuali
Esempio. Consideriamo il linguaggio: L = {an bn c n | n > 0} produzioni di una possibile . . . trasformandole in produzioni grammatica monotona per L: contestuali equivalenti: S aSBC | aBC S aSBC | aBC CB XB CB BC aB ab XB XC XC BC bB bb bC bc aB ab bB bb cC cc bC bc cC cc
N. Fanizzi (LdP)
18 marzo 2010
9 / 37
N. Fanizzi (LdP)
18 marzo 2010
10 / 37
Osservazioni. La classe dei linguaggi liberi inclusa in quella dei linguaggi contestuali linguaggi contestuali linguaggi liberi
Si pu ottenere un linguaggio libero considerando produzioni dove il contesto destro e quello sinistro siano vuoti (= ) Eccezione una grammatica libera ammette ogni tipo di -regola ossia ogni produzione del tipo A con A = S
N. Fanizzi (LdP)
18 marzo 2010
11 / 37
Alberi
Le derivazioni di una grammatica libera possono essere rappresentate gracamente da alberi Albero: grafo orientato, aciclico, connesso con al pi un arco entrante per ogni nodo
la frontiera dellalbero 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 laltezza dellalbero data dalla lunghezza del cammino pi lungo
N. Fanizzi (LdP) Linguaggi Contestuali e Liberi 18 marzo 2010 12 / 37
Alberi di Derivazione
Data G = (X , V , S, P) libera e w X tale che S w, un albero di derivazione di w, denotato, Tw cos formato:
1 2 3 4
radice S nodi interni simboli di V foglie simboli di X {} se esiste la prod. A A1 A2 Ak in P allora un nodo interno A pu essere padre dei nodi gli A1 , A2 , . . . , Ak
N. Fanizzi (LdP)
18 marzo 2010
13 / 37
Osservazioni. Un albero di derivazione non impone alcun criterio di scelta del non terminale da espandere tramite una sua regola di produzione per ottenere la sequenza corrispondente ad 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 dellordine scelto per lapplicazione delle produzioni
N. Fanizzi (LdP)
18 marzo 2010
14 / 37
Esempio. Data una grammatica libera G = ({a}, {S, H}, S, P) con P = {S Ha,
1
H HS,
H a}
La stringa aaaa L(G) si deriva sia tramite: S Ha HSa aSa aHaa aaaa
1 2 3 1 3
Derivazioni Canoniche
Data una grammatica G = (X , V , S, P) si dir che la derivazione S w1 w2 wn = w dove wi = yi Azi e wi+1 = yi wi zi , con i = 1, . . . , n 1
una derivazione canonica destra (risp. canonica sinistra) sse per ogni i = 1, . . . , n 1 risulta: zi X (risp. yi X )
N. Fanizzi (LdP)
18 marzo 2010
16 / 37
Esempio. Considero la grammatica con produzioni: S 0B | 1A A 0 | 0S | 1AA P= B 1 | 1S | 0BB Derivazione sinistra di 0011: S 0B 00BB 001B 0011 Derivazione destra di 0011: S 0B 00BB 00B1 0011
N. Fanizzi (LdP)
18 marzo 2010
17 / 37
Principio di sostituzione
S 0011
S 000111
|w | = 4 |w | = 6 |w | = 8 . . . |w | = 2n + 2
18 marzo 2010 18 / 37
Principio di sostituzione
Osservazioni. Alberi di derivazione si possono sostituire con sottoalberi alberi di pari radice (non terminale) Generalizzazione: supposto di incontrare almeno due volte un non terminale A nellalbero di derivazione di z
il sottoalbero pi basso con radice A genera w quello pi alto genera vwx sostituendo lalbero 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 linsieme {uv n wx n y | n 0}
La lunghezza delle parole cos ottenute cresce in maniera costante (linearmente) Un linguaggio con parole che crescono in modo esponenziale non pu essere libero
N. Fanizzi (LdP) Linguaggi Contestuali e Liberi 18 marzo 2010 19 / 37
Principio di sostituzione
N. Fanizzi (LdP)
18 marzo 2010
20 / 37
Principio di sostituzione
Proposizione. Ogni linguaggio libero innito deve contenere almeno un sottinsieme innito di stringhe della forma uv n wx n y n0
Il fattore di ramicazione massimo per una grammatica libera G = (X , V , S, P) dato da: max{|w | N | A w P} Lemma. Data una grammatica libera G = (X , V , S, P), supponiamo che il fattore di ramicazione sia m. Sia Tw un albero di derivazione per una stringa w di L(G). Se laltezza di Tw al pi pari a j N, allora |w | mj
N. Fanizzi (LdP)
18 marzo 2010
21 / 37
Principio di sostituzione
Dim. Per induzione sullaltezza j dellalbero di Tw : base j = 1 : |w | m = m1 passo si suppone che il lemma valga per alberi di altezza pari al pi a j (radice = non terminale), si deve dimostrare anche per j + 1: Sia A v , dove v = v1 v2 vk , |v | = k , k m
la prod. che determina il livello pi alto dellalbero Ogni simbolo vi v , i = 1, . . . , k pu essere radice di sottoalberi di altezza al pi uguale a j, essendo Tw in questo caso di altezza j + 1 Per ipotesi, questi sottoalberi hanno al pi mj foglie. Poich |v | = k m, per la stringa w, frontiera di Tw , risulter:
k volte
|w | m + mj + + mj = |v | mj = k mj m mj = mj+1
N. Fanizzi (LdP) Linguaggi Contestuali e Liberi 18 marzo 2010 22 / 37
Teorema uvwxy. Sia L un linguaggio libero da contesto. Esiste una costante p, dipendente solo da L, tale che se z L tale che |z| > p, allora z pu essere scritta come uvwxy in modo che:
1 2 3
N. Fanizzi (LdP)
18 marzo 2010
23 / 37
Dim. (schema) Sia G una grammatica che genera L Siano m = max{|v | | A v P} e k = |V | Posto p = mk +1 , consideriamo z L tale che |z| > p Per il lemma: |z| > p = mk +1 allora ogni albero di derivazione per z ha unaltezza maggiore di k + 1. k = |V | implica che in un cammino dellalbero ci sia una multipla occorrenza di un NT. Sia A V quello che compare nella occorrenza pi in alto ossia non vi sono altri NT ripetuti prima dellA superiore: 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 dalloccorrenza inferiore
N. Fanizzi (LdP) Linguaggi Contestuali e Liberi 18 marzo 2010 24 / 37
Dal Lemma risulta: |vwx | mk +1 = p Per assurdo se fosse v = = x la sostituzione dellalbero radicato nellA 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. Applicando il principio di sostituzione a z = uvwxy sostituiamo il sottoalbero radicato nelloccorrenza inferiore di A con quello delloccorrenza 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
N. Fanizzi (LdP)
18 marzo 2010
25 / 37
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 innito non rispetta il Pumping Lemma dei linguaggi liberi non pu essere generato da una grammatica libera Quindi questo teorema fornisce una condizione necessaria ma non sufciente perch un linguaggio sia libero Si utilizza per dimostrare che un linguaggio non sia libero
N. Fanizzi (LdP)
18 marzo 2010
26 / 37
Ambiguit
Ambiguit
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} ambigua. Ad es. w = a + a + a ottenibile mediante 2 alberi:
N. Fanizzi (LdP)
18 marzo 2010
27 / 37
Ambiguit
Esempio. Grammatica per lassegnazione: <assegnazione> <id> = <espressione> <id> A | B | C <espressione> <espressione> + <espressione> | <espressione> * <espressione> | (<espressione>) | <id> Dimostrare che ambigua.
N. Fanizzi (LdP)
18 marzo 2010
28 / 37
Ambiguit
Esempio. G = (X , V , S, P) con X = {if, else, (, ), a, b, p, q} V = {S, C} P = { S if C S else S | if C S | a | b, C (p) | (q) } Si consideri la stringa if (p) if (q) a else b
N. Fanizzi (LdP)
18 marzo 2010
29 / 37
Ambiguit
Per ottenere G = (X , V , S, P ) non ambigua usiamo la convenzione di associare ogni else alla if pi vicina: V = {S1 , S2 } V S S1 | S2 S if C S else S | a | b 1 1 1 P = S2 if C S | if C S1 else S2 | a | b C (p) | (q)
N. Fanizzi (LdP)
18 marzo 2010
30 / 37
Ambiguit
Un linguaggio G si dice inerentemente ambiguo sse ogni grammatica che lo genera ambigua Esempio. L = {ai bj c k | i, j, k > 0, (i = j) (j = k )}
N. Fanizzi (LdP)
18 marzo 2010
31 / 37
Esercizi
Esercizi.
Dimostrare che i seguenti linguaggi non sono liberi da contesto: L = {at | t primo} L = {an bn c n | n > 0} L = {an | n 0} L = {ai bj | i = 2j , i, j 0} L = {ak br | k > 0, r > k 2 }
2
N. Fanizzi (LdP)
18 marzo 2010
32 / 37
Esercizi
Esercizio 2
Esercizio 2. Dimostrare che L = {an bn c n |n > 0} non libero Supponiamo (per assurdo) che L sia libero. Allora vale il Pumping Lemma per un certo p N ssato. Si consideri la parola z = uvwxy = ap bp c p L: |z| = 3p > p. Per il P.L. deve essere |vwx | p. Per la composizione di vwx si hanno le seguenti possibilit:
1
ripetizioni di un solo simbolo: ak , b k o c k con k > 0 a cavallo tra ripetizioni di due simboli: ah b k o b h c k con h, k > 0 vwx del tipo ah bp c k , ma in tal caso si vede subito che |vwx | > p: assurdo
N. Fanizzi (LdP)
18 marzo 2010
33 / 37
Esercizi
Esercizio 2
In tutti questi casi si pu dimostrare che uv 2 wx 2 y L quindi L non pu essere libero. (caso 1.) vwx = ak , 0 < k p aggiungendo almeno a ed al pi ap si ottiene: uv 2 wx 2 y = ap+k bp c p
vwx = bk , vwx = ck ,
0<k p 0<k p
analogamente analogamente
N. Fanizzi (LdP)
18 marzo 2010
34 / 37
Esercizi
Esercizio 2
v = , x = : se v = allora v = ak perch se fosse v = ak br allora uv 2 wx 2 y = apk ak br ak br bs c p L con p s 2(r r ) + p r Analogamente x = implica che x = br per cui: uv 2 wx 2 y = ap+k bp+r c p L
vwx = bk c r ,
N. Fanizzi (LdP)
0 < k +r p
Esercizi
Esercizio 3
Esercizio 3. Dimostrare che L = {an | n 0} non libero Consideriamo L = {, a, aaaa, a9 , a16 , . . .} e supponiamo sia libero. Vale il Pumping Lemma per un certo p N. 2 Considero allora z = uvwxy = ap L tale che |z| = p2 > 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 | p2 +p < p2 +2p+1 = (p+1)2 rissumendo: |uv 2 wx 2 y | < (p + 1)2 Inoltre |uv 2 wx 2 y | = |z| + |vx | > |z| = p2 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
N. Fanizzi (LdP)
18 marzo 2010
36 / 37
Esercizi
Esercizio 1
{at
Supponiamo che L sia libero. Allora vale il pumping lemma per cui considerato un certo p, sia z L e |z| = t > p con t primo e z = uvwxy Poniamo k = |vx | > 0 quindi k + 1 > 1 r = |uwy | = t k Consideriate le stringhe zi = uv i wx i y L i 0 risulta: |zi | = |uv i wx i y | = |uwy | + i|vx | = r + ik Allora deve valere anche per la lunghezza di zt+1 L: |zt+1 | = r + (t + 1)k = r + tk + k = tk + t = (k + 1)t Essendo un multiplo proprio di un numero primo questa lunghezza non pu essere un numero primo, quindi la stringa non nel linguaggio: zt+1 L (assurdo) /
N. Fanizzi (LdP) Linguaggi Contestuali e Liberi 18 marzo 2010 37 / 37