Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programmazione + Laboratorio
Alberi di derivazione
2/47
Definizioni preliminari
3/47
Definizione di partizione
Ti T j per i j , i, j 1, 2, ..., m
m
ii)
T T
i
i 1
4/47
X
Sia G = (X, V, S, P) una grammatica
C.F.
e
*
una stringa derivabile da S in G, S w .
Dicesi albero di derivazione lalbero T avente le
seguenti propriet:
(1)
5/47
A A1 A2 ... Ak
A
...
deve appartenere a P;
(5) la stringa w pu essere ottenuta leggendo (e
concatenando) le foglie dellalbero da sinistra a destra.
Corso di Linguaggi di Programmazione + Laboratorio
6/47
Definizioni
Lunghezza di un cammino
Dato
Altezza o profondit
Laltezza
7/47
Osservazione
8/47
una grammatica
G = (X, V, S, P), diremo che
*
una derivazione S w , ove:
S w1 w2 ... wn w
wi yi Azi , wi 1 yi wi zi , i 1, 2, ..., n 1
9/47
Esempio
10/47
Esempio
S
11/47
12/47
13/47
14/47
15/47
w 4
000111
w 6
w 00001111 w 8
00 n11n
w 2n 2 n 1, 2,
16/47
17/47
18/47
Il sottoalbero pi in basso
con radice nel nodo
etichettato con una A
genera la sottostringa w,
mentre quello pi in alto
genera la sottostringa vwx.
Poich la G C.F.,
sostituendo il sottoalbero pi
in alto con quello pi in
basso, si ottiene ancora una
derivazione valida. Il nuovo
albero genera la stringa
uwy.
19/47
Se effettuiamo la
sostituzione inversa (il
sottoalbero pi in basso
viene rimpiazzato da quello
pi in alto), otteniamo un
albero di derivazione lecito
per la stringa uvvwxxy,
ossia uv2wx2y. Ripetendo
questa sostituzione un
numero finito di volte, si
ottiene linsieme di stringhe:
{uv wx y | n 0}
n
20/47
Proposizione
21/47
Lemma
m max v A v P
22/47
Dimostrazione
Tw:
...
23/47
Dimostrazione
Passo induttivo
Supponiamo che il lemma valga per ogni albero di
altezza al pi uguale a j e la cui radice sia un simbolo
NT e dimostriamolo per un albero di altezza j+1.
Supponiamo che il livello pi alto dellalbero
rappresenti la produzione A v , dove
v v1v2 ...vk , v k , k m (il sottoalbero di profondit
1 ha al pi m figli).
A
Tw:
v1
Corso di Linguaggi di Programmazione + Laboratorio
v2
...
vk
24/47
Dimostrazione
...
v k volte
c.v.d.
Corso di Linguaggi di Programmazione + Laboratorio
25/47
i, i 0 : uv i wx i y L
26/47
Osservazione
27/47
m max v A v P
Poniamo p m
e sia z L , con z p
Per il lemma precedente:
height (T ) j z m z m
j
height (Tz ) j
28/47
29/47
vwx m k 1 p
per cui risulta dimostrata la (1) del Pumping Lemma.
30/47
uv
wx
y
stringa derivata :
i volte
i volte
31/47
32/47
33/47
V {S },
P {S S S , S a}
S
a
34/47
Esempio
un dolce rosso
aggettivo
sostantivo
rosso
dolce
aggettivo
sostantivo
35/47
Esempio
36/47
Esempio
V {S },
P {S S a, S a}
G3 non ambigua.
Inoltre: L(G2 ) L(G3 ) aw | w { a}* a { a}
37/47
(G ) L L(G ) : G ambigua
38/47
L {a i b j c k | a i b j c k , (i j j k )}
Intuitivamente, ci si rende conto di ci pensando che
in ogni grammatica che genera L devono esistere due
diversi insiemi di regole per produrre le stringhe aibick
e le stringhe aibjcj. Le stringhe aibici saranno
necessariamente prodotte in due modi distinti, con
distinti alberi di derivazione e conseguente ambiguit.
39/47
Linguaggi di programmazione
Si
40/47
S
if
S
then S
C
p
if
if
C then
else
C then
p
if
C then S
q
else
41/47
G ( X ,V , S , P )
42/47
if
C then S
p
S2
if
C then
S1
else
S2
43/47
Esercizi
L {a b c | n 0}
n n n
44/47
Esercizi
L a
n2
|n0
Soluzione esercizio
45/47
Esercizi
L a b | i 2 , i, j 0
i
Soluzione esercizio
46/47
Esercizi
L a k b r | k > 0, r k 2
Soluzione esercizio
47/47