Documente Academic
Documente Profesional
Documente Cultură
operat ia de
concatenare sau juxtapunere prin pq = a
1
. . . a
n
b
1
. . . b
m
.
Se poate verica usor ca aceasta operat ie este asociativa. Prin urmare,
mult imea V
+
nzestrata cu aceasta operat ie este un semigrup (semigrupul
liber peste V ). Mult imea V
(eventual u, v V
+
);
q este prex (propriu) al lui p daca p = qv, v V
(v V
+
); q este sux
(propriu) al lui p daca p = uq, u V
(u V
+
).
Denit ie 1.2 Un limbaj L peste un alfabet V este o parte a monoidului
liber V
, deci L V
.
Sa observam ca V
(sau V
+
) este ntotdeauna o mult ime innita (evi-
dent numarabila); n aceasta accept iune generala, un limbaj poate sa e
o mult ime nita sau innita, uneori chiar vida.
Exemplu. Fie V = 0, 1. Avem
V
+
= 0, 1, 00, 01, 10, 000, . . .,
V
AT I GENERALE 5
Inchiderea (Kleene) a unui limbaj L este
L
_
k=0
L
k
.
T(V
) si : V
T(V
)
sunt doua operat ii pe V
). Daca L
este un limbaj peste V , putem deni limbajul
Sub(L) =
_
xL
Sub(x).
adica limbajul constituit din toate subcuvintele tututor cuvin-
telor lui L. Semnicat ii analoage vor avea si limbajele Pref(L)
si Suf(L).
2. Limbajul Mi(L). Fie x = a
1
. . . a
n
un cuvant peste alfabetul
V . Cuvantul Mi(x) = a
n
. . . a
1
se numeste rasturnatul lui x
(Mi este prescurtarea cuvantului englez mirror). Se mai noteaza
Mi(x) = x. Avem atunci si rasturnatul unui limbaj
Mi(L) =
_
xL
Mi(x).
3. Operat ia de substitut ie. Fie U si V doua alfabete si e aplicat ia
s : V T(U
prin
s() = , s(xy) = s(x)s(y), x, y V
.
6 CAPITOLUL 1. LIMBAJE FORMALE
O astfel de prelungire se numeste canonica; ea pastreaza operat ia
de concatenare, n sensul ca daca p = xy, atunci s(p) = s(x)s(y)
este concatenarea limbajelor s(x), s(y). Operat ia de substitut ie
a limbajelor este data de
s(L) =
_
xL
s(x).
Sa observam ca aceasta operat ie transforma un limbaj peste
un alfabet V ntr-un limbaj peste un alfabet U si ca pastreaza
operat ia de concatenare. Daca card s(a) < , a V , vom
spune ca substitut ia este nita, iar daca card s(a) = 1, a V
vom spune ca s este un homomorsm.
Gramatici generative de tip Chomsky. Un limbaj peste un alfabet
poate sa e o mult ime nita sau innita. Daca este o mult ime nita, el poate
denit prin scrierea efectiva a cuvintelor limbajului.
In cazul n care este
o mult ime innit a, el poate denit n anumite cazuri punand n evident a
structura cuvintelor lui. De exemplu
L
2
= 01, 0011, 000111, . . . = 0
n
1
n
[n 1.
Exista doua procedee mai generale pentru denirea limbajelor:
1. Procedee generative, care permit generarea tuturor cuvintelor limba-
jului. Exist a mai multe tipuri de mecanisme de generare a limbajelor,
ntre care gramaticile Chomsky, sisteme Lindenmayer,etc.
2. Procedee analitice, care determina daca un cuvant dat apart ine sau
nu limbajului. Sunt asa-numitele automate, automate nite, automate
push-down, etc.
Un rol deosebit n teoria limbajelor formale l au gramaticile Chomsky.
Fie V
N
si V
T
doua alfabete disjuncte, numite respectiv alfabetul simbolurilor
neterminale (V
N
) si alfabetul simbolurilor terminale (V
T
). Notam V
G
=
V
N
V
T
(alfabetul general) si e P V
G
V
N
V
G
V
G
. Mult imea P va deci
formata din perechi de forma (u, v), unde u = u
Au
, u
, u
G
, A V
N
iar v V
G
, deci u si v sunt cuvinte peste V
G
, cu observat ia ca u trebuie sa
cont ina cel put in un simbol neterminal. Vom spune ca o astfel de pereche
este o regula (product ie, regula de generare, regula de rescriere) si o vom
nota u v (vom spune: u se transforma n v). Apartenent a unei reguli la
P o vom nota n mod obisnuit (u v) P, sau mai simplu, u v P
(nu va exista confuzia cu faptul ca v este un element al lui P).
1.1. LIMBAJE, GRAMATICI, PROPRIET
AT I GENERALE 7
Denit ie 1.3 O gramatica (Chomsky) G este un sistem G = (V
N
, V
T
, S, P),
unde V
N
este alfabetul simbolurilor neterminale, V
T
este alfabetul simbolu-
rilor terminale, S V
N
si se numeste simbolul de start al gramaticii, iar P
este mult imea de reguli.
Observat ie. Simbolurile alfabetului V
N
le vom nota n general cu litere mari
A, B, C, . . . , X, Y, Z (mai put in U, V, W) iar cele ale alfabetului V
T
cu litere
mici de la nceput a, b, c, . . . sau cu cifre 0, 1, 2, . . ..
Fie G o gramatica si p, q V
G
. Vom spune ca p se transforma direct n
q si vom scrie p
G
q (sau pq daca nu exista nici o confuzie) daca exista
r, s, u, v V
G
astfel nct p = rus, q = rvs iar u v P. Vom spune ca p
se transforma n p
= p
1
G
p
2
G
. . .
G
p
n
= p
.
Vom scrie p
G
p
(sau p
+
p
G
p
(sau p
G
p
deriv a n p
.
Sa observam ca transformarile astfel denite ,
+
,
sunt relat ii pe
V
G
. Este clar ca relat ia
+
este nchiderea tranzitiva a relat iei , iar relat ia
T
, S
G
p.
Observat ie. Daca p V
G
si S
G
p se spune ca p este o forma propozit ionala
n gramatica G.
Exemple:
1. Fie G = (V
N
, V
T
, S, P), unde V
N
= A, V
T
= 0, 1, S = A (evident)
si P = A 0A1, A 01. O derivare n aceasta gramatica este, de
exemplu
A0A100A11000111 = 0
3
1
3
.
Este evident ca L(G) = 0
n
1
n
[n 1.
Observat ie.
In cazul n care mai multe reguli au aceeasi parte stanga,
le vom scrie compact astfel u v
1
[v
2
[ . . . [v
n
, simbolul [ avand sensul
de sau; n cazul nostru, A 0A1[01.
8 CAPITOLUL 1. LIMBAJE FORMALE
2. G = (V
N
, V
T
, S, P), unde
V
N
= <propozit ie>, <subiect>, <atribut>, <predicat>, <complement>,
<substantiv>, <adjectiv>, <verb>, <articol>,
V
T
= o, orice, matrice, funct ie, derivabila, continua, este ,
S =<propozit ie>,
P = <propozit ie><subiect><atribut><predicat><complement>,
<subiect><articol><substantiv>,
<atribut><adjectiv>,
<predicat><verb>,
<complement><adjectiv>,
<articol>o[orice,
<substantiv>matrice[funct ie,
<adjectiv>derivabila[continua,
<verb>este.
Observat ie.
In acest exemplu, <propozit ie>, <subiect>, etc.,
reprezinta ecare cate un simbol neterminal; de asemenea, o, orice,
matrice, etc., reprezinta simboluri terminale.
Se poate usor observa ca aceasta gramatica genereaza propozit ii simple
de forma subiect-atribut-predicat-complement care exprima judecat i
asupra conceptelor de matrice si funct ie. De exemplu, se poate
forma propozit ia: orice funct ie derivabila este continua, care este
din punct de vedere semantic corecta, precum si propozit ia orice
funct ie continua este derivabila, care, dupa cum se stie, este falsa.
Evident, se pot genera si numeroase propozit ii care nu au sens. Ceea
ce ne intereseaza n acest moment este aspectul formal, deci din punct
de vedere sintactic toate aceste propozit ii sunt corecte; semantic, un-
ele propozit ii pot sa e incorecte sau chiar sa nu aibe sens.
Sa mai observam ca o gramatica Chomsky este n masura sa con-
stituie un model matematic pentu sintaxa unei limbi, fara sa intere-
seze aspectele semantice. Este ceea ce a ncercat sa nteprinda Naom
Chomsky pentru limba engleza n lucrarile sale din anii 1957.
3. G = (V
N
, V
T
, A
0
, P), unde
V
N
= <program>, <instruct ie>, <atribuire>, <if>, <expresie>,
<termen>, <factor>, <variabila>, <index>,
V
T
= begin, end, if, then, stop, t, i, +, *, (, ), =, ,, ; ,
A0 =<program>
P = <program>begin <linie> end
<linie><linie>;<instruct ie> [ <instruct ie>
<instruct ie><atribuire> [ <if> [ stop
<atribuire><variabila>=<expresie>
1.1. LIMBAJE, GRAMATICI, PROPRIET
AT I GENERALE 9
<if>if( <expresie>) then <atribuire>
<expresie><expresie> + <termen> [ <termen>
<termen><termen>*<factor> [ <factor>
<factor>(<expresie>)[ <variabila>
<variabila>t(<index>)[i
<index><index>, <expresie> [ <expresie>
Gramatica din acest exemplu deneste un limbaj de programare sim-
plu cu trei tipuri de instruct ii: atribuiri, if-then, stop. Expresiile arit-
metice au numai operatorii + si * iar variabilele pot simple sau in-
dexate (tablouri). Ment ionam ca denirea n acest mod a unui limbaj,
inclusiv utilizarea crosetelor pentru desemnarea simbolurilor netermi-
nale, poarta adesea denumirea de notat ie Backus Naur; n acest mod
s-a denit limbajul ALGOL.
Tipuri de gramatici. Dupa forma regulilor de generare, gramaticile Chom-
sky se mpart n mai multe tipuri; clasicarea obisnuita este urmatoarea:
Gramatici de tipul 0; sunt gramatici fara restrict ii asupra regulilor;
Gramatici de tipul 1 (dependente de context); sunt gramatici care au
reguli de forma
uAv upv, u, p, v V
G
, p ,= , A V
N
sau A si n acest caz A V
N
nu apare n dreapta vreunei reguli.
Observat ie. Evident, regulile de forma a doua au sens numai daca A
este simbolul de start.
Gramaticile de tipul 2 (independente de context); sunt gramatici care
au reguli de forma
A p, A V
N
, p V
G
.
Gramaticile de tipul 3 (regulate); sunt gramatici care au reguli de
forma
_
A Bp
C q
sau
_
A pB
C q
cu A, B, C V
N
si p, q V
T
.
Vom nota cu L
j
, j = 0, 1, 2, 3 familiile de limbaje generate de gramaticile
de tipurile j = 0, 1, 2, 3; vom avea astfel limbaje de tipul 0, limbaje de tipul
1 (sau dependente de context) , limbaje de tipul 2 (sau independente de
context) si limbaje de tipul 3 (sau regulate). Sa observam ca este importanta
10 CAPITOLUL 1. LIMBAJE FORMALE
structura cuvintelor unui limbaj si nu modul n care sunt notate simbolurile
terminale. De exemplu , limbajele
L
2
= 0
n
1
n
[n 1, L
2
= a
n
b
n
[n 1
sunt n mod practic identice. Putem utiliza o unica notat ie pentru alfabetul
simbolurilor terminale , de exemplu , V
T
= i
1
, . . . , i
n
. Clasicarea de mai
sus este fundamentala n teoria limbajelor formale, ea a fost introdusa de
Naom Chomsky n 1958 si prin tradit ie noile clase de limbaje sunt raportate
la aceasta clasicare. O alta clasicare este urmatoarea
Gramatici de tipul 0; fara restrict ii;
Gramatici monotone:
u v, [u[ [v[, u, v V
G
;
Gramatici dependente de context (de tipul 1):
uAv upv, u, p, v V
G
, p ,= , A V
N
;
Gramatici independente de context (de tipul 2):
A p, A V
N
, p V
G
;
Gramatici liniare:
_
A uBv
C p
A, B, C V
N
, u, v, p V
T
;
Gramatici stang (drept) liniare:
_
A uB (A Bv)
C p
A, B, C V
N
, u, v, p V
T
;
Gramatici regulate (de tipul 3); gramatici stang liniare sau gramatici
drept liniare.
Gramaticile monotone ca si cele dependente de context nu pot avea reguli
cu partea dreapta vida. Se introduce urmatoarea convent ie de completare:
ntr-o gramatica monotona sau dependenta de context se admite o regula de
forma A cu condit ia ca A sa nu apara n partea dreapta a vreunei reguli.
Dupa cum vom vedea , existent a sau inexistent a regulilor de forma A ,
reguli numite de stergere, poate modica esent ial puterea generativa a unei
1.2. IERARHIA CHOMSKY 11
gramatici. O gramatica n care nu avem astfel de reguli o vom numi uneori
-libera; de asemenea, un limbaj care nu cont ine cuvantul vid, l vom numi
-liber. Sa mai observam ca existent a regulilor de stergere ntr-o gramatica
nu implica n mod necesar existent a cuvantului vid n limbajul generat.
Doua gramatici care genereaza acelasi limbaj se numesc echivalente.
Gramaticile monotone si gramaticile dependente de context sunt echiva-
lente; de asemenea, gramaticile drept si stang liniare sunt echivalente, jus-
ticandu-se astfel clasa gramaticilor regulate.
1.2 Ierarhia Chomsky
Lemele care urmeaza vor avea o utilizare frecventa n cele ce urmeaza.
Lema de localizare a gramaticilor independente de context.
Lema 1.1 Fie G o gramatica independenta de context si e derivarea
X
1
. . . X
m
p, X
j
V
G
, j = 1, m, p V
G
.
Atunci exista p
1
, p
2
, . . . , p
m
V
G
astfel ncat p = p
1
. . . p
m
si X
j
p
j
, j =
1, m.
Demonstrat ie. Procedam prin induct ie asupra lungimii derivarii l.
Daca l = 0 atunci p = X
1
. . . X
m
si luam p
j
= X
j
.
Presupunem ca proprietatea este adevarata pentru derivari de lungime l
si e o derivare de lungime l + 1, X
1
. . . X
m
q
j
, j = 1, m.
Fie apoi A u regula care se aplica n derivarea directa qp si sa
presupunem ca A intra n subcuvantul q
k
, deci q
k
= q
k
Aq
k
. Vom lua
p
j
=
_
q
j
, j ,= k
q
k
uq
k
, j = k
Este evident ca X
j
p
j
, j ,= k, iar pentru j = k avem
X
k
q
k
= q
k
Aq
k
q
k
uq
k
= p
k
.2
Vom pune n evident a n continuare o proprietate asupra structurii regu-
lilor gramaticilor Chomsky. Partea dreapta a unei reguli, pentru toate
tipurile de gramatici, este un cuvant format din terminale sau neterminale.
Este convenabil de multe ori ca partea dreapta a regulilor sa cont ina un
singur tip de simboluri, terminale sau neterminale. Acest lucru este posibil
fara modicarea tipului gramaticii.
12 CAPITOLUL 1. LIMBAJE FORMALE
Lema 1.2 Fie G = (V
N
, V
T
, S, P) o gramatica de tipul 2. Exista o gra-
matica G
de forma G
= (V
N
, V
T
, S, P
) unde
V
N
si P
se construiesc astfel: V
N
V
N
si includem n P
toate regulile
din P care convin. Fie acum o regula din P care nu convine
u v
1
i
1
v
2
i
2
. . . i
n
v
n+1
, i
k
V
T
, v
k
V
N
.
Vom introduce n P
urmatoarele reguli:
u v
1
X
i
1
v
2
X
i
2
. . . X
i
n
v
n+1
, X
i
k
i
k
, k = 1, n,
unde X
i
k
sunt neterminale noi pe care le adaugam la V
N
. Este evident ca
G
) = L(G).2
Ierarhia Chomsky. Este evident ca L
3
L
2
si ca L
1
L
0
, deoarece
orice regula a unei gramatici de tipul 3 respecta prescript iile unei gramatici
de tipul 2; analog pentru familiile L
1
si L
2
. Aparent, o regula de forma
A p (de tipul 2) este un caz particular a unei reguli de forma uAv upv
(de tipul 1), pentru u = v = ; totusi, realitatea nu este aceasta, deoarece
la tipul 2 de gramatici sunt permise reguli de stergere, pe cand la tipul 1 se
impune condit ia p ,= . Vom arata ca avem L
2
L
1
.
Sirul de incluziuni
L
3
L
2
L
1
L
0
poarta denumirea de ierarhia Chomsky (vom arata pe parcursul acestui
curs ca incluziunile sunt stricte). Aceasta ierarhie caracterizeaza puterea
generativa a celor patru tipuri de gramatici, aceasta putere ind crescatoare
de la 3 la 0. Orice alte mecanisme generative se raporteaza la aceasta
ierarhie fundamentala. Vom demonstra mai ntai urmatoarea lema.
Lema 1.3 (Lema eliminarii regulilor de stergere). Orice limbaj indepen-
dent de context -liber poate generat de o gramatica de tipul 2 fara reguli
de stergere.
Demonstrat ie. Fie G = (V
N
, V
T
, S, P) o gramatica independenta de context
si L(G) limbajul generat. Prin ipoteza , L(G). Denim prin recurent a
sirul de mult imi U
k
kN
astfel:
U
1
= X[X V
N
, X P
U
k+1
= X[X V
N
, X p P, p U
k
.
1.2. IERARHIA CHOMSKY 13
Sa observam ca U
1
U
2
. . . U
k
. . ..
Intr-adevar, U
1
U
2
deoarece
daca X U
1
rezulta ca X P si cum U
1
rezulta ca X U
2
. Daca
acum U
k1
U
k
, atunci evident U
k1
U
k
si daca X U
k
, deci X p,
p U
k1
U
k
, ceea ce nseamna ca X U
k+1
, adica U
k
U
k+1
.
Cum toate aceste mult imi sunt incluse n V
N
si V
N
este nita, rezulta
ca exista o mult ime nala U
f
astfel astfel ncat
U
1
U
2
U
f
= U
f+1
= .
Are loc de asemenea si implicat ia X U
f
X
.
Vom ilusta aceasta implicat ie cu un exemplu. Sa presupunem ca U
f
=
U
3
si e X U
3
. Atunci n mod necesar trebuie sa avem X p P,
p U
2
; de exemplu p = X
1
X
2
si X
1
, X
2
U
2
.
In mod analog
_
X
1
Y
1
Y
2
Y
3
X
2
Z
1
Z
2
, Y
1
, Y
2
, Y
3
, Z
1
, Z
2
U
1
,
prin urmare Y
1
, Y
2
, Y
3
, Z
1
, Z
2
. Putem scrie
derivarea
XX
1
X
2
Y
1
Y
2
Y
3
Z
1
Z
2
.
Denim acum urmatoarea gramatica independenta de context fara reguli
de stergere G
= (V
N
, V
T
, S, P
) unde V
N
, V
T
, S sunt ca n gramatica data,
iar P
regulile
X ABC, X BC, X AC, X C.
Sa observam ca n acest fel mult imea P a fost pe de o parte micsorata
(au fost excluse regulile de stergere), iar pe de alta parte mbogat ita cu
eventualele noi reguli. Sa mai obsevam ca G
).
Mai ntai, sa aratam ca L(G) L(G
).
Fie p L(G), deci S
G
p; vom arata ca S
p.
Vom arata o implicat ie ceva mai generala, X
G
p implica X
p,
pentru orice X V
N
(relat ia ceruta se obt ine pentru X = S). Procedam
prin induct ie asupra lungimii derivarii l. Daca l = 1 avem
14 CAPITOLUL 1. LIMBAJE FORMALE
X
G
p, X p P, p ,= X p P
si deci X
p.
Presupunem ca armat ia este adevarata pentru l = n si luam o derivare
cu lungimea l = n + 1. Punem n evident a prima derivare directa
X
G
X
1
. . . X
m
G
p
Conform lemei de localizare avem p = p
1
. . . p
m
si X
j
G
p
j
, j =
1, m. Unele din cuvintele p
j
pot sa e vide; pentru precizarea ideilor sa
presupunem ca p
2
, p
3
, p
5
= . Atunci pentru derivarile X
j
G
p
j
, j ,=
2, 3, 5, care au lungimea de cel mult n, conform ipotezei inductive avem
X
j
p
j
, j = 2, 3, 5.
Pe de alta parte , pentru j = 2, 3, 5 avemX
2
G
, X
3
G
, X
5
G
,
deci X
2
, X
3
, X
5
U
f
. Rezulta ca
X X
1
X
4
X
6
. . . X
m
P
X
1
X
4
X
6
. . . X
m
p
1
p
4
p
6
. . . p
m
= p.
Deci X
).
Sa aratam acum incluziunea inversa , L(G
) L(G).
Fie p L(G
), S
u
G
p.
Daca n derivarea directa u
G
AT I DE
INCHIDERE A FAMILIILOR CHOMSKY 15
aplica o regula nou introdusa de exemplu X BC, deci pasul respectiv va
avea forma
u = u
Xu
BCu
= v
dar regula X BC din P
G
, avem
u = u
Xu
G
u
ABCu
G
u
ABCu
= v.
Prin urmare orice pas al derivarii considerate se poate obt ine si n gramatica
G, deci A
0
G
p si p L(G), adica L(G
) L(G).
Sa consideram acum o gramatica G de tipul 2 si sa presupunem ca
L(G). Construim gramatica G
= (V
N
S
, V
T
, S
, P
, S
S). Evident
L(G
iar S
nu apare n partea
dreapta a vreunei reguli. Deci G
G
p.
In prima derivare directa trebuie cu
necesitate sa se utilizeze una din regulile S S
1
sau S S
2
. Prin urmare
avem una din urmatoarele doua variante:
S
G
S
1
G
p, deci S
1
G
1
p, p L(G
1
) L(G
1
) L(G
2
)
S
G
S
2
G
p, deci S
2
G
2
p, p L(G
2
) L(G
1
) L(G
2
).
Deci p L(G
1
) L(G
2
), adica L(G) L(G
1
) L(G
2
).
Observat ie.
In implicat ia S
1
p n gramatica G
1
rezulta S
1
G
p
se utilizeaza faptul ca neterminalele celor doua gramatici sunt disjuncte.
Astfel, derivarea S
1
p se va scrie detaliat astfel
G : S
1
u
1
u
2
. . . u
n
= p.
Intrucat S
1
V
N
1
si S
1
, V
N
2
n derivarea directa S
1
u
1
se utilizeaza cu
necesitate o regula din P
1
; prin urmare u
1
V
G
1
, deci toate neterminalele
din u
1
sunt din V
N
1
. Mai departe, n derivarea directa u
1
u
2
se utilizeaza
cu necesitate o regula din P
1
, etc.
In consecint a, n derivarea S
1
G
p toate
simbolurile sunt din V
G
1
si se utilizeaza numai reguli din P
1
, de unde rezulta
implicat ia.
Invers, e p L(G
1
) L(G
2
). Daca, de exemplu, p L(G
1
), avem
S
1
G
1
p, rezulta S
1
G
p, deci putem construi derivarea S
G
S
1
G
p.
Prin urmare, p L(G) si L(G
1
) L(G
2
) L(G).2
Exemplu. Fie limbajele
L
1
= 1, 11, 111, . . ., L
2
= 01, 0011, 000111, . . ..
Se poate verica ca aceste limbaje sunt generate de gramaticile
G
1
: A 1A[1,
G
2
: B 0B1[01.
Se vede ca L
1
L
3
L
2
, L
2
L
2
deci ambele limbaje sunt de tipul 2.
Problema nchiderii familiei L
2
la reuniune consta n: este limbajul
1.3. PROPRIET
AT I DE
INCHIDERE A FAMILIILOR CHOMSKY 17
L
1
L
2
= 1, 11, . . . , 01, 0011, . . .
de asemenea de tipul 2 (adica exista o gramatica de tipul 2 care sa l
genereze) ? Raspunsul este armativ; gramatica de tipul 2 care genereaza
limbajul L
1
L
2
are regulile
S A[B, A 1A[1, B 0B1[01.
G
p. Aceasta derivare va avea forma
S
G
S
1
S
2
G
p.
Vom aplica n continuare o implicat ie asemanatoare cu lema de localizare
de la limbajele independente de context: daca S
1
S
2
p atunci p = p
1
p
2
si
S
1
p
1
, S
2
p
2
. Demonstrat ie prin induct ie asupra lungimii derivarii l.
Daca l = 2 (cea mai mica lungime!) atunci se vor aplica reguli de forma
S
1
i
1
P
1
, S
2
i
2
P
2
unde i
1
V
T
1
, i
2
V
T
2
. Astfel ca
p = i
1
i
2
si putem lua p
1
= i
1
, p
2
= i
2
.
Presupunem ca implicat ia este adevarata pentru l = n si luam l = n+1.
In derivarea S
1
S
2
p punem n evident a ultima derivare directa
S
1
S
2
qp.
Conform ipotezei inductive, q = q
1
q
2
si S
1
q
1
, S
2
q
2
. Fie u v regula
care se aplica n qp. Deoarece u v este sau din P
1
sau din P
2
, rezulta
ca u este subcuvant al lui q
1
sau q
2
. Sa presupunem ca u Sub(q
1
); atunci
q
1
= q
1
uq
1
si luam p
1
= q
1
vq
1
, p
2
= q
2
.
Este clar ca p = p
1
p
2
si ca S
1
G
1
p
1
, S
2
G
2
p
2
.
18 CAPITOLUL 1. LIMBAJE FORMALE
Mai departe, avem ca p
1
L(G
1
), p
2
L(G
2
) si deci p L(G
1
)L(G
2
).
Invers, e p L(G
1
)L(G
2
). Atunci p = p
1
p
2
si S
1
G
1
p
1
, S
2
G
2
p
2
.
Aceste derivari sunt valabile si n gramatica G. Prin urmare putem scrie:
G : S
G
S
1
S
2
G
p
1
p
2
= p,
adica p L(G) si L(G
1
)L(G
2
) L(G).2
Observat ie.
In cazul familiei L
2
demonstrat ia primei part i se poate simpli-
ca aplicand direct lema de localizare. Deci, daca SS
1
S
2
p, atunci p =
p
1
p
2
, S
1
p
1
, S
2
p
2
. T inand cont ca V
N
1
V
N
2
= avemS
1
G
1
p
1
, S
2
G
2
p
2
si deci p
1
L(G
1
), p
2
L(G
2
).
Sa mai observam ca construct ia de mai sus nu se poate aplica la familia
L
3
, deoarece regula nou introdusa S S
1
S
2
nu este de tipul 3.
Familia L
3
. Luam gramatica G de forma
G = (V
N
1
V
N
2
, V
T
1
V
T
2
, S
1
, P
1
P
2
),
unde P
1
se obt ine din P
1
prin nlocuirea regulilor de forma A p cu
A pS
2
. Evident, G astfel construita este de tipul 3.
Vom numi regulile de forma A pB de categoria I iar cele de forma
C q de categoria a II-a. Evident ca ntr-o derivare care transforma
simbolul de start ntr-un cuvant al limbajului generat de gramatica, n toate
derivarile directe se aplica reguli de categoria I iar n ultima o regula de
categoria II. Sa mai observam ca P
1
are reguli numai de categoria I.
Fie p L(G), deci S
1
G
p.
In aceasta derivare, primele reguli care se
aplica sunt din P
1
, apoi o regula nou introdusa (cu necesitate, caci altfel nu
putem elimina neterminalele) iar ultimele reguli sunt din P
2
. Prin urmare,
derivarea va avea forma
S
1
G
qA
G
qrS
2
= p
1
S
2
G
p
1
p
2
= p.
Este clar ca S
1
G
1
qr = p
1
(la ultima derivare s-a reutilizat regula de
categoria II din P
1
din care a provenit regula noua) si S
2
G
2
p
2
, adica
p
1
L(G
1
), p
2
L(G
2
). Prin urmare p = p
1
p
2
L(G
1
)L(G
2
) si deci
L(G) L(G
1
)L(G
2
).
Fie acum p L(G
1
)L(G
2
). Rezulta ca p = p
1
p
2
, p
1
L(G
1
), p
2
L(G
2
) si deci S
1
G
1
p
1
, S
2
G
2
p
2
.
In derivarea S
1
G
1
p
1
ultima regula
1.3. PROPRIET
AT I DE
INCHIDERE A FAMILIILOR CHOMSKY 19
utilizata este de categoria a II-a, sa presupunemA r, deci aceasta derivare
va avea forma
S
1
G
1
qAqr = p
1
.
T inand cont ca n G avem regula A rS
2
, putem scrie n G derivarea
S
1
G
qA
G
qrS
2
= p
1
S
2
G
p
1
p
2
= p,
adica p L(G) si L(G
1
)L(G
2
) L(G).2
astfel
G
= (V
N
S
, X, V
T
, S
, P S
[S[XS, Xi Si[XSi, i V
T
)
Regulile nou introduse sunt de tipul 1, deci G
), S
p. Deosebim 3 cazuri dupa prima regula care se
aplica:
1. Prima regula este S
si evident p = L(G)
.
2. Prima regula este S
S; atunci n G avem S
S
p si n mod
evident S
G
p, p L(G) L(G)
.
3. Prima regula care se aplica este S
):
S
XS Xp
n
XSp
n
Xp
n1
p
n
(A) . . .
XSp
3
. . . p
n
Xp
2
p
3
. . . p
n1
p
n
XSp
2
p
3
. . . p
n
p
1
p
2
p
3
. . . p
n
.
Pentru ecare subcuvant p
j
avem S
p
j
, deci S
G
p
j
si p
j
L(G)
asa ncat p = p
1
. . . p
n
L(G)
n
L(G)
.
Observat ie. Faptul ca n G
S
p
j
rezulta astfel: t inand cont ca nu
putem elimina neterminalul X decat cu o regula de forma Xi Si, n
20 CAPITOLUL 1. LIMBAJE FORMALE
XS trebuie cu necesitate sa l transformam pe S pana cand al doilea
simbol va un terminal, deci
XS
Xiq, q V
G
si S
iq.
atunci p = p
1
. . . p
n
si S
G
p
j
, j = 1, n deci si
n G
avem S
p
j
. Putem atunci scrie derivarea (A) si p L(G)
.2
Familia L
2
. Construim gramatica G
astfel
G
= (V
N
S
, V
T
, S
, P P
S[)
Fie p L(G
), deci S
p. Aceasta derivare va avea forma (n G
)
(B) S
S . . . S
p.
Conform lemei de localizare, p = p
1
. . . p
n
, S
p
j
, j = 1, n si deci S
p
j
,
ceea ce nseamna ca p L(G)
n
L(G)
, adica L(G)
L(G
).
Invers, e p L(G)
; atunci p = p
1
. . . p
n
, S
p
j
, j = 1, n. Putem scrie
atunci derivarea (B) si p L(G
), adica L(G)
L(G
).2
Familia L
3
. Construim gramatica G
astfel
G
= (V
N
S
, V
T
, S
, P P
S[),
unde P
.
Fie p L(G
), adica S
p. Punand n evident a prima derivare directa,
avem
G
: S
S
p.
Daca n derivarea S
p se aplica numai reguli din P, atunci S
G
p, p
L(G) L(G
).
Sa presupunem ca se aplica si reguli din P
S
p
1
S
p
1
p
2
S
. . .
p
1
. . . p
n
.
Evident, S
p
j
, deci p
j
L(G), adica p L(G)
, ceea ce nseamna ca
L(G
) L(G)
.
Invers, e p L(G)
; atunci p = p
1
. . . p
n
, S
p
j
, j = 1, n, sau S
p
j
si
putem scrie derivarea (C). Aceasta nseamna ca p L(G
) sau L(G)
L(G
).2
1.3. PROPRIET
AT I DE
INCHIDERE A FAMILIILOR CHOMSKY 21
Observat ie. Operat iile reuniune, produs si nchidere Kleene se numesc
operat ii regulate. Proprietat ile de nchidere demonstrate pana acum pot
sintetizate astfel:
Teorema 1.4 Familiile de limbaje din clasicarea Chomsky sunt nchise la
operat iile regulate.
Recapitulare aupra construct iilor gramaticilor:
Reuniune
j = 0, 1, 2, 3 :
G = (V
N
1
V
N
2
S, V
T
1
V
T
2
, P
1
P
2
S S
1
[S
2
).
Produs
j = 0, 1, 2 :
G = (V
N
1
V
N
2
S, V
T
1
V
T
2
, P
1
P
2
S S
1
S
2
).
j = 3 :
G = (V
N
1
V
N
2
, V
T
1
V
T
2
, S
1
, P
1
P
2
),
unde P
1
se obt ine din P
1
prin nlocuirea regulilor de forma A p cu
A pS
2
.
Inchidere Kleene
j = 0, 1 :
G
= (V
N
S
, X, V
T
, S
, P S
[S[XS, Xi Si[XSi, i V
T
)
j = 2 :
G
= (V
N
S
, V
T
, S
, P S
S[)
j = 3 :
G
= (V
N
S
, V
T
, S
, P P
S[).
1. Specicat i limbajul generat de gramatica G = (V
N
, V
T
, S, P), pre-
cizand tipul gramaticii (cf. clasicarii Chomsky):
(a) V
N
= A, V
T
= a, b, S = A, P = A aA[b;
(b) V
N
= x
0
, V
T
= A, B, . . . , Z, S = x
0
, P = x
0
x
1
D,
x
1
x
2
N, x
2
E;
(c) V
N
= A, V
T
= 0, 1, 2, S = A, P = A 0A0[1A1[2A2[;
(d) V
N
= S, A, V
T
= 0, 1, . . . , 9, .,
P = S A.A, A 0A[1A[ . . . [9A[0[1[ . . . [9;
(e) V
N
= S, V
T
= PCR, PDAR, UDMR,
P = S PCR[PDAR[UDMR;
22 CAPITOLUL 1. LIMBAJE FORMALE
(f) V
N
= A, B, C, V
T
= 0, 1, S = A, P = A 0A[1B[1,
B 0C[1A, C 0B[1C[0;
(g) V
N
= S, A, B, C, V
T
= 0, 1, . . . , 9, +, ,
P = S +A[ A[A, A 0A[1A[ . . . [9A[0[1[ . . . [9;
(h) V
N
= S, V
T
= (, ), P = S S(S)S[;
(i) V
N
= E, T, F, V
T
= (, ), i, +, , S = E,
P = E E +T[T, T T F[F, F (E)[i;
(j) V
N
= S, A, B, V
T
= a, b, c, P = S abc[aAbc,
Ab bA, Ac Bbcc, bB Bb, aB aaA[aa;
(k) V
N
= S, A, B, C, D, E, V
T
= a, P = S ACaB, Ca
aaC, CB DB[E, aD Da, AD AC, aE Ea, AE ;
(l) V
N
= S, A, B, C, D, E, V
T
= a, b, P = S ABC,
AB aAD[bAE, DC BaC, EC BbC, Da aD, Db
bD, Ea aE, Eb bE, AB , C , aB Ba, bB Bb;
2. Folosind teorema sa se construiasca o gramatica independenta de con-
text, fara reguli de stergere care genereaza limbajul de la problema
1-h.
3. Gasit i gramatici care genereaza limbajele urmatoare:
(a) L = ;
(b) L = ;
(c) L = 0
n
[n N;
(d) L = a
i
b
j
a
i
b
j
;
(e) L = awbbw
[w, w
0, 1
;
(f) L = w[ w constanta reala n limbajul PASCAL ;
(g) L = w 0, 1
;
(i) L = w[w octet ce reprezinta un numar par ;
(j) L = A, B, C, . . . , Z;
4. Se consider a limbajele generate de gramaticile de la problema 1 punc-
tul a,b,c,d. Notam aceste limbaje cu L
a
, L
b
, L
c
, L
d
. Folosind demon-
strat ia teoremelor referitoare la nchiderile familiilor de limbaje din
clasicarea Chomsky sa se gaseasca gramatici care genereaza limba-
jele L
a
L
b
, L
c
L
d
, L
a
L
b
, L
c
L
d
, L
a
, L
c
.
Capitolul 2
Limbaje regulate
2.1 Automate nite si limbaje regulate
Automate nite. Automatele nite sunt mecanisme pentru recunoasterea
limbajelor de tipul 3 (regulate). Un automat nit (AF) se compune dintr-o
banda de intrare si un dispozitiv de comanda.
Pe banda de intrare sunt nregistrate simboluri ale unui alfabet de in-
trare, constituind pe banda un cuvant p. La ecare pas de funct ionare
banda se deplaseaza cu o pozit ie spre stanga.
Dispozitivul de comanda poseda un dispozitiv de citire de pe banda;
dispozitivul se aa permanent ntr-o anumita stare interna, element al unei
mult imi nite de stari. Schema unui automat nit este redata n gura 2.1.
Automatul nit funct ioneaza n pasi discret i. Un pas de funct ionare
consta din: dispozitivul de comanda citeste de pe banda de intrare simbolul
aat n dreptul dispozitivului de citire; n funct ie de starea interna si de
simbolul citit, automatul trece ntr-o noua stare si muta banda cu o pozit ie
spre stanga. Automatul si nceteaza funct ionarea dupa ce s-a citit ultimul
simbol nregistrat pe banda; n acest moment el se va aa ntr-o anumita
stare, care, dupa cum vom vedea, va juca un rol important n recunoasterea
cuvintelor.
Din punct de vedere matematic, un automat nit este un sistem
AF = (, I, f, s
0
,
f
),
unde
este mult imea de stari;
I este alfabetul de intrare;
f : I T() este funct ia de evolut ie;
s
0
este starea init iala;
24 CAPITOLUL 2. LIMBAJE REGULATE
s S
i
1
i
2
i
3
. . .
i
k
. . .
i
n1
i
n Banda de intrare
Dispozitiv de citire
Dispozitiv de comanda
f
este mult imea de stari nale.
Daca pentru orice (s, i) I, avem [f(s, i)[ 1 automatul se numeste
determinist; n caz contrar se numeste nedeterminist.
Observat ii:
(1) T() este mult imea part ilor lui ; deoarece T() este posibil ca
pentru un anumit s S si i I sa avem f(s, i) = .
(2)
In cazul unui automat determinist vom scrie f(s, i) = s
(n loc de
f(s, i) s
.
(3) Denit ia data este specica teoriei limbajelor formale. O alta denit ie
(mai generala) , ntalnita n teoria automatelor este urmatoarea: un au-
tomat nit este un sistem AF = (, I, O, f, g, s
0
, F) unde, , I, f, s
0
, F au
semnicat ia de mai sus, O este alfabetul de iesire iar g : I T(O) este
funct ie de iesire. Funct ionalitatea unui astfel de automat nit este analoaga
cu cea descrisa mai sus, cu deosebirea ca la ecare pas automatul furnizeaza
o iesire o g(s, i).
Funct ionarea unui automat nit se poate bloca n situat ia n care el se
aa n starea s, citeste de pe banda simbolul i si f(s, i) = ; evident ca n
acest caz funct ionarea n continuare nu mai este posibila.
Prin diagrama de stari a unui automat nit nt elegem un graf orientat
care are nodurile etichetate cu starile s iar arcele se construiesc astfel:
nodurile s, s
_
`
_
`
_
'
`
-
i
1
i
1
i
2
s
1
s
0
s
2
i
1
, i2
i
1
i
2
`
i
2
s
0
, s
1
s
0
, s
1
deci f : T() I
T(), astfel:
(a) f(s, ) = s, s ,
(b) f(, i) = , i I,
(c) f(Z, i) =
sZ
f(s, i), Z T(), Z ,= ,
(d) f(Z, pi) = f(f(Z, p), i).
Sa observam ca relat iile de mai sus constituie o denit ie prin recurent a,
corecta; ind dat f, putem deni mai ntai toate valorile f(Z, i) (un numar
nit, deoarece I este o mult ime nita), apoi f(Z, p) pentru [p[ = 2, n
continuare f(Z, p) pentru [p[ = 3, etc.
Proprietat ile funct iei f:
1. Daca Z
k
este o familie de part i a lui , avem
f(
_
k
Z
k
, i) =
_
k
f(Z
k
, i)
Demonstrat ie. Utilizand (c) putem scrie
_
k
f(Z
k
, i) =
_
k
(
_
sZ
k
f(s, i)) =
_
sZ
k
f(s, i) = f(
_
k
Z
k
, i).2
2. f(Z, p) =
sZ
(f(s, p)), p I
.
Demonstrat ie. Prin induct ie asupra lungimii lui p.
26 CAPITOLUL 2. LIMBAJE REGULATE
Pentru [p[ = 1 avem f(Z, i) =
sZ
f(s, i), adica (c).
Presupunem ca relat ia este adevarata pentru [p[ = m si consideram un
p astfel ncat [p[ = m+ 1, deci p = p
i, [p
[ = m. Putem scrie
f(Z, p) = f(Z, p
i) = f(f(Z, p
), i) = f(
sZ
f(s, p
), i) =
=
sZ
f(f(s, p
), i) =
sZ
f(s, p
i) =
sZ
f(s, p).
2
3. f(s, pq) = f(f(s, p), q), p, q I
.
Demonstrat ie. Induct ie asupra lungimii lui q.
Daca [q[ = 1, atunci q = i si relat ia se reduce la (d).
Presupunem ca proprietatea este adevarata pentru r si consideram [q[ =
r + 1. Deci q = q
i. Avem
f(s, pq) = f(s, pq
i) = f(f(s, pq
), i) = f(f(f(s, p), q
), i) =
= f(f(s, p), q
, f(s
0
, p)
f
,=
Deci p L(AF) daca automatul aandu-se n starea init iala s
0
, dupa
[p[ pasi de funct ionare poate sa ajunga ntr-o stare nala.
T() prin f
s
(p) = f(s, p).
Atunci
f(s
0
, p)
f
,= f(s
0
, p) = f
s
0
(p)
f
,
deci
L(AF) = p[f(s
0
, p)
f
,= = f
1
s
0
(
f
)
Limbajele recunoscute de automate nite le vom numi limbaje regulate;
familia acestor limbaje o vom nota cu 1. Evident, familia limbajelor re-
cunoscute de automate nite deterministe, 1
d
, este o parte a lui 1, 1
d
1.
Vom arata ca cele doua familii coincid.
Teorema 2.1 1
d
= 1.
Demonstrat ie. Fie AF = (, I, f, s
0
,
f
) un automat nit (n general
nedeterminist). Construim urmatorul automat nit determinist AF
=
(
, I, f
, s
0
,
f
) unde
= T(), f
= f (prelungirea la T() I
),
f
= Z[ Z T(), Z
f
,= .
2.1. AUTOMATE FINITE SI LIMBAJE REGULATE 27
Evident, automatul AF
este determinist.
Fie p L(AF). Atunci f(s
0
, p)
f
,= si f(s
0
, p)
f
. Pe de alta
parte, conform cu proprietatea 2 a funct iei de evolut ie, avem
f
(s
0
, p) = f(s
0
, p)
si deci f(s
0
, p)
f
, adica p L(AF
) si L(AF) L(AF
).
Pe o cale analoaga se arata ca L(AF
) L(AF).2
Observat ie. Faptul ca un cuvant este recunoscut de un automat nit se
poate verica prin calcul direct sau pe diagrama de stari.
Exemplu. Consideram automatul din exemplul anterior si e p = i
1
i
2
i
1
.
Prin calcul direct:
f(s
0
, i
1
i
2
i
1
) = f(f(f(s
0
, i
1
), i
2
), i
1
) = f(f(s
1
, i
2
), i
1
) =
= f(s
0
, s
1
, i
1
) = f(s
0
, i
1
) f(s
1
, i
1
) = s
1
s
2
.
Astfel ca f(s
0
, i
1
i
2
i
1
)
f
= s
2
, = si p L(AF).
Pe diagrama de stari exista traiectoriile:
s
0
i
1
s
1
i
2
s
0
i
1
s
1
;
s
0
i
1
s
1
i
2
s
1
i
1
s
2
;
A doua traiectorie ne duce ntr-o stare nala, deci p L(AF).
Limbaje de tipul trei si limbaje regulate. Vom arata n cele ce
urmeaza ca familia limbajelor de tipul 3 coincide cu familia limbajelor re-
gulate.
In prealabil vom pune n evident a o forma speciala a limbajelor de
tipul 3, pe care convenim sa o numim forma normala.
Denit ie 2.2 Vom spune ca o gramatica de tipul 3 este n forma normala
daca are reguli de generare de forma
_
A iB,
C j,
unde A, B, C V
N
, i, j V
T
sau regula de completare S si n acest caz S nu apare n dreapta vreunei
reguli.
Lema 2.1 Orice gramatica de tipul 3 admite o forma normala.
Demonstrat ie. Daca G = (V
N
, V
T
, S, P) este gramatica data, eliminam
n primul rand regulile de stergere (teorema de la ierarhia Chomsky) apoi
construim gramatica G
= (V
N
, V
T
, S, P
), unde V
N
si P
se denesc astfel:
28 CAPITOLUL 2. LIMBAJE REGULATE
introducem n V
N
toate simbolurile din V
N
iar n P
regulile:
A i
1
Z
1
,
Z
1
i
2
Z
2
,
. . . ,
Z
n1
i
n
B,
iar simbolurile Z
1
, . . . Z
n1
le includem in V
N
.
).2
Teorema 2.2 Familia limbajelor de tipul 3 coincide cu familia limbajelor
regulate.
Demonstrat ie. Partea I: E L
3
E 1.
Fie E un limbaj de tipul 3 si G = (V
N
, V
T
, S, P) gramatica care l
genereaza; putem presupune ca G este n forma normala. Construim au-
tomatul nit AF = (, I, f, s
0
,
f
) unde = V
N
X ( X simbol nou),
I = V
T
, s
0
= S si
f
=
_
X, S , pentru P
X , pentru , P
Funct ia de evolut ie este denita de:
daca A iB P luam B f(A, i),
daca C j P luam X f(C, j),
n rest
Observat ie. Automatul astfel denit este n general nedeterminist. De e-
xemplu, daca A 0B[0 atunci f(A, 0) = B, X.
Fie p L(G), p = i
1
. . . i
n
, deci S
p. Detaliat, aceasta derivare va avea
forma
(1) Si
1
A
1
i
1
i
2
A
2
i
1
i
2
. . . i
n1
A
n1
i
1
i
2
. . . i
n
.
S-au aplicat regulile:
2.2. PROPRIET
,
unde
E
este funct ia caracteristica a lui E, este de rang nit.
Demonstrat ie: Vom arata urmatoarele implicat ii: (a) (b), (b) (c), (c)
(a).
(a) (b).
Fie AF = (, I, f, s
0
,
f
) automatul nit care recunoaste limbajul E.
Denim pe I
relat ia
= (p, q)[f(s, p) = f(s, q), s .
Se poate vedea cu usurint a ca este o relat ie de echivalent a (reexiva ,
simetrica , tranzitiva).
In plus , daca r I
/ este nita.
Fie : o aplicat ie oarecare si e mult imea
I
() = p[p I
, f(s, p) = (s), s .
Sa observam ca daca este funct ia identica atunci I
(). Deci
nu toate I
Intr-adevar, e p I
() I
xat si e C
p
clasa de echivalent a a lui p.
Aratam ca C
p
= I
(). Daca q I
() C
p
. Invers daca q C
p
atunci f(s, q) = f(s, p) = (s), s si
q I
(), adica C
p
I
() = C
p
, adica I
()
este o clasa de echivalent a .
/
este nita, adica congruent a este de rang nit.
Fie acum p L(AF) si q astfel ca (p, q) . Avem
f(s
0
, q) = f(s
0
, p)
f
;
adica q L(AF). Aceastanseamna ca odata cu elementul p, L(AF) cont ine
clasa de echivalent a a lui p. De aici rezulta ca L(AF) este constituit dintr-un
anumit numar de clase de echivalent a a lui .2
(b)(c)
Fie o congruent a de rang nit si E o reuniune de clase de echivalent a.
Fie apoi (p, q) ; aceasta nseamna ca r
1
pr
2
E r
1
qr
2
E, deci
E
(r
1
pr
2
) =
E
(r
1
qr
2
), r
1
, r
2
I
.
Prin urmare, (p, q) . Orice clasa de echivalent a din I
/ este inclusa
ntr-o clasa de echivalent a din I
/) < card(I
/),
adica congruent a este de rang nit.2
(c) (a)
Presupunem ca este o congruent a de rang nit; consideram automatul
nit AF = (I
/, I, f, C
,
f
), unde funct ia de evolut ie f si mult imea de
stari nale sunt
f(C
p
, i) = C
pi
,
f
= C
p
[p E.
Vom arata ca E = L(AF).
In primul rand sa observam ca f(C
p
, q) = C
pq
(se poate arata prin induct ie asupra lui [q[). Avem
p E C
p
f
f(C
, p) = C
p
= C
p
f
p L(AF)
adica E = L(AF) si E este un limbaj regulat.2
Corolar 2.4 Familia R este nchisa la operat ia de rasturnare.
Demonstrat ie. Fie E 1 si
E rasturnatul lui E. Conform teoremei de
caracterizare, card(I
/
E
) < . Avem
(p, q)
E
E
(r
1
pr
2
) =
E
(r
1
qr
2
)
si
E
( r
1
p r
2
) =
E
( r
1
q r
2
) ( p, q)
E
32 CAPITOLUL 2. LIMBAJE REGULATE
Cu alte cuvinte daca C este o clasa de echivalent a a lui
E
atunci
C
(rasturnatul lui C) este o clasa de echivalent a a lui
E
. Aceasta nseamna
ca card(I
/
E
) = card(I
/
E
) < si conform aceleiasi teoreme de carac-
terizare
E 1.2
Observat ie. Am vazut ca limbajele de tipul 3 pot denite de gra-
matici cu reguli de doua categorii: drept liniare sau stang liniare. Este
evident ca limbajele stang liniare sunt rasturnatele limbajelor drept liniare.
Cum familia limbajelor regulate (drept liniare) este nchisa la operat ia de
rasturnare, rezulta ca cele doua familii de limbaje coincid.
Inchiderea familiei L
3
la operat iile Pref si complementariere.
Operat iile Pref si complementariere se denesc n modul urmator
Pref(E) = p[r I
, pr E, C(E) = I
E.
Teorema 2.5 Familia L
3
este nchisa la operat iile Pref si complemen-
tariere.
Demonstrat ie. Fie AF = (, I, f, s
0
,
f
) automatul nit care recunoaste
limbajul E. Putem presupune ca AF este determinist.
Limbajul Pref(E). Construim automatul nit AF
= (, I, f, s
0
,
f
)
unde
f
= s [s = f(s
0
, q), q Pref(E).
Este evident ca Pref(E) L(AF
f
conform denit iei lui
f
.
Sa aratam acum ca L(AF
), atunci
f(s
0
, q)
f
, deci exista q Pref(E) astfel ncat f(s
0
, r) = f(s
0
, q).
Cum q este prexul unui cuvant din E, exista w I
astfel ncat qw E,
adica f(s
0
, q)
f
. Dar
f(s
0
, rw) = f(f(s
0
, r), w) = f(f(s
0
, q), w) = f(s
0
, qw)
f
,
deci rw E si r Pref(E). Aceasta nseamna ca L(AF
) Pref(E) si
prin urmare Pref(E) = L(AF
[p , E = p I
[f(s
0
, p) ,
f
= p I
, f(s
0
, p) C(
f
).
Prin urmare C(E) = L(AF
c
) unde AF
c
= (, I, f, s
0
, C(
f
), adica C(E)
este un limbaj regulat.2
2.3. LEMA DE POMPARE PENTRU LIMBAJE REGULATE 33
,
,
,
,
,
,
,
s
0
s
1
s
j1
s
j
s
k
s
k1
s
j+1
s
k+1
s
n1
s
n
i
n
i
k+1
i
j
i
1
i
k
i
j+1
Figura 2.3: Traiectoria automatului nit
2.3 Lema de pompare pentru limbaje regu-
late
Sub aceasta denumire (sau lema uvw) este cunoscuta o proprietate a lim-
bajelor regulate (ca si a altor familii de limbaje) care ne premit sa des-
compunem cuvintele sucient de lungi ale limbajului n forma uvw si sa
multiplicam subcuvantul v de un numar arbitrar de ori, obt inand cuvinte
care apart in de asemenea limbajului. Cu alte cuvinte, putem sa pompam
n cuvantul dat o anumita parte a sa. Astfel de leme se utilizeaza deseori
pentru a rezolva probleme de neapartenent a, adica pentru a arata ca un
anumit limbaj nu apart ine unei familii date de limbaje.
Lema 2.2 Fie E un limbaj regulat si AF = (, I, f, s
0
,
f
) automatul nit
care l recunoaste. Daca p E si [p[ card() atunci p se descompune n
forma p = uvw, v ,= si uv
m
w E, m N.
Demonstrat ie. Fie p = i
1
. . . i
n
, n card(); e s
0
, s
1
, . . . , s
n
starile par-
curse de automat la citirea cuvantului p. Atunci, s
j
= f(s
j1
, i
j
), j =
1, n, s
n
f
. Exista n mod necesar doua stari egale, s
j
= s
k
, j < k.
Traiectoria va avea o bucla (vezi gura 2.3).
Descompunem cuvantul p n forma p = uvw unde u = i
1
. . . i
j
, v =
i
j+1
. . . i
k
, w = i
k+1
. . . i
n
. Este clar ca v ,= , caci j < k. Pe de alta parte,
putem parcurge traiectoria facand de mai multe ori bucla, adica
f(s
0
, uv
m
w) = s
n
f
.
Prin urmare uv
m
w E.2
Consecint a 2.3 Incluziunea L
3
L
2
este stricta.
34 CAPITOLUL 2. LIMBAJE REGULATE
In adevar, e limbajul L
2
= 0
n
1
n
[n 1. Stim ca acest limbaj este de tipul
2 si ca poate generat de gramatica G = (A, 0, 1, A, A 0A1[01).
Sa aratam ca L
2
nu este de tipul 3.
Sa presupunem ca L
2
este de tipul 3 si e AF = (, I, f, s
0
,
f
) au-
tomatul nit care l recunoaste. Cum L
2
cont ine cuvinte oricat de lungi,
e p L
2
astfel ncat p card(). Conform lemei de pompare, p se des-
compune n forma p = uvw, v ,= si uv
m
w E. Putem avea una din
situat iile:
(1) p = 0 . . . 0
. .
u
0 . . . 0
. .
v
0 . . . 01 . . . 1
. .
w
,
(2) p = 0 . . . 01 . . . 1
. .
u
1 . . . 1
. .
v
1 . . . 1
. .
w
,
(3) p = 0 . . . 0
. .
u
0 . . . 1
. .
v
1 . . . 1
. .
w
.
Primele doua cazuri nu pot avea loc deoarece multiplicandu-l pe v, numarul
de simboluri 0 si 1 nu s-ar pastra egal.
In al treilea caz, luand de exemplu,
m = 2 obt inem
p
2
= 0 . . . 00 . . . 10 . . . 11 . . . 1 L
2
ceea ce din nou nu este posibil, ntrucat se contrazice structura cuvintelor
lui L
2
. Prin urmare L
2
nu este de tipul 3.2
Observat ie. Este interesant de observat ca limbajele simple de forma lui
L
2
sunt semnicative pentru clasele din clasicarea Chomsky. Astfel
L
1
= a
n
[n 1, L
1
L
3
;
L
2
= a
n
b
n
[n 1, L
2
L
2
, L
2
, L
3
;
L
3
= a
n
b
n
c
n
[n 1, L
3
L
1
(?), L
3
, L
2
;
Ne-am putea astepta ca limbajul L
3
, un exemplu analog lui L
2
, sa e de tip
1, adica L
3
L
1
, L
3
, L
2
.
In adevar, se poate arata ca L
3
, L
2
, dar dupa
cunostint a autorului, aparent a L
3
L
1
este o problema deschisa.
Consecint a 2.4 Fie E un limbaj regulat si AF = (, I, f, s
0
,
f
) automatul
nit care l recunoaste. Atunci E este innit daca si numai daca exista
p E astfel ncat [p[ card().
Daca limbajul este innit, este clar ca exista p E cu [p[ card().
Invers, daca exista p E cu [p[ card() atunci p = uvw, v ,= si
uv
m
w E, m N, deci limbajul este innit.2
2.4. EXPRESII REGULATE 35
2.4 Expresii regulate
Expresii regulate si limbaje reprezentate Fie V un alfabet. Expresi-
ile regulate sunt cuvinte peste alfabetul V , , [, unde simbolurile su-
plimentare introduse le vom considera operatori:[-sau, -produs, -
nchidere. Expresiile regulate se denesc astfel:
(1) este o expresie regulata;
(2) pentru orice a V , cuvantul a este o expresie regulata;
(3) daca R si S sunt expresii regulate, atunci R[S R S si R
sunt
expresii regulate.
Pentru a pune n evident a ordinea de aplicare a operatorilor vom uti-
liza paranteze; de exemplu (R[S) P. Vom considera ca operatorul are
ponderea cea mai mare, apoi operatorul si [ ponderea cea mai mica. Deci
prin R[S
).
Observat ie. Expresiile regulate se pot deni cu ajutorul gramaticii G =
(E, T, F, V [, , , (, ), E, P) unde
P =
_
_
E E[T | E T | T,
T T
| F
F (E) | a | .
Unei expresii regulate i putem asocia un anumit limbaj peste V ; vom spune
ca expresia regulata reprezinta (desemneaza, noteaza) acel limbaj. Modul
n care asociem un limbaj unei expresii regulate este
(1) reprezinta limbajul ,
(2) a reprezinta limbajul a,
(3) daca R si S sunt expresii regulate si reprezinta respectiv limbajele
L
R
si L
S
atunci
(i) R[S reprezinta limbajul L
R
L
S
;
(ii) R S reprezinta limbajul L
R
L
S
;
(iii) R
reprezinta limbajul (L
R
)
.
Fie R, S, P trei expresii regulate si L
R
, L
S
, L
P
limbajele reprezentate.
Avem :
L
(R|S)|P
= (L
R
L
S
) L
P
= L
R
(L
S
L
P
) = L
R|(S|P)
,
ntrucat operat ia de reuniune este asociativa. Vom scrie (R[S)[P = R[(S[P).
; L =
j=0
a
j
= , a, a
2
, . . ..
2. R = aa
; L = a , a, a
2
, . . . = a, a
2
, a
3
. . ..
3. R = (a[b)
; L = (L
a
L
b
)
= (a b)
= a, b
;
a, b
= a, b
1
a, b
2
. . . = , a, b, aa, ab, ba, bb, . . .,
adica (a[b)
; L = a b , a, a
2
, . . . = a, b, ba, ba
2
, . . ..
Limbajele reprezentate de expresii regulate constituie o anumita familie de
limbaje; o vom nota cu L
lr
. Apare urmatoarea problema: care este pozit ia
acestei familii n ierarhia Chomsky? Vom arata ca L
lr
coincide cu familia
limbajelor regulate.
2.5 Sisteme tranzit ionale
Denit ie 2.3 Un sistem tranzit ional este un sistem de forma
ST = (, I, f,
0
,
f
, )
unde:
este o mult ime (nita) de stari;
I este alfabetul de intrare;
f : I T() este funct ia de tranzit ie;
0
este mult imea de stari init iale;
f
este mult imea de stari nale;
este relat ia de tranzit ie .
Exemplu. = s
0
, s
1
, s
2
, I = 0, 1,
0
= s
0
, s
1
,
f
= s
2
iar
funct ia si relat ia de tranzit ie sunt date de:
f s
0
s
1
s
2
0 s
1
s
2
s
0
1 s
0
, s
1
s
0
, s
2
= (s
0
, s
1
), (s
2
, s
1
).
Ca si n cazul unui automat nit putem construi diagrama de stari com-
pletata cu relat ia (arcele punctate).
In cazul exemplului nostru diagrama
de stari este prezenta n gura ??
2.5. SISTEME TRANZIT IONALE 37
Observat ie: ind o relat ie, are sens
n starea s
daca:
(1) i = si (s
, s
la starea s
;
s
O O . . . O s
.
(2) i ,= si exista s
1
, s
2
astfel ncat (s
, s
1
) , s
2
f(s
1
, i)
si (s
2
, s
n s
pe o
traiectorie punctata, apoi un pas pe un arc plin si din nou pe o traiectorie
punctata.
s
O . . . s
1
i
s
2
O . . . s
.
Vom scrie s
i
s
.
Fie acum p = i
1
. . . i
n
. Vom spune ca sistemul evolueaza din starea s
n
starea s
daca exista s
0
, s
1
, . . . , s
n
astfel ncat
s
= s
0
i
1
s
1
i
2
. . .
i
n
s
n
= s
.
Vom scrie s
p
s
.
Denit ie 2.4 Limbajul recunoscut de un sistem tranzit ional ST este
L(ST) = p[p I
, s
0
0
, s
0
p
s, s
f
.
Vom nota cu L
ST
familia limbajelor recunoscute de sisteme tranzit ionale.
Este evident ca orice automat nit este un sistem tranzit ional particular
n care card(
0
) = 1 iar = (nu exista arce punctate). Prin urmare
1 L
ST
.
Teorema 2.6 1 = L
ST
.
Demonstrat ie. Evident, trebuie sa aratam incluziunea L
ST
1. Fie ST =
(, I, f,
0
,
f
, ) un sistem tranzit ional. Construim automatul nit AF =
(T(), I, f
,
0
,
f
) unde
f
(Z, i) = s[s
Z, s
i
s,
f
= Z[Z
f
,= .
38 CAPITOLUL 2. LIMBAJE REGULATE
Fie p = i
1
. . . i
n
L(ST) si e urmatoarea evolut ie a sistemului tranzit ional
s
0
i
1
s
1
i
2
. . .
i
n
s
n
f
.
Putem construi o traiectorie a lui AF de forma
0
i
1
Z
1
i
2
. . .
i
n
Z
n
,
unde Z
1
= f
(
0
, i
1
), Z
k
= f
(Z
k1
, i
k
), k = 2, . . . , n. Sa observam ca
s
0
0
si ca dac a s
k1
Z
k1
, atunci conform denit iei funct iei f
, avem
s
k
f
(Z
k1
, i
k
) = Z
k
. Asftel, s
k
Z
k
, k = 1, . . . , n; pentru k = n avem
s
n
Z
n
si cum s
n
f
rezulta ca Z
n
f
,= , adica Z
n
f
. Deci
automatul ajunge ntr-o stare nala, p L(AF) si L(ST) L(AF).
Incluziunea inversa se arata n mod analog.2
Construct ia sistemelor tranzit ionale pentru expresii regulate. Fi-
ind data o expresie regulata putemntotdeauna construi un sistem tranzit ional
care recunoaste limbajul reprezentat de expresia respectiva.
Construct ia se face cu ajutorul diagramelor de stari.
Sistemele tranzit ionale (diagramele de stari) corespunzatoare expresiilor
regulate , a si sunt prezentate n gura ??.
Daca R si S sunt expresii regulate si notam cu ST
R
si ST
S
sistemele
tranzit ionale corespunzatoare, atunci sistemele tranzit ionale pentru R[S,
R S si R
este
redat n gura ??.
Consecint a D andu-se o expresie regulata, putem construi sistemul tran-
zit ional care recunoaste limbajul reprezentat de expresia respectiva. Cum
orice limbaj recunoscut de un sistem tranzit ional este regulat, rezulta ca
limbajele reprezentate de expresii regulate sunt limbaje regulate.
1. Construit i automate nite pentru recunoasterea limbajelor:
(a) L = PSDR, PNL, PUNR;
(b) L = w[ siruri de 0 si 1 terminate cu 1 ;
(c) L = w[w identicator PASCAL ;
(d) L = w[w constanta ntreaga cu semn n PASCAL ;
(e) L = w 0, 1
[w multiplu de 3 ;
(f) L = a
i
b
j
[i, j > 0;
(g) L = .
2.5. SISTEME TRANZIT IONALE 39
2. Construit i automate nite echivalente cu gramaticile de tipul trei de
la problema 1 capitolul 1.
3. Construit i automate nite deterministe echivalente cu cele nedeter-
ministe obt inute la problema precedenta.
4. Gasit i gramatici regulate echivalente cu automatele de la problema 1.
5. Folosind lema de pompare pentru limbaje regulate dovedit i ca urmatoarele
limbaje nu sunt regulate:
(a) L = 0
i
2
[i 1;
(b) L = 0
2
n
[n 1;
(c) L = 0
n
[n este numar prim ;
(d) L = 0
m
1
n
0
m+n
[m 1, n 1;
6. Specicat i limbajele denotate de urmatoarele expresii regulate:
(a) (11 + 0)
(00 + 1)
;
(b) (1 + 01 + 001)
( + 0 + 00);
(c) 10 + (0 + 11)0
1;
(d) ((0 + 1)(0 + 1))
;
(e) 01
+ 1;
(f) ((11)
+ 101)
.
7. Construit i sisteme tranzit ionale ce recunosc limbajele specicate la
problema precedenta. Pentru ecare sistem tranzit ional construit i un
automat nit determinist echivalent.
40 CAPITOLUL 2. LIMBAJE REGULATE
Capitolul 3
Limbaje independente de
context
3.1 Arbori de derivare
Caracterizarea limbajelor independente de context cu ajutorularborilor de derivare.
Una din caracteristicile de baza ale limbajelor independente de context este
aceea ca o derivare ntr-un astfel de limbaj poate reprezentata de un ar-
bore, numit in acest context arbore de derivare. Aceasta reprezentare este
importanta n mod special pentru faptul ca permite o imagine intuitiva
simpla a unei derivari si deci posibilitatea de a lucra usor cu limbaje de
tipul 2.
Vom prezenta n primul rand cateva not iuni elementare de teoria grafu-
rilor, cu scopul de a preciza notat iile si terminologia.
Un graf orientat ( este o pereche ( = (V, ) unde V este o mult ime
nita iar o aplicat ie : V T(V ). Mult imea V se numeste mult imea
varfurilor (nodurilor) grafului iar daca v
2
(v
1
), perechea (v
1
, v
2
) este un
arc n graf; v
1
este originea iar v
2
este extremitatea arcului. Un drum de la
vrful v
la varful v
= v
1
si v
= v
n
. Numarul n 1 este lungimea drumului. Un drum
pentru care v
1
= v
n
se numeste circuit. Un circuit de lungime 1 poarta
numele de bucla.
Denit ie 3.1 Un arbore este un graf fara circuite, cu card(V ) 2 si care
satisface urmatoarele doua condit ii :
1. v
0
V astfel ncat v
0
, (v), v V ; v
0
se numeste radacina
arborelui;
42 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
_
v
1
v
3
v
4
v
0
v
2
Nivel 0
Nivel 1
Nivel 2
Figura 3.1: Reprezentarea graca a arborelui ( = (V, )
2. v V v
0
, !w cu v (w); altfel spus orice varf diferit de v
0
este extremitatea unui singur arc.
Exemplu. V = v
0
, v
1
, v
2
, v
3
, v
4
iar funct ia este data de:
x v
0
v
1
v
2
v
3
v
4
(x) v
1
, v
2
v
3
, v
2
Reprezentarea n plan a acestui arbore este data in gura 4.1
Nodurile v pentru care (v) = se numesc noduri terminale (nale);
celelalte se numesc interne. Mult imea nodurilor terminale constituie fron-
tiera arborelui.
In general vom nota un arbore cu litere mari, specicnd ca
indici radacina si frontiera; de exemplu /
v
0
, v
1
v
2
v
3
. Un arbore comporta mai
multe ramuri; n exemplu avem urmatoarele ramuri : v
0
v
1
, v
0
v
2
v
3
, v
0
v
2
v
4
.
Fie G = (V
N
, V
T
, S, P) o gramatica de tipul 2.
Denit ie 3.2 Un arbore de derivare n gramatica G este un arbore cu
urmatoarele doua proprietat i .
(1) Nodurile sunt etichetate cu elementele din V
G
;
(2) Daca un nod v are descendent i direct i v
1
, . . . , v
n
atunci
v v
1
v
2
. . . v
n
P.
Exemplu. G = (A, B, a, b, A, P) unde
P = A aBA[Aa[a, B AbB[ba[abb.
3.1. ARBORI DE DERIVARE 43
_
_ _ _
_
_
_
_ _
_
_ _
_
_
_
_ _
_
_
_
A A
a
a
B
B
A A
A A b
b
B B a
a
a
a
b
b
a
a
Varianta 1 Varianta 2
Figura 3.2: Variante de reprezentare a arborelui /
A, aabbaa
`
_
`
_
`
_
`
_
. . .
X
i
1
i
2 i
n
(A)
Figura 3.3: Arbore corespunzator unei derivari directe
Arborele /
A, aabbaa
reprezentat n gura 4.2 (Varianta 1) este un arbore
de derivare (poate desenat coborand frontiera pe nivelul ultim , Varianta
2):
Teorema 3.1 Fie G o gramatica de tipul 2. Atunci X
p daca si numai
daca exista un arbore /
X, p
.
Demonstrat ie. X
p implica /
X, p
.
Procedam prin induct ie asupra lungimii derivarii l.
Daca l = 1, X p = i
1
. . . i
n
si X i
1
. . . i
n
P. Arborele din gura 4.3
corespunde cerint elor teoremei.
44 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
`
_
`
_
`
_
`
_
. . .
X
X
1
X
2 X
m
. . .
p
1
p
2
. . .
p
m
Figura 3.4: Construct ia arborelui /
X,p
1
...p
m
.
Presupunem ca proprietatea este adevarata pentru derivari de lungime l
si consideram o derivare de lungime l +1, X
p. Punem n evident a prima
derivare directa
XX
1
. . . X
n
p
Conform lemei de localizare, p = p
1
. . . p
n
si X
j
p
j
, j = 1, m. Putem face
urmatoarea construct ie: conform ipotezei inductive, ecarei derivari X
j
p
j
i corespunde cate un arbore /
X
j
,p
j
; unim apoi toate nodurile X
j
n nodul
X plasat la nivelul zero. Obt inem astfel un arbore /
X,p
1
...p
m
= /
X,p
(vezi
gura 4.4) care corespunde cerint elor teoremei.
Pentru implicat ia , /
X,p
X
p, se parcurge o cale inversa, facand o
induct ie asupra numarului de nivele. De exemplu, daca acest numar este 2,
arborele de derivare trebuie sa arate ca n 4.3 si deci avem X i
1
i
2
. . . i
n
=
p P si X
p, etc. 2
3.2 Decidabilitate si ambiguitaten familia L
2
.
Decidabilitate. Problemele de decidabilitate sunt acele probleme n care
se cere sa decidem daca un anumit fapt are sau nu loc. De obicei aceste
probleme se rezolva prin construirea unui algoritm de decizie.
3.2. DECIDABILITATE SI AMBIGUITATE
IN FAMILIA L
2
. 45
S
v
1
= x
v
2
= x
r
1
p
2
r
2
p
1
Figura 3.5:
Exemplu Fie gramatica
G = (A, B, C, a, b, A, A aA[bB[C, B abA[aC, C aabA).
Se poate usor vedea ca L(G) = (nu putem elimina neterminalele).
Problema: Putem decide n general daca limbajul generat de o gramatica
de tipul 2 este vid sau nu?
Teorema 3.2 Faptul ca limbajul generat de o gramatica de tipul 2 este
nevid este decidabil.
Demonstrat ie. Vom construi un algoritm cu ajutorul caruia se poate decide
daca limbajul generat de o gramatica de tipul 2 este vid sau nu.
Presupunem ca limbajul nu este vid, L(G) ,= si e p L(G). Exista
arborele /
S,p
. Sa presupunem ca n acest arbore exista un drum cu doua
noduri interne etichetate cu acelasi simbol, v
1
= v
2
= X. Descompunem
arborele ca n gura 4.5
Avem p = r
1
p
1
r
2
; evident p
2
Sub(p
1
). Efectuam urmatoarea modi-
care: scoatem subarborele /
v
1
,p
1
= /
X,p
1
sil nlocuim cu subarborele
/
v
2
,p
2
= /
X,p
2
; obt inem n acest fel un arbore /
S, r
1
p
2
r
2
(care este ntr
adevar un arbore de derivare). Conform cu teorema de caracterizare a
46 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
limbajelor de tipul 2, avem S
r
1
p
2
r
2
L(G). Dar arborele corespunzator
nu mai cont ine perechea v
1
, v
2
de noduri etichetate cu acelasi simbol X.
Repetand procedeul, eliminam pe rand nodurile de pe aceleasi ramuri
etichetate identic.
In nal vom obt ine un arbore /
S, q
, q L(G) care
are proprietatea ca pe orice ramura nodurile sunt etichetate cu simboluri
distincte. T inand cont ca orice ramura are toate nodurile etichetate cu sim-
boluri neterminale cu except ia ultimului (de pe frontiera) care este etichetat
cu un simbol terminal, rezulta ca n /
S, q
orice ramura cont ine cel mult
card(V
N
)+1 noduri. Dar mult imea unor astfel de arbori este nita; obt inem
urmatorul algoritm de decizie:
Construim tot i arborii cu radacina S si care au proprietatea de mai sus;
daca printre acestia se gaseste un arbore cu frontiera constituita numai din
terminale, atunci L(G) ,= (evident) iar daca nici unul din acesti arbori nu
au frontiera constituita numai din terminale, atunci L(G) = . 2
Ambiguitate. Fie G o gramatica de tipul 2. O derivare S = u
0
u
1
. . . u
n
n care la ecare derivare directa se nlocuieste simbolul
neterminal cel mai din stanga (dreapta) se numeste derivare extrem stanga
(dreapta). Sa observam ca n particular ntr-o gramatica de tipul 3 orice
derivare este extrem dreapta (scrierea drept liniara).
Denit ie 3.3 O gramatica G de tipul 2 n care exista un cuvant p L(G)
care se poate obt ine cu doua derivari extrem stangi (drepte) distincte, se
numeste ambigua. In caz contrar este neambigua.
Exemplu. Gramatica A aBA[Aa[a, B AbB[ba[abb este ambigua.
Intr-adevar, avem
AaBAaBaaAbBaaAbbaaaabbaa;
AAaaBAaaBaaaabbaa.
Denit ie 3.4 Un limbaj este ambigu daca toate gramaticile care l genereaza
sunt ambigue.
In caz contrar (adica daca exista o gramatica neambigua care
sa l genereze) limbajul este neambigu.
Daca G este ambigua si p L(G) este un cuvant care se poate obt ine cu
doua derivari extrem stangi distincte, atunci exista arborii /
S, p
si /
S, p
,
diferit i, dar care au aceiasi radacina si frontiera.
Teorema 3.3 Daca L
1
si L
2
sunt limbaje disjuncte neambigue, atunci L
1
L
2
este neambigu.
Demonstrat ie. Fie G
k
= (V
N
k
, V
T
k
, S
k
, P
k
), k = 1, 2 doua gramatici de tipul
2 neambigue si e G = (V
N
1
V
N
2
, V
T
1
V
T
2
, S, P
1
P
2
S S
1
[S
2
)
gramatica ce genereaza limbajul L(G
1
) L(G
2
).
3.3. FORME NORMALE PENTRU GRAMATICI DE TIPUL 2 47
Sa presupunem ca L(G) este ambigua. Atunci exista p L(G) care se
poate obt ine cu doua derivari extreme stangi diferite. Sa presupunem ca
p L(G
1
), p , L(G
2
). Atunci obt inem doua derivari distincte n gramatica
G
(1) S
G
S
1
G
p, deci S
1
G
1
p;
(2) S
G
S
1
G
p, deci S
1
G
2
p,
deci si doua derivari extrem stangi n gramatica G
1
. Aceasta ar nsemna ca
G
1
este ambigua. Contradict ie cu ipoteza!2
Teorema 3.4 Limbajele de tipul 3 sunt neambigue .
Demonstrat ie. Fie L un limbaj de tipul 3 si G gramatica care l genereaza;
e apoi AF automatul nit care recunoaste limbajul L si AFD automatul
nit echivalent determinist. Construim gramatica G
) =
L(AFD). Reamintim ca regulile lui G
) astfel ncat
Si
1
A
1
i
1
i
2
A
2
. . . i
1
. . . i
n1
A
n1
_
i
1
. . . i
n
A
n
i
1
. . . i
n
A
n
_
p.
Deci exista regulile A
n1
i
n
A
n
si A
n1
i
n
A
n
, adica n automatul
AFD avem
f(A
n1
, i
n
) = A
n
, f(A
n1
, i
n
) = A
n
,
ceea ce contrazice faptul ca AFd este determinist.2
3.3 Forme normale pentru gramatici de tipul
2
Forma normala Chomsky.
Denit ie 3.5 O gramatica n forma normala Chomsky este o gramatica
cu reguli de forma
A BC,
D i,
unde A, B, C, D V
N
si i V
T
. Se accepta si regula de completare S
cu condit ia ca S sa nu apara n dreapta vreunei reguli.
48 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
Lema 3.1 (lema substitut iei). Fie G o gramatica de tipul 2 si X uY v
precum si Y p
1
. . . p
n
toate regulile din G care au Y n stanga . Atunci
G este echivalenta cu o gramatica G
Xr
uY vr
up
j
vr
= t.
Acesti doi pasi se pot obt ine si n G
: r = r
Xr
up
j
r
= t.
Deci S
p, p L(G
) si L(G) L(G
).
Invers, daca p L(G
) si S
) L(G).2
Corolar 3.5 Orice gramatica de tipul 2 este echivalenta cu o gramatica de
acelasi tip n care mult imea de reguli nu cont ine redenumiri. (O redenumire
este o regula de forma A B, A, B V
N
).
Intr-adevar, daca A B P este o redenumire si B p
1
[ . . . [p
n
sunt
toate regulile care au B n stanga, efectuam substitut iile, deci nlocuim
regula A B cu A p
1
[ . . . [p
n
.
In cazul n care printre acestea apare o
noua redenumire, repetam procedeul.2
Exemplu. Gramatica G
E
care genereaza expresii aritmetice E E +
T[T, T T F[F, F (E)[i se poate pune sub urmatoarea forma (fara
redenumiri) :
E E +T[T F[(E)[i
T T F[(E)[i
F (E)[i
3.3. FORME NORMALE PENTRU GRAMATICI DE TIPUL 2 49
Teorema 3.6 (teorema lui Chomsky de existent a a formei normale). Orice
gramatica independenta de context este echivalenta cu o gramatica n forma
normala Chomsky. ema2
Demonstrat ie. Putem porni de la o gramatica G care nu are redenumire si
ale carei reguli cu terminale au forma A i, A V
N
, i V
T
. De asemenea
presupunem ca G nu are reguli de stergere.
Rezulta ca regulile lui G au una din formele:
(1) A BC,
(2) D i,
(3) X X
1
. . . X
n
, n > 2.
Construim o gramatica G
= (V
N
, V
T
, S, P
) unde V
N
V
N
si P
cont ine
toate regulile din P de forma (1) si (2). Fiecare regula de forma (3) o
nlocuim cu:
X X
1
Z
1
,
Z
1
X
2
Z
2
,
. . .
Z
n2
X
n1
X
n
si includem neterminalele Z
1
, . . . , Z
n2
(altele pentru ecare regula de forma
(3) n V
N
.
Se poate relativ usor arata ca L(G) = L(G
). De exemplu, daca uv
(direct) n G si de aplica o regula de forma (1) sau (2), atunci evident
derivarea respectiva se poate obt ine si n G
Xu
X
1
. . . X
n
u
= v.
Aceasta derivare se poate obt ine si n G
: u = u
Xu
X
1
Z
1
u
X
1
X
2
Z
2
u
. . . u
X
1
. . . X
n
u
= v.2
Observat ie. O gramatica ce are reguli de forma A BC, A B, A a
unde A, B, C V
N
si a V
T
spunem ca este n forma 2canonica. Este
evident ca orice gramatica de tip 2 este echivalenta cu o gramatica n forma
2canonica.
Gramatici recursive
Denit ie 3.6 Un simbol neterminal X al unei gramatici de tipul 2 este
recursiv daca exista o regula de forma X uXv, u, v V
G
.
Daca u = (v = ) simbolul X este stang (drept) recursiv. O gramatica
ce are cel put in un simbol recursiv se numeste recursiva. De exemplu,
50 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
gramatica G
E
care genereaza expresiile aritmetice are doua simboluri stang
recursive, E si T.
Existent a simbolurilor stang recursive poate provoca dicultat i n apli-
carea algoritmilor de analiza top-down.
Intr-adevar, ntr-o astfel de gra-
matica, ncercarea de a construi arborele de derivare corespunzator unui
cuvant p prin aplicarea ntotdeauna a primei reguli pentru simbolul cel mai
din stanga, poate sa conduca la un ciclu innit (de exemplu n G
E
s-ar
obt ine EE +TE +T +T. . .).
Teorema 3.7 Orice limbaj de tipul 2 poate sa e generat de o gramatica
fara recursie stanga.
Demonstrat ie. Fie G = (V
N
, V
T
, S, P) o gramatica de tipul 2; presupunem
ca G are un singur simbol recursiv X si e
(A) X u
1
[u
2
[ . . . [u
n
[Xv
1
[ . . . [Xv
m
toate regulile care au Xn stanga. Construim gramatica G
= (V
N
, V
T
, S, P
),
unde V
N
V
N
, P P
G
p. Daca n aceasta derivare nu intervine simbolul
recursiv, atunci evident ca S
p. Sa presupunem ca X intervine la un
anumit pas: Sup, unde u = u
Xu
astfel
G
: X
G
u
j
Y
G
u
j
v
j
s
Y
G
. . .
G
u
j
v
j
s
. . . v
j
1
.
Prin urmare avem S
G
u
G
p, adica p L(G
) si L(G) L(G
).
Analog, L(G
) L(G).2
Forma normala Greibach.
3.3. FORME NORMALE PENTRU GRAMATICI DE TIPUL 2 51
Denit ie 3.7 O gramatica n forma normala Greibach este o gramatica cu
reguli de forma
A ip, unde A V
N
, i V
T
p V
N
.
Se accepta si regula de completare S cu condit ia ca S sa nu apara n
dreapta vreunei reguli.
Teorema 3.8 (Teorema de existent a a formei normale Greibach). Orice
gramatica de tipul 2 este echivalenta cu o gramatica n forma normala
Greibach.
Demonstrat ie. Fie G o gramatica de tipul 2 n forma normala Chomsky si
e V
N
= S = X
1
, X
2
, . . . , X
n
. Vom construi o gramatica echivalenta care
sa satisfaca cerint ele din forma normala Greibach n mai multe etape.
Etapa I. Vom modica regulile de generare astfel ncat toate regulile care
nu sunt de forma X i sa satisfaca condit ia X
j
X
k
p, j < k, p V
N
.
Acest lucru l facem cu un algoritm pe care l prezentam ntr-un limbaj
nestandard de publicare (tip PASCAL):
j := 1;
e1: begin
Se elimina recursiile stangi; neterminalele
noi le notam cu Y
1
, Y
2
, . . .
end
if j = n then STOP;
j := j + 1;
l := 1;
e2: begin
Fie X
j
X
l
p, p V
N
si X
l
p
1
. . . p
m
toate regulile care au X
l
n stanga; se efectueaza toate substitut iile.
end
l := l + 1;
if l < j 1 then goto e2
goto e1
Sa observam ca pentru j = 1 si dupa eliminarea recursiilor stangi
condit ia ceruta este evident ndeplinita; n plus, daca au fost recursii, vom
avea reguli cu partea stanga neterminale noi Y
1
, Y
2
, . . .. Mai departe, luam
toate regulile care au n stanga X
2
(j := j +1 = 2) si efectuam substitut iile;
acestea se vor transforma n X
2
X
k
p cu k 2 si dupa o noua eliminare a
recursiilor stangi vom avea k > 2 plus reguli cu partea stanga neterminale
52 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
noi.
In felul acesta toate regulile care aun stanga X
1
si X
2
satisfac condit ia
ceruta; n continuare j := j + 1 = 3, etc.
Etapa II. Avem acum trei categorii de reguli:
(1) X
j
i;
(2) X
j
X
k
p, j < k, p V
N
;
(3) Y iq, q V
N
, i = 1, . . . , m.
Aranjam toate neterminalele ntr-un sir unic, la nceput Y
1
, . . . , Y
m
apoi
X
1
, . . . , X
n
si le redenumim, de exemplu cu X
1
, . . . , X
m+n
:
Y
1
, Y
2
, . . ., Y
m
, X
1
, X
2
, . . ., X
n
X
1
, X
2
, . . ., X
m
, X
m+1
, X
m+2
, . . ., X
m+n
Vom nota n+m = N.
In felul acesta regulile gramaticii vor avea numai
formele (1) si (2).
Etapa III. Toate regulile care au X
N
n stanga vor avea forma (1). Fie
X
n1
X
N
p
1
[ . . . [X
N
p
n
toate regulile care au X
N1
n stanga si care nu
sunt de forma (1). Efecuam substitut iile lui X
N
; n acest fel regulile care
au X
N
si X
N1
n stanga satisfac cerint ele din forma normala Greibach.
In
continuare, consideram toate regulile care au X
N2
n stanga si efectuam
substitut iile, etc.2
Forma normala operator
Una din formele importante pentru gramatici independente de context,
utilizata n analiza sintactica prin metoda precedent ei, este forma operator
a acestor gramatici.
Denit ie 3.8 O gramatica independenta de context G = (V
N
, V
T
, S, P)
se spune ca este n forma normala operator daca oricare ar product ia
A P, n nu apar doua neterminale (variabile) consecutive, adica
P V
N
[(V
N
V
T
)
(V
N
V
T
)
V
2
(V
N
V
T
)
].
Teorema 3.9 Orice gramatica independenta de context este echivalenta cu
o gramatica n forma normala operator.
Demonstrat ie. Fie G = (V
N
, V
T
, S, P) o gramatica de tipul 2 si L(G) lim-
bajul generat. Fara a restrange generalitatea presupunem ca , L(G) si G
este n forma 2canonica (regulile sunt de forma A BC, A B, A a
vezi teorema ??). Denim o gramatica echivalenta G
= (V
N
, V
T
, S, P
)
astfel: V
N
= S (V
N
V
T
), iar P
= P
1
P
2
P
3
P
4
unde
i) P
1
= S (S, a)a[ a V
T
;
ii) P
2
= (A, a) [ A V
N
, a V
T
, A a P;
iii) P
3
= (A, a) (B, a)[ A, B V
N
, a V
T
, A B P;
iv) P
4
= (A, a) (B, b)b(C, a)[ A, B, C V
N
, a, b V
T
, A BC P.
3.3. FORME NORMALE PENTRU GRAMATICI DE TIPUL 2 53
Sa observam ca G
: (P
2
P
3
P
4
)
. Vom
arata can gramatica G, w V
T
, a V
T
are loc derivarea extrem dreapta
A
G
wa folosind product iile
1
,
2
, . . . ,
n
daca si numai daca exista n
P
product iile
1
,
2
, . . . ,
n
astfel ca (
i
) =
i
, 1 i n si n G
are loc
derivarea extrem dreapta (A, a)
1
,
2
, . . . ,
n
.
Sa demonstram armat ia prin induct ie dupa n, lungimea derivarii.
Daca n = 1 atunci w = , A a P si n P
G
wa o derivare de lungime n n gramatica G si punem n evident a
prima derivare directa. Distingem doua cazuri:
I. Prima product ie utilizata n derivare este A B. Atunci,
A
G
B
G
wa
si conform ipotezei inductive avemn G
o derivare (B, a)
w (de lungine
n 1) cu product ii satisfacand condit iile aratate. Dar cum A B P, n
P
w n gramatica G
.
II. Prima product ie este de forma A BC. Atunci
A
G
BC
G
wa.
G
ub si
C
G
va. Dupa ipoteza inductiv a, vom avea n G
derivarile:
(B, b)
u, (C, a)
v.
54 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
Cum A BC P vom avea n P
(B, b)bv
ubv = w
si product iile care s-au aplicat ndeplinesc condit iile din enunt .
G
wa (S, a)
w, w V
T
, a V
T
.
Cum n G
= (V
N
, V
T
, S, P
S
1
,
P
1
= P
S
1
, S
1
S care este n forma normala operator si
L(G
1
) = L(G).2
3.4 Automate push-down (APD)
Automatele push-down sunt mecanisme pentru recunoasterea limbajelor in-
dependente de context.
Un APD se compune din (vezi gura 4.6):
1. O banda de intrare care cont ine simboluri ale unui alfabet de intrare;
aceste simboluri constituie pe o banda un anumit cuvant peste alfa-
betul de intrare. Banda se misca numai spre stanga;
2. O memorie push-down (memorie inversa, stiva, pila, etc) care cont ine
simboluri ale unui alfabet propriu, numit alfabetul memoriei push-
down. Aceasta memorie funct ioneaza ca o stiva - ultimul introdus,
primul extras (Last In, First Out);
3. Un dispozitiv de comanda care se aa permanent ntr-o anumita stare
interna apart inand unei mult imi nite de stari. Dispozitivul de co-
manda poseda un dispozitiv de citire de pe banda de intrare si un
dispozitiv de scriere-citire n memoria push-down.
Ca si un automat nit, un automat push-down funct ioneaza n pasi
discret i; un pas de funct ionare comporta:
3.4. AUTOMATE PUSH-DOWN (APD) 55
s
i
1
i
2
i
3
. . .
i
k
. . .
i
n1
i
n
z
0
z
1
.
.
.
z
m
q
p
Figura 3.6: Reprezentare schematica a unui automat push-down
1. Dispozitivul de comada citeste simbolul de pe banda de intrare din
dreptul dispozitivului de citire si muta banda cu o pozit ie spre stanga.
2.
In funct ie de starea interna, de simbolul citit si de simbolul din varful
memoriei push-down dispozitivul de comanda efectueaza operat iile:
(a) Trece ntr-o noua stare;
(b) Scrie n memoria push-down un anumit cuvant peste alfabetul
memoriei push-down; n particular, acesta poate sa e cuvantul vid,
ceea ce are ca efect stergerea simbolului din varful memoriei push-
down.
Funct ionarea unui APD se termin an general dupa ce s-a citit ultimul simbol
al cuvantului scris pe banda de intrare dar este posibil ca el sa efectueze un
anumit numar de pasi, citind de ecare data de pe banda cuvantul vid .
De asemenea, este posibil ca n timpul funct ionarii, deci nainte de a ajunge
la ultimul simbol, automatul sa se blocheze. De exemplu, automatul ajunge
ntr-o congurat ie (stare, simbol pe banda, simbol n varful memoriei push-
down) inadmisibila sau se goleste memoria push-down dar nu s-a epuizat
cuvantul de pe banda, etc.
Matematic, un APD se deneste astfel:
Denit ie 3.9 Un automat push-down este un sistem
APD = (, I, Z, f, s
0
, z
0
)
unde:
56 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
este mult imea de stari (nita si nevida);
I este alfabetul de intare;
Z este alfabetul memoriei push-down;
f : (I ) Z T( Z
In termenii funct iei de evolut ie, un pas de evolut ie comporta citirea sim-
bolului i de pe banda, citirea simbolului z din varful memoriei push-down,
apoi, n funct ie de starea interna s si de aceste doua simboluri, automatul
trece ntr-o noua stare s
astfel ncat (s
, q) f(s, i, z).
In cazul n care f(s, i, z) = evolut ia este
oprita; este situat ia n care automatul se blocheza.
O stare a automatului (sau congurat ie) este un sistem = (s, p, q) unde
s S este starea interna, p I
2
= (s
2
, p
2
, q
2
) si vom scrie
1
2
daca se executa un pas de evolut ie; daca
p
1
= ip
1
, q
1
= zq
1
putem avea (s
2
, q) f(s
1
, i, z) si atunci p
2
= p
1
, q
2
= qq
1
sau (s
2
, q) f(s
1
, , z) si atunci p
2
= p
1
, q
2
= qq
1
.
Vom spune c a automatul evolueaza (fara specicat ia direct) din starea
n stare
si vom scrie
daca:
(1)
;
(2)
1
, . . . ,
n
astfel ncat
=
1
2
. . .
n1
n
=
.
Limbajul recunoscut de un APD se poate deni n doua moduri:
(1) Limbajul recunoscut de un APD cu golirea memoriei push-down,
este, prin denit ie
L(APD) = p[p I
(s
0
, p, z
0
)
(s, , ).
Aceata nseamna ca, pornind din starea interna s
0
si avand n varful memo-
riei push-down simbolul z
0
, cu ajutorul cuvantului p de pe banda de intrare,
automatul poate sa evolueze astfel ncat sa goleasca memoria push-down
dupa citirea cuvantului. Ment ionam ca golirea memoriei push-down nu tre-
buie neaparat sa coincida cu citirea ultimului simbol al lui p; este posibil ca
automatul sa mai efectueze cat iva pasi citind de pe banda simbolul .
(2) Limbajul recunoscut de un APD cu stari nale; n denit ia automa-
tului se adauga o submult ime
f
a lui numita mult imea de stari nale.
Prin denit ie, limbajul recunoscut de un APD cu stari nale este:
3.4. AUTOMATE PUSH-DOWN (APD) 57
L(APD) = p[p I
(s
0
, p, z
0
)
(s, , q), s
f
, q Z
.
Prin urmare, este necesar ca dup a citirea lui p, eventual dupa nca cat iva
pasi, APD sa ajunga ntr-o stare nala. Vom vedea ca cele doua denit ii
sunt echivalente.
Limbaje recunoscute de automate push-down cu golirea memoriei.
Vom arata ca familia limbajelor recunoscute de APD cu stari nale coin-
cide cu familia limbajelor independente de context.
In felul acesta, APD
constituie mecanisme analitice de denire a limbajelor de tipul 2.
Teorema 3.10 Un limbaj este independent de context daca si numai daca
este recunoscut de un automat pushdown cu golirea memoriei pushdown.
Demonstrat ie. Partea I E L
2
E = L(APD).
Fie G = (V
N
, V
T
, S, P) o gramatica de tipul 2n forma normala Greibach
care genereaza limbajul E. Construim un automat pushdown astfel:
APD = (s, V
T
, V
N
, f, s, S), funct ia de evolut ie ind denita de:
A ip P (s, p) f(s, i, A),
altfel .
Fie p L(G), p = i
1
. . . i
n
, S
G
p. Aceasta derivare trebuie sa aiba
forma (extrem stanga):
(A) Si
1
X
1
u
1
i
1
i
2
X
2
u
2
u
1
i
1
i
2
i
3
X
3
u
3
u
2
u
1
. . . i
1
. . . i
n
,
unde u
1
, u
2
, u
3
, . . . V
N
= Z
.
Observat ie. Aparent, partea u
s
u
s1
. . . u
1
se mareste cu ecare derivare
directa.
In realitate, unele din cuvintele u
j
sunt vide, si anume atunci cand
se aplica o regula de forma X i; n particular, n ultimele derivari directe
se aplica numai reguli de aceasta forma.
Avem
S i
1
X
1
u
1
(s, X
1
u
1
) f(s, i
1
, S),
X
1
i
2
X
2
u
2
(s, X
2
u
2
) f(s, i
2
, X
1
),
X
2
i
3
X
3
u
3
(s, X
3
u
3
) f(s, i
3
, X
2
),
. . . .
Prin urmare automatul poate sa aiba urmatoarea evolut ie:
(s, i
1
i
2
i
3
i
4
. . . i
n
, S)(s, i
2
i
3
i
4
. . . i
n
, X
1
u
1
)
58 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
(s, i
3
i
4
. . . i
n
, X
2
u
2
u
1
)(s, i
4
. . . i
n
, X
3
u
3
u
2
u
1
). . . .
Daca comparam aceasta evolut ie cu derivarea (A) putem observa ca pe
banda de intrare avem la ecare pas partea complementara a cuvantului
(fat a de derivare) iar n memoria push-down se reproduce partea de neter-
minale din formele propozit ionale ale derivarii. Cum n derivare se ajunge
la i
1
. . . i
n
, n evolut ie se va ajunge la (s, , ).
Deci p L(APD) si L(G) L(APD).
Fie acum p L(APD); va trebui sa aratam ca p L(G), deci ca
S
G
p. Vom arata o implicat ie ceva mai generala, si anume, pentru orice
u V
N
, avem
(s, p, u)
(s, , ) u
G
p.
si u = Xu
.
In evolut ia (s, p, u)
(s, , ) punem n
evident a prima evolut ie directa
(s, p, u) = (s, ip
, Xu
)(s, p
, vu
)
(s, , ).
Din denit ia evolut iei directe rezulta ca (s, v) f(s, i, X) deci X iv P.
Pe de alta parte din ipoteza inductiva rezulta ca vu
G
p
. Avem
u = Xu
G
ivu
G
ip
= p,
ceea ce demonstreaza implicat ia.
Prin urmare p L(G) si L(APD) L(G), de unde L(G) = L(APD).2
Partea II. E = L(APD) E L
2
Fie APD = (, I, Z, f, s
0
, z
0
). ConstruimGde forma G = (V
N
, V
T
, S, P)
unde V
N
= s
0
(s, z, s
)[s, s
, z Z, V
T
= I, S = s
0
, iar regulile
de generare le denim astfel:
(1) s
0
(s
0
, z
0
, s), s ;
(2) Daca (s
1
, z
1
. . . z
m
) f(s, i, z) vom introduce n P reguli de forma
3.4. AUTOMATE PUSH-DOWN (APD) 59
(s, z, s
) i(s
1
, z
1
, s
2
)(s
2
, z
2
, s
3
) . . . (s
m
, z
m
, s
),
unde s
, s
2
, . . . , s
m
;
(3) Daca (s
) i,
unde s
.
Sa observam ca gramatica astfel construita este independenta de context,
si anume n forma normala Greibach.
Fie p L(APD), deci (s
0
, p, z
0
)
(s
, , ); trebuie sa aratam ca s
0
G
p.
Vom arata implicat ia ceva mai generala
(s, p, z)
(s
, , ) (s, z, s
G
p.
In particular pentru s = s
0
, z = z
0
rezulta (s
0
, z
0
, s
G
p si putem scrie
s
0
(s
0
, z
0
, s
G
p, adica p L(G).
Procedam prin induct ie asupra lungimii evolut iei l.
Daca l = 1 atunci (s, p, z)(s
, , ), deci p = i si (s
, ) f(s, i, z) si
(s, z, s
)i = p.
Presupunem ca implicat ia este adevarata pentru evolut ii de lungime
oarecare l si consideram o evolut ie de lungime l + 1; punem n evident a
prima evolut ie directa
(s, p, z) = (s, i
1
p
, z)(s
1
, p
, z
1
. . . z
m
)
(s
, , ).
Descompunem cuvantul p
n forma p
= p
1
. . . p
m
astfel ncat
(s
1
, p
1
, z
1
)
(s
2
, , ),
(s
2
, p
2
, z
2
)
(s
3
, , ),
. . .
(s
m
, p
m
, z
m
)
(s
, , ).
Observat ie. Putem pune n evident a felul n care se deneste cuvantul p
1
urmarind evolut ia lui APD;
(s
1
, i
1
i
2
. . . i
n
, z
1
z
2
. . . z
m
) (s
1
, i
2
i
3
. . . i
n
, qz
2
. . . z
m
)
(a) (b)
. . . (s
2
, i
j
1
. . . i
n
, z
2
. . . z
m
)
(c)
60 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
La primul pas (situat ia a) automatul este n starea s
1
, pe banda este i
1
iar
n memoria push-down este z
1
. Dupa efectuarea unui pas, automatul trece
n starea s
1
, muta banda cu o pozit ie spre stanga, extrage pe z
1
si scrie
n memoria push-down un cuvant q (situat ia b). Se poate observa ca z
2
a coborat; cum stim ca memoria push-down se goleste (p L(APD)),
trebuie ca la un moment dat z
2
sa ajunga n varful stivei (situat ia c).
In
acest moment partea din p citita va p
1
iar starean care a ajuns automatul
o notam cu s
2
. Este clar ca daca pe banda am avea scris numai p
1
am avea
evolut ia (s
1
, p
1
, z
1
)(s
2
, , ).
Analog p
2
, . . . , p
m
.
Din denit ia derivarii directe (s, i
1
p
, z)(s
1
, p
, z
1
. . . z
m
) avem
(s
1
, z
1
. . . z
m
) f(s, i
1
, z) iar n P va exista regula
(s, z, s
) i
1
(s
1
, z
1
, s
2
)(s
2
, z
2
, s
3
) . . . (s
m
, z
m
, s
)
unde luam starile s
2
, . . . , s
m
cele rezultate la descompunerea lui p
. Pe de
alta parte, din ipoteza inductiva, avem
(s
1
, z
1
, s
2
)
p
1
,
(s
2
, z
2
, s
3
)
p
2
,
. . .
(s
m
, z
m
, s
)
p
m
.
Putem scrie derivarea
(s, z, s
)i
1
(s
1
, z
1
, s
2
)(s
2
, z
2
, s
3
) . . . (s
m
, z
m
, s
)
i
1
p
1
. . . p
m
= i
1
p
= p.
Dupa cum am vazut, rezulta mai departe p L(G) si L(APD) L(G).
Pentru a demonstra incluziunea inversa, vom arata mai ntai implicat ia
(s, z, s
)
p(s
1
, z
1
s
2
) . . . (s
m
, z
m
, s
) implica (s, p, z)
(s
1
, , z
1
. . . z
m
).
Procedam prin induct ie asupra lungimii derivarii l.
Daca l = 1 atunci p = i si se aplica regula
(s, z, s
) i(s
1
, z
1
, s
2
) . . . (s
m
, z
m
, s
)
deci (s
1
, z
1
. . . z
m
) f(s, i, z) si (s, i, z)(s
1
, , z
1
. . . z
m
).
Presupunem ca implicat ia este adevarata pentru l oarecare si consideram
o derivare de lungime l + 1. Fie p = p
)
p
(s
j1
, z
j1
, s
j
)(s
j
, z
j
, s
j+1
) . . . (s
m
, z
m
, s
)
p
i(s
1
, z
1
, s
2
) . . . (s
j1
, z
j1
, s
j
)(s
j
, z
j
, s
j+1
) . . . (s
m
, z
m
, s
),
unde s
j
= s
j
; la ultimul pas s-a aplicat regula
(s
j1
, z
j1
, s
j
) i(s
1
, z
1
, s
2
) . . . (s
j1
, z
j1
, s
j
).
3.4. AUTOMATE PUSH-DOWN (APD) 61
Rezulta (s
1
, z
1
. . . z
j1
) f(s
j1
, i, z
j1
) si putem scrie evolut ia
(s
j1
, i, z
j1
)(s
1
, , z
1
. . . z
j1
).
Pe de alta parte, conform ipotezei inductive, avem
(s, p
, z)
(s
j1
, , z
j1
z
j
. . . z
m
)
Prin urmare
(s, p, z) = (s, p
i, z)
(s
j1
, i, z
j1
z
j
. . . z
m
)(s
1
, , z
1
. . . z
m
)
si implicat ia este demonstrata.
Fie acum p L(G), deci s
0
G
p. T inand seama de forma regulilor
din G, n aceasta derivare se va aplica prima data o regula de forma (1),
apoi regula de forma (2) iar la sfarsit reguli de forma (3). La aplicarea
regulilor (2) putem rescrie la ecare pas simbolul neterminal cel mai din
stanga, deci sa obt inem o derivare extrem stanga. Sa observam ca n acest
caz structura formelor propozit ionale intermediare este cea ment ionata,
p(s
1
, z
1
, s
2
)(s
2
, z
2
, s
3
) . . . (s
m
, z
m
, s
).
Prin urmare, derivarea va avea forma
s
0
(s
0
, z
0
, s
)
p(s
1
, z
1
, s
2
) . . . (s
m
, z
m
, s
)
p.
Trebuie sa avem regulile (s
j
, z
j
, s
j+1
) , j = 1, . . . , m, s
m+1
= s
si
putem scrie
(s
0
, p, z
0
)
(s
1
, , z
1
. . . z
m
)(s
2
, , z
2
. . . z
m
). . . (s
, , )
adica p L(APD) si L(G) L(APD).2
Automate pushdown cu stari nale. Vom nota un automat push-
down cu stari nale cu APD
f
.
Teorema 3.11 Un limbaj este recunoscut de un automat pushdown daca
si numai daca este recunoscut de un automat pushdown cu stari nale.
Demonstrat ie. Partea I E = l(APD) E L(APD
f
).
Daca APD = (, I, Z, f, s
0
, z
0
) construim un automat pushdown cu
stari nale astfel
APD
f
= ( s
0
, s
f
, I, Z z
0
, f
, s
0
, z
0
)
unde mult imea de stari nale este s iar funct ia de evolut ie este denita
de:
f
(s
0
, , z
0
) = (s
0
, z
0
z
0
);
62 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
f(s, , z
0
) = (s
f
, ), s ;
n rest .
Fie p L(APD); atunci (s
0
, p, z
0
)
(s, , ). Evident ca aceiasi evolut ie
o poate avea si automatul pushdown cu stari nale. Putem scrie n APD
f
evolut ia
(APD
f
) : (s
0
, p, z
0
)
(s
0
, , z
0
)(s, , ),
deci p L(APD
f
) si L(APD) L(APD
f
).
Invers, e p L(APD
f
), atunci (n APD
f
)
(s
0
, p, z
0
)(s, p, z
0
z
0
)
(s
f
, , q).
Ultimul pas trebuie sa e de forma (s, , z
0
)(s
f
, , ) pentru ca nu exista
alta valoare a lui f care sa ne duca ntr-o stare nala. Deci (n APD
f
)
(s
0
, p, z
0
z
0
)
(s, , z
0
)(s
f
, , )
si putem scrie n APD evolut ia (s
0
, p, z
0
)
(s, , ), adica p L(APD) si
L(APD
f
) L(APD).2
Partea II E = L(APD
f
E L(APD).
Fie APD
f
= (, I, Z, f, s
0
, z
0
,
f
) un automat pushdown cu stari nale
(mult imea starilor nale este
f
) si construim un APD astfel
APD = ( s
0
, s
, I, Z z
0
, f
, s
0
, z
0
)
unde
f
0
, , z
0
) = (s, z
0
z
0
);
f(s, , z) = (s
, ), s
f
s
, z Z z
0
;
n rest .
Fie p L(APD
f
), atunci (s
0
, p, z
0
)
(s, , q), s
f
. Este evident ca
n APD avem evolut ia (s
0
, p, z
0
)
(s, , q). Putem scrie
APD : (s
0
, p, z
0
)(s
0
, p, z
0
z
0
)
(s, , qz
0
)
(s
, , ),
deci p L(APD) si L(APD
f
) L(APD).
Invers, e p L(APD). Avem
APD : (s
0
, p, z
0
)
(s
0
, p, z
0
z
0
)
(s, , ).
Simbolul z
0
nu poate sters decat cu o regula de forma f(s, , z) = (s
, ),
s
f
s
.
APD : (s
0
, p, z
0
z
0
)
(s, , qz
0
), s
f
.
3.5. AUTOMATE PUSHDOWN DETERMINISTE 63
Putem scrie
APD
f
: (s
0
, p, z
0
)
(s, , q), s
f
si deci p L(APD
f
), adica L(APD) L(APD
f
).2
3.5 Automate pushdown deterministe
Funct ionarea unui APD este n general nedeterminista, card f(s, i, z) 1.
Pentru ca un APD sa aiba o funct ionare determinista nu ete sucient sa
impunem condit ia card f(s, i, z) = 1, deoarece daca pentru un anumit s
si z Z avem f(s, , z) ,= si f(s, i, z) ,= , putem face un pas citind sau
citind i.
Denit ie 3.10 Un automat pushdown este determinist daca
(1) card f(s, i, z) 1, s , i I , z Z;
(2) daca f(s, , z) ,= , atunci f(s, i, z) = , i I.
Un limbaj recunoscut de un APD determinist l vom numi limbaj in-
dependent de context (sau de tipul doi) determinist. Familia limbajelor
independente de context deterministe este inclusa (strict) n familia limba-
jelor de tipul 2 (dupa cum vom vedea).
Un APD se poate bloca n urmatoarel doua situat ii
1. Automatul ajunge n starea s, n varful memoriei pushdown se aa
simbolul z, pe banda de intrare urmeaza i si f(s, i, z) = f(s, , z) = ;
2. Intrantr-un ciclu innit citind de pe banda ; de exemplu f(s, , z) =
(s, z) si f(s, i, z) = pentru o anumita pereche (s, z).
Denit ie 3.11 Un APD determinist este neblocabil daca pentru orice cuvant
p I
f
=
( s
0
, s
, I, Z z
0
, f
, s
0
, z
0
,
f
) unde:
(1) f
(s, i, z) = (s
(s
, i, z) = (s
, z), i I, z Z;
(4) f
(s
, , z
0
) = (s
0
, z
0
z
0
).
64 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
Avem
p L(APD
f
) (s
0
, p, z
0
)
APD
f
[= (s, , q), s
f
(s
0
, p, z
0
)
APD
f
[= (s
0
, p, z
0
z
0
)
APD
f
[= (s, , qz
0
), s
f
p L(APD
f
).
Deci L(APD
f
) = L(APD
f
.2
Observat ie.
Intr-o situat ie de blocare (s, ip, zq) si f(s, i, z) = f(s, , z) =
putem scrie
(s, ip, zq)
APD
f
[= (s
, p, zq)
APD
f
[= . . .
APD
f
[= (s
, , zq).
Teorema 3.12 Orice limbaj independent de context determinist este re-
cunoscut de un APD determinist neblocabil.
Demonstrat ie. Fiind dat un APD determinist vom construi un APD de-
terminist neblocabil echivalent. Conform lemei anterioare putem presupune
ca nu are loc prima situat ie de blocare.
Daca are loc a doua situat ie de blocare, putem avea doua cazuri:
1. cont inutul memoriei pushdown se mareste nelimitat;
2. lungimea cuvintelor scrise n memoria pushdown nu depaseste un
anumit numar.
Fie card() = n, card(Z) = k, l = max[q[, q Z
[ (s
, q) f(s, i, z).
Cazul 1. Exista n total un numar nk de perechi de forma (s, z). Daca
n evolut ia lui APD s-ar succede numai congurat ii cu perechi de forma
(s, z) distincte atunci lungimea cuvantului din memoria pushdown ar creste
la maximum nkl simboluri. Prin urmare, daca (s
, ,
)
(s
, ,
) si
[
[[
, ,
)
(s, , zr)
(s, , zqr)
(s
, ,
),
de unde urmeaza ca
(s
, ,
)
(s, , zr)
(s, , q
m
r), m N.
Cazul II Lungimea cuvantului scris n memoria pushdown nu depaseste
nkl, caci daca [
[ [
E n modul urmator
APD
f
= (
1
,
2
,
3
, I, Z, f
, s
0
, z
0
,
f
)
unde
s
0
=
_
(s
0
,
1
) pentru s
0
f
,
(s
0
,
2
) pentru s
0
,
f
,
mult imea de stari nale este
f
= (s,
3
)[s iar funct ia de evolut ie
este denita de
(1) daca f(s, i, z) = (s
, q) atunci
f
((s,
1
), i, z) = ((s
, k
), q),
f
((s,
2
), i, z) = ((s,
3
), q),
f
((s,
3
), i, z) = ((s
, k
), q);
(2) daca f(s, , z) = (s
, q) atunci
f
((s,
1
), , z) = ((s
, k
), q),
f
((s,
3
), , z) = ((s
, k
), q);
unde k
= 1 daca s
f
si k
= 2 daca s
,
f
.
Fie p L(APD
f
), atunci ((s
0
,
k
), p, z
0
)
((s,
3
), , q), k = 1, 2.
In
mod necesar, ultima congurat ie trebuie sa e precedata de o congurat ie
de forma ((s
,
2
), , q), deci
(A) ((s
0
,
k
), p, z
0
)
((s
,
2
), , q)((s,
3
), , q)
de unde rezulta ca (s
0
, p, z
0
)
(s
, , q) si s
,
f
. Deci p I
E si
L(APD
f
) I
E.
Invers, e p I
E, atunci n APD
f
avem evolut ia (s
0
, p, z
0
)
(s, , q), s ,
f
si putem scrie evolut ia (A). Prin urmare p L(APD
f
), adica I
E
L(APD
f
).2
Consecint a. Putem enunt a proprietatea de mai sus astfel: Familia lim-
bajelor independente de context deterministe este nchisa la complemen-
tariere. Cum familia limbajelor independente de context nu este nchisa la
complementariere si cum ea coincide cu familia limbajelor recunoscute de
automatele pushdown nedeterministe putem mai departe obt ine urmatorul
rezultat:
APD nedeterministe nu sunt echivalente cu APD deterministe.
66 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
3.6 Lema BarHillel
Ca si n cazul limbajelor regulate, lema BarHillel pune n evident a ur-
matoarea proprietate a unui limbaj independent de context: orice cuvant
al unui astfel de limbaj, sucient de lung, cont ine un subcuvant (nevid)
pe care multiplic andul de un numar arbitrar de ori, obt inem noi cuvinte
care apart in de asemenea limbajului. Mai poarta denumirea de lema de
pompare sau lema uvwxy.
Ne vom referi n cele ce urmeaza la gramatici de tipul 2 n forma nor-
mala Chomsky.
Intr-o gramatica de aceasta forma arborii de derivare sunt
ntotdeauna arbori binari.
Lema 3.3 Fie G o gramatica n forma normala Chomsky si X
p, p V
G
.
Daca cea mai lunga ramura din arborele /
X,p
cont ine m noduri, atunci
[p[ 2
m1
.
Demonstrat ie. Procedam prin induct ie asupra lui m.
Pentru m = 2 arborele are doua nivele si n mod evident [p[ 2 = 2
m1
.
Presupunem ca proprietatea este adevarata pentru un m oarecare si
consideram un arbore care are pe cea mai lunga ramura m + 1 noduri.
In
derivarea X
p punem n evident a prima derivare directa
XY Z
p.
Conform lemei de localizare, p = p
1
p
2
si Y
p
1
, Z
p
2
. Arborii de derivare
/
Y,p
1
si /
Z,p
2
cont in, ecare pe cea mai lunga ramura cel mult m noduri;
conform ipotezei de induct ie, avem [p
1
[ 2
m1
, [p
2
[ 2
m1
. Prin urmare
[p[ = [p
1
p
2
[ = [p
1
[ +[p
2
[ 2
m1
+ 2
m1
= 2
m
.2
Exemplu. Consideram un arbore de forma data n gura 4.7. Cea mai
lunga ramura are m = 5 noduri (nivelul ultim plus 1). Se poate usor vedea
ca pe ultimul nivel putem avea cel mult 2
m1
noduri (n acest caz toate
nodurile sunt neterminale).
Observat ie. Daca X
p si [p[ > 2
m1
atunci exista n arborele /
X,p
cel
put in o ramura cu m+ 1 noduri.
Lema 3.4 Fie G o gramatica de tipul 2 si e XX
1
. . . X
m
p. Atunci,
conform lemei de localizare, p = p
1
. . . p
m
si X
j
p
j
, j = 1, . . . , m. Fie
/
Y,q
/
X,p
. atunci q este subcuvant ntrunul din cuvintele p
j
.
Demonstrat ie. Neterminalul Y apart ine unuia din subarborii /
X
j
,p
j
, e
acesta /
X
k
,p
k
; atunci /
Y,q
/
X
k
,p
k
si q Sub(p
k
). Imaginea graca este
data de gura 4.8.2
3.6. LEMA BARHILLEL 67
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
_
`
_
`
_
`
_
`
_
Nivel
0
1
2
3
4
max[p[
2
0
2
1
2
2
2
3
2
4
Figura 3.7: Exemplu de arbore
`
_
`
_
`
_
`
_
. . .
X
X
1
X
2 X
m
. . .
p
1
p
2
. . .
p
m
q
Figura 3.8: Reprezentarea graca a incluziunii q Sub(p
k
).
68 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
u v w x y
v
1
= A
v
2
= A
Figura 3.9: Descompunerea cuvantului p.
Lema 3.5 (Lema BarHillel) Fie E un limbaj independent de context. Atunci
exista un numar natural k astfel ncat, daca p E si [p[ > k atunci p se
poate descompune n forma p = uvwxy cu urmatoarele proprietat i:
1. vx ,= ;
2. [vwx[ k;
3. uv
j
wx
j
y E, j N,
Demonstrat ie. Fie n = card(V
N
). Luam k = 2
n
. Cum [p[ > k = 2
n
,
conform observat iei de la prima lema, exista n arborele /
S,p
cel put in o
ramura cu n + 2 noduri; pe aceasta ramura ultimul nod este terminal, deci
exista n +1 noduri etichetate cu acelasi simbol A. Descompunem cuvantul
p ca n gura 4.9, p = uvwxy.
(1) Consideram subarborele /
A,vwx
caruiai corespunde derivarea A
vwx.
Punem n evident a primul pas
ABC
vwx,
si vwx se descompune n vwx = p
B
p
C
, B
p
B
, C
p
C
si p
B
, p
C
,= . Cum
/
A,w
/
A,vwx
, rezulta ca w este subcuvant n p
B
sau n p
C
. Sa pre-
supunem ca w Sub(p
C
); atunci p
B
Sub(v) si cum p
B
,= rezulta
v ,= .
(2)Putem alege nodurile v
1
si v
2
astfel ncat pe ramura punctatancepand
de la v
1
n jos pana la frontiera sa avem exact n+1 noduri. Rezulta conform
lemei precedente, [vwx[ 2
n
= k.
3.6. LEMA BARHILLEL 69
(3) putem scrie derivarile A
w, A
vAx. Deci
S
uAy
uvAxy
uv
2
Ax
2
y
. . .
uv
j
wx
j
y.2
Problema nchiderii familiei L
2
la intersect ie
Teorema 3.14 Familia L
2
nu este nchisa la intersect ie.
Demonstrat ie. Consideram limbajul L
3
= a
n
b
n
c
n
[n 1. Sa ratam ca
L
3
, L
2
.
Intradevar, sa presupunem ca L
3
L
2
si e k constanta din
lema BarHillel. Luam n > k/3 si e p = a
n
b
n
c
n
; avem [p[ > k, deci
conform acestei leme p se descompune n forma p = uvwxy cu vx ,= si
uv
j
wx
j
y L
3
, j N.
Vom analiza posibilitat ile de constituire a subcuvintelor v si x. Sa pre-
supunem ca n v (sau x) intra doua din simbolurile a, b, c; de exemplu
v = aabbb. atunci consideram cuvantul p
2
= uv
2
wx
2
y = uaabbaabbwx
2
y
care nu are structura cuvintelor lui L
3
(a nu poate sa urmeze dupa b)
dar conform lemei Bar-Hillel apart ine lui L
3
. Deci, n v (sau x) nu pot intra
doua (sau trei) din simbolurile a, b, c. Sa presupunem ca intra un singur
simbol; de exemplu v a
si x b
3
= a
m
b
n
c
n
[m, n 1
L
3
= a
n
b
n
c
m
[m, n 1.
Se poate vedea usor ca aceste limbaje sunt de tipul 2; gramaticile care
le genereaza sunt S aS[aA, A bAc[bc si respectiv S Sc[Ac, A
aAb[ab.
Avem L
3
L
3
= L
3
, deci intersect ia a doua limbaje de tipul 2 este un
limbaj care nu apart ine lui L
2
.2
Corolar 3.15 Familia L
2
nu este nchisa la complementariere.
Intradevar, sa presupunem ca L
2
este nchisa la complementariere si e
E
1
, E
2
L
2
. Cum familia L
2
este nchisa la reuniune, ar rezulta C(E
1
)
C(E
2
) L
2
. Dar (de Morgan) C(E
1
) C(E
2
) = C(E
1
C(E
2
) L
2
.
Complementul limbajului C(E
1
E
2
) este E
1
E
2
si conform pre-
supunerii ar trebui ca E
1
E
2
L
2
, oricare ar E
1
, E
2
, ceea ce nu este
adevarat.2
Generalizari ale lemei BarHillel Lema lui BarHillel reprezinta o
condit ie necesara ca un limbaj sa e independent de context. cu ajutorul ei
70 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
se poate demonstra relativ usor ca anumite limbaje nu sunt independente
de context. Ideea este aceea ca prin multiplicarea subcuvintelor v si x, de
un numar sucient de ori, se contrazice structura limbajului.
Totusi, nu orice limbaj care nu este de tipul 2 poate respins de lema
lui BarHillel. De exemplu, aceasta lema nu poate respinge limbajul
L = a
n
b
2
m
[n, m 1 b
,
care nu este de tipul 2 (se demonstreaza pe alta cale).
Intradevar, pentru
orice p = a
n
b
2
m
luam
u = , v = a, w = , x = , y = a
n1
b
2
m
.
Putem itera subcuvintele v si x fara sa contrazicem structura cuvintelor
limbajului.
O generalizare a lemei BarHillel este
Lema 3.6 (Lema lui Ogden) pentru orice limbaj independent de context L
exista o constanta k astfel ncat orice p L pentru care cel put in k simboluri
sunt marcate, se poate descompune n forma p = uvwxy astfel ncat
1. sau u, v, w sau w, x, y cont in ecare cate un simbol marcat;
2. vwx cont ine cel mult k simboluri marcate;
3. uv
j
wx
j
y L, j N
Cu ajutorul acestei leme se poate arata ca limbajul de mai sus nu este
de tipul 2, considerand marcate simbolurile b.
3.7
Inchiderea familiei L
2
la substitut ii
Denit ie 3.12 Vom spune ca o familie de limbaje L este nchisa la substitut ii
daca oricare ar L L si oricare ar substitut ia s : V
T(U
) astfel
ncat s(i) L, i V , avem s(L) L.
Se cunosc o serie de proprietat i de nchidere a familiilor de limbaje din
clasicarea Chomsky fat a de substitut ii particulare; o parte din acestea
sunt prezentate n tabelul urmator.
L
0
L
1
L
2
L
3
Substitut ie DA NU DA DA
Substitut ie libera DA DA DA DA
Homomorsme DA NU DA DA
Homomorsme libere DA DA DA DA
In cele ce urmeaza vom considera not iunea de substitut ientro accept iune
ceva mai general a (fat a de cea din Capitolul I)
3.7.
INCHIDEREA FAMILIEI L
2
LA SUBSTITUT II 71
_
a
1
a
2
a
3
V
s
V
a
1
s
a
1
s(a
2
)
V
a
2
V
a
3
s(a
3
)
Figura 3.10: Reprezentare graca a substitut iei
Denit ie 3.13 Fie V un alfabet; pentru orice a V consideram un alfabet
V
a
si notam V
g
=
aV
V
a
. Fie s : V T(V
g
) o aplicat ie cu proprietatea
s(a) V
a
, a V . Prelungirea canonica a lui s la V
g
,=
aV
V
a
si V
a
V
g
.
Denit ia substitut iei se poate da si direct:
Denit ie 3.14 Vom spune ca s : V
T(V
g
) este o substitut ie daca
1. s() = ;
2. s(a) V
a
, a V ;
3. s(a
1
. . . a
n
) = s(a
1
) . . . s(a
n
), a
1
, . . . , a
n
V .
Denit ie 3.15 Imaginea unui limbaj L V
T(V
g
astfel ncat s(a) L, a V , avem s(L) L.
72 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
Observat ie.
In cazul particular n care V
a
= U, a V , avem V
g
= U si
condit ia s(a) V
a
este n mod evident satisfacuta.
Teorema 3.16 Familia limbajelor independente de context este nchisa la
substitut ii.
Demonstrat ie. Fie L L
2
si s : V
T(V
g
) o substitut ie astfel ncat
s(a) L
2
, a V .
Fie
G = (V
N
, V, S, P) cu L(G) = L,
G
a
= (V
a
N
, V
a
, S
a
, P
a
) cu L(G
a
) = s(a),
G si G
a
ind gramatici de tipul 2. Vom presupune ca aceste gramatici nu
cont in reguli de stergere (cu except ia regulilor de completare) si ca alfabetele
neterminale sunt disjuncte.
Denim : V
N
V V
N
S
a
[a V prin
() = ,
(X) = X, X V
N
,
(a) = S
a
, a V
si prelungim canonic aplicat ia la (V
N
V )
.
Consideram acum gramatica G
= (V
N
, V
T
, S, P
) unde
V
N
= V
N
(
aV
V
a
N
),
V
T
=
aV
V
a
,
P
= (
aV
P
a
) X ()[X P.
Observat ie. P
este de tipul 2.
Fie u s(L). Deoarece s(L) =
vL
s(v) rezulta ca exista v L astfel
ncat u s(v).
Daca v = nseamna ca s P si S () = P
. T inand cont
ca s() = rezulta u = si L(G
).
Sa presupunem ca v ,= si e v = v
1
. . . v
n
; avem s(v) = s(v
1
) . . . s(v
n
).
Prin urmare u = u
1
. . . u
n
si u
1
s(v
1
), . . . , u
n
s(v
n
).
Avem S
G
v si S
a
i
u
i
n G
a
i
, i = 1, . . . , n.
Atunci
G
: S(v
1
)(v
2
). . . (v
n
) = (v).
Cum v cont ine numai terminale, rezulta ca (v) = S
a
1
. . . S
a
n
. Deci
G
: S
X
a
1
. . . X
a
n
u
1
. . . u
n
= u,
3.8. CARACTERIZAREALIMBAJELOR INDEPENDENTE DE CONTEXT73
si u L(G
).
Invers, e u L(G
). deoarece (V
a
N
) V
N
= , derivarile din G
: S
S
a
1
. . . S
a
n
u.
Cuvantul u se descompune n u = v
1
. . . v
n
si S
a
j
v
j
. Deoarece
alfabetele gramaticilor G
a
sunt disjuncte, putem scrie S
a
j
v
j
(n gramatica
G
a
j
) si deci v
j
L(G
a
j
) = s(a
j
). Asadar
u = v
1
. . . v
n
s(a
1
. . . s(a
n
) = s(a
1
. . . a
n
) s(L).
Rezulta L(G
).2
Proprietatea de nchidere a familiei L
2
la substitut ii se poate utiliza
pentru a reobt ine proprietat i cunoscute. De exemplu:
Corolar 3.17 Familia L
2
este nchisa la operat iile regulate (reuniune, pro-
dus, nchidere Kleene).
Demonstrat ie. Limbajele a, b, ab, a
a
, L
2
V
b
doua limbaje independente de context. Considerams : a, b
T( (V
a
V
b
)
) denita de
s(a) = L
1
, s(b) = L
2
Conform teoremei anterioare rezulta ca limbajele s(a, b), s(ab), s(a
)
sunt independente de context; dar
s(a, b)L
1
L
2
, s(ab) = L
1
L
2
, s(a
) = L
1
.
De exemplu
s(a, b) = s(a) s(b) = L
1
L
2
, etc.
3.8 Caracterizarea limbajelor independente de
context
Limbajul lui Dyck Cuvintele limbajului Dyck, numit si limbaj parame-
tric, constituie siruri de paranteze corect scrise ntr-o expresie aritmetica.
De exemplu, daca n expresia
(a +b) [(c +d) (e +f)]
74 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
se elimina tot i operanzii se obt ine sirul de paranteze ()[()()], care dupa
cum se poate observa sunt corect scrise. Denit ia generala a unui sir de
paranteze corect scrise nu este foarte simpla; de exemplu, nu este sucient
sa spunem ca ec arei paranteze deschise trebuie sai corespunda o paranteza
nchisa.
Sirurile de paranteze corect scrise se pot deni elegant cu ajutorul gra-
maticilor de tipul 2. Fie G
n
= (X, V
T
, X, P) o gramatica de tipul 2,
unde
V
T
= i
1
, . . . , i
n
, i
1
, . . . , i
n
,
P = X Xi
k
Xi
k
X, k = 1, . . . , n X .
Prin denit ie, limbajul lui Dyck de ordinul n este D
n
= L(G
n
).
Exemplu. Presupunem n = 3; putem scrie derivarea
XXi
3
Xi
3
XXi
3
Xi
1
Xi
1
Xi
3
XXi
3
Xi
1
Xi
1
Xi
2
Xi
2
Xi
3
X
Xi
3
Xi
1
Xi
1
Xi
2
Xi
1
Xi
1
Xi
2
Xi
3
XXi
3
Xi
1
Xi
1
Xi
2
Xi
1
Xi
1
Xi
1
Xi
1
Xi
2
Xi
3
X.
1
i
2
i
1
i
1
i
1
i
1
i
2
i
3
.
Daca asociem simbolurilor i
k
, i
k
perechi de paranteze, de exemplu: i
1
, i
1
(, ); i
2
, i
2
[, ]; i
3
, i
3
, obt inem ()[()()].
Proprietat i ale limbajului lui Dyck
1. i
k
D
n
i
k
D
n
, k = 1, . . . , n;
2. D
n
D
n
D
n
;
3. D
n
(
n
k=1
i
k
D
n
i
k
D
n
) ;
4. daca p, pq D
n
atunci q D
n
.
Demonstrat ie. (1) Un cuvant din i
k
D
n
i
k
trebuie sa aiba forma i
k
pi
k
, p
D
n
(deci X
p). Putem scrie
XXi
k
Xi
k
X
i
k
Xi
i
k
pi
k
D
n
.2
(2) Fie p D
n
D
n
, deci p = p
1
p
2
, p
1
D
n
, p
2
D
n
sau X
p
1
, X
p
2
;
e p = i
1
. . . i
n
. Derivarea X
p
1
o putem detalia lasand la sfarsit stergerile:
X
Xi
1
X
2
X . . . Xi
n
X
i
1
. . . i
n
.
Putem scrie
X
Xi
1
X
2
X . . . Xi
n
X
i
1
. . . i
n
X = p
1
X
p
1
p
2
= p D
n
.2
3.8. CARACTERIZAREALIMBAJELOR INDEPENDENTE DE CONTEXT75
(3) e p D
n
; trebuie sa aratam ca p (
n
k=1
i
k
D
n
i
k
D
n
) .
Procedam prin induct ie asupra lungimii lui p. Daca [p[ = 0, atunci p = si
apartenent a este evidenta.
Observat ie. Putem lua [p[ = 2, deci p = i
k
i
k
; avem
i
k
D
n
i
k
D
n
= i
k
, . . .i
k
, . . . = i
k
i
k
, . . .
si deci i
k
i
k
i
k
D
n
i
k
D
n
.
Presupunem acum ca proprietatea este adevarata pentru [p[ oarecare
si consideram cazul [p[ + 1. punem n evident a prima derivare directa
XXi
k
Xi
k
X
p. Conform lemei de localizare, p = p
1
i
k
p
2
i
k
p
3
si X
p
j
, j =
1, 2, 3, adica p
j
D
n
. Daca p
1
= proprietatea este demonstrata. Pre-
supunem ca p
1
,= . Cum p
1
D
n
, avem p
1
= i
j
p
1
i
j
p
1
, p
1
, p
1
D
n
, n
conformitate cu ipoteza inductiva. Prin urmare
p = i
j
p
1
i
j
p
1
i
k
p
2
i
k
. .
D
n
p
3
. .
=qD
n
= i
j
p
1
i
j
q.2
(4) Fie p, pq D
n
. Procedam prin induct ie asupra lui [pq[.
Daca [pq[ = 0, rezulta q = D
n
.
Presupunem ca proprietatea este adevarata pentru [pq[ oarecare si con-
sideram cazul [pq[ + 1.
Din p, q D
n
rezulta
pq = i
k
si
k
t, s, t D
n
.
Avem doua cazuri
I. pq = i
k
s
1
s
2
. . . s
k
t
..
t
1
t
2
. .
p
. . . t
p
. .
q
Deci
p
..
D
n
= i
k
si
k
. .
D
n
(ip.ind.) t
D
n
,
t
..
D
n
= t
q
..
D
n
(ip.ind.) q D
n
.
II. pq = i
k
s
1
s
2
. .
p
. . . s
. .
s
k
t
1
t
2
. . . t
p
. .
q
.
76 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
_
.
.
h
V
T
E
R
D
V
1
Figura 3.11: Imagine graca a teoremei de caracterizare
Avem
i
k
si
k
= ps
k
= i
k
p
k
p
k
, p
, p
D
n
,
s
..
D
n
= p
..
D
n
i
k
p
(ip.ind.) i
k
p
D
n
ceea ce nu este posibil.2
Teorema de caracterizare
Teorema 3.18 Un limbaj este independent de context daca si numai daca
este imaginea printr-un homomorsm a intersect iei dintre un limbaj regulat
si un limbaj Dyck.
Demonstrat ie. Vom arata numai implicat ia directa, adica daca E este
un limbaj independent de context atunci exista un limbaj regulat R, un
limbaj Dyck si un homomorsm h astfel ncat E = h(R D).
Imaginea geometrica este prezentatan gura 4.11. Fie G = (V
N
, V
T
, S, P)
n forma normala Chomsky astfel ncat E = L(G). Presupunem ca
V
T
= i
1
, . . . i
m
.
(a) Construct ia lui R.
Luam gramatica G
= (V
N
, V
1
, S, P
) unde
V
1
= i
1
, i
2
, i
m
, i
m+1
, . . . , i
m+n
, i
1
, . . . , i
m+n
iar P
se construieste astfel:
X i
k
P
_
X i
k
i
k
P
,
X i
k
i
k
i
n+l
Z P
,
l = 1, n, Z V
N
;
X Y Z P atunci X i
m+l
Y P
, l = 1, n.
3.8. CARACTERIZAREALIMBAJELOR INDEPENDENTE DE CONTEXT77
De ecare data alegem un i
m+l
diferit (de aici rezulta n).
(b) Construct ia lui D.
Luam D = D
m+n
cu alfabetul terminal V
1
si cu regulile cunoscute.
(c) Denit ia lui h.
Luam h : V
1
V
T
astfel:
h(i
k
) =
_
i
k
, k m
, k > m,
h(i
k
) = , k = 1, . . . , m+n.
Prelungim h n mod canonic la V
1
. Se poate arata usor ca h este un
homomorsm.
Sa aratam ca E h(R D).
Fie p E = L(G); va trebui sa aratam ca exista q R, D astfel ncat
p h(q). Vom arata implicat ia ceva mai generala:
Daca X
G
p atunci q, X
q, q D, p = h(q).
Procedam prin induct ie asupra lungimii l a derivarii.
Daca l = 1, atunci X
G
p = i
k
, X i
k
i
k
P
. Luam q = i
k
i
k
si
avem n G
derivarea Xi
k
i
k
, iar h(q) = h(i
k
)h(i
k
) = i
k
= p.
Presupunem ca implicat ia este adevarata pentru derivari de lungime
oarecare l si consideram cazul l + 1; punem n evident a prima derivare
directa
X
G
Y Z
G
p.
Conform lemei de localizare, p = p
1
p
2
, Y
G
p
1
, Z
G
p
2
. T inand cont
de ipoteza inductiva avem n gramatica G
:
q
1
, Y
q
1
, q
1
D, h(q
1
) = p
1
;
q
2
, Z
q
2
, q
2
D, h(q
2
) = p
2
.
Ne xam atent ia asupra derivarii Y
q
1
; ind o derivare ntr-o gra-
matica de tipul 3, n toate derivarile directe se aplica reguli de categoria
I (A pB) cu except ia ultimei unde se aplica o regula de categoria II
(c q).
In cazul nostru, aceasta ultima regula trebuie sa e de forma
X i
k
i
k
. Odata cu aceasta regula avem si X i
k
i
k
ki
m+l
Z; aplicando
pe aceasta, avem
Y
q
1
i
m+l
Z
q
1
i
m+l
q
2
.
Pe de alta parte, deoarec X Y Z P avem X i
m+l
Y P
, asa
ncat
78 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
X
i
m+l
Y
i
m+l
q
1
i
m+l
q
2
def
= q.
Avem X
q, q D si h(q) = h(q
1
)h(q
2
) = p
1
p
2
= p.
Sa aratam acum ca h(R D) E.
Fie q R, D si p h(q), atunci p L(G).
Mai general
X
q, q D atunci X
G
h(q).
Procedam prin induct ie asupra lungimii derivarii l.
Daca l = 1 atunci Xq = i
k
i
k
; q D
n
, h(q) = i
k
. Sa aplicat regula
X i
k
i
k
P
; rezulta X i
k
P deci X
G
i
k
= h(q).
Presupunem ca implicat ia este adevarata pentru un l oarecare si con-
sideram cazul l + 1. Punem n evident a prima derivare directa (evident,
aceasta nu poate sa e de forma X i
k
i
k
). Distingem doua cazuri
I. Se aplica o regula de forma X i
k
i
k
i
m+l
Z. Avem
Xi
k
i
k
i
m+l
Z
q,
q
..
D
= i
k
i
k
..
D
i
m+l
q
1
i
k
i
m+l
q
1
D, nu este posibil.
II. Se aplica o regula de forma X i
m+l
Y . Avem
G
: Xi
m+l
Y
q, q = i
m+l
q
m+l
q
, q
, q
D.
Detaliat, derivarea de mai sus trebuie sa aiba forma
G
: Xi
m+l
Y
i
m+l
q
Z
i
m+l
q
m+l
q
.
De aici Y
, Z
G
h(q
),
Z
G
h(q
). Putem scrie
G : XY Z
h(q
)h(q
) = h(i
m+l
)h(q
)h(i
m+l
)h(q
) = h(i
m+l
q
m+l
q
) = h(q).2
1. Sa se arate ca L(G) = (ab)
n
a[n 0 unde G are product iile S
SbS, S a. Sa se construiasca o gramatica echivalenta cu G care sa
e neambigua.
3.8. CARACTERIZAREALIMBAJELOR INDEPENDENTE DE CONTEXT79
2. Eliminat i redenumirile din gramatica G
E
ce genereaza expresiile arit-
metice simple.
3. Aducet i la forma normala Chomsky gramaticile ce au regulile:
(a) S TbT, T TaT[ca;
(b) S aAC, A aB[bAB, B b, C c;
(c) S A.A, A 0A[1A[ . . . 9A[.
4. Gasit i forma normala Greibach pentru gramaticile:
(a) A
1
A
2
A
3
, A
2
A
1
A
2
[1, A
3
A
1
A
3
[0.
(b) G
E
care genereaza expresiile aritmetice simple.
5. Construit i un automat pushdown pentru recunoasterea limbajului:
(a) L = w[w a, b
, w = w;
(c) L = w[w (, )
1
= (V
N
Z
1
, . . . , Z
m
, V
T
, S, P R). Evident G
1
este de tipul
1. Sa aratam ca L(G
1
) = L(G).
82 CAPITOLUL 4. LIMBAJE DEPENDENTE DE CONTEXT
Fie p L(G). Daca n derivarea S
G
1
p nu se utilizeaza regula u v,
este clar ca putem scrie n G
1
derivarea S
p si p L(G
1
). Sa presupunem
ca la un anumit pas se utilizeaza regula u v; detaliem
(G
1
) : S
=
=
p.
Pasul se poate obt ine si n gramatica G
1
utilizand regulile R:
(G
1
) : =
X
1
. . . X
m
. . .
=
Rezulta ca S
p si deci p L(G
1
), adica L(G
1
) L(G
1
).
Invers, e p L(G
1
). Daca n derivarea S
p sau folosit numai reguli
din P atunci evident S
G
1
p. Sa presupunem ca la un anumit pas sa uti-
lizat pentru prima data o regula din R; aceasta nu poate sa e decat prima
deoarece pana n acest moment nu pot aparea simboluri Z.
In continuare
trebuie aplicate succesiv toate regulile din R, altfel nu putem elimina neter-
minalele Z. Pasii respectivi (de la la ) vor avea forma (G
1
) de unde
rezulta forma (G
1
). Prin urmare, p L(G
1
), mai departe L(G
1
) L(G
1
)
si L(G
1
) = L(G
1
). 2
Sa observam ca orice gramatica dependenta de context este n mod evi-
dent monotona. Vom demonstra n cele ce urmeaza armat ia reciproca.
Teorema 4.1 Orice gramatica monotona este echivalenta cu o gramatica
dependenta de context.
Demonstrat ie. Orice gramatica monotona se poate pune sub forma
G
n
= (V
N
, V
T
, S, P u
i
v
i
, i = 1, . . . , n) unde regulile u
i
v
i
sat-
isfac condit ia de monotonie iar P sunt reguli de tipul 1 (P cont ine cel put in
o regula, anume cea care are S n stanga). Este clar ca G
n
este o generalizare
a lui G
1
; procedand ca n lema, putem construi o gramatica dependenta de
context G
n
echivalenta cu G
n
.2
Corolar 4.2 Familia limbajelor generate de gramatici monotone coincide
cu familia L
2
.
Gramatici liniar marginite.
Denit ie 4.1 O gramatica monotona este de ordinul n daca orice regula
u v satisface condit ia [v[ n.
Lema 4.2 O gramatica monotona de ordinul n 3 este echivalenta cu o
gramatica monotona de ordinul n 1.
4.1. GRAMATICI MONOTONE 83
Demonstrat ie. Fie G = (V
N
, V
T
, S, P) o gramatica monotona de ordinul
n 3. Putem presupune din nou ca G are forma din lema 1.2. Construim
G
= (V
N
, V
T
, S, P
) cu V
N
V
N
si n plus
1. Daca u v P, [u[, [v[ 2 atunci u v P
;
2. Fie u v P, [v[ > 2; atunci v = Y
1
Y
2
Y
3
v
.
(a) daca u = X
1
introducem n P
regulile
X
1
Z
1
Z
2
,
Z
1
Y
1
,
Z
2
Y
2
Y
3
v
.
(b) daca u = X
1
X
2
u
introducem n P
regulile
X
1
X
2
Z
1
Z
2
,
Z
1
Y
1
,
Z
2
u
Y
2
Y
3
v
In ambele cazuri Z
1
, Z
2
V
N
.
Este clar ca G
) = L(G).2
Observat ie. Procedand n mod analog putem reduce ordinul unei gra-
matici monotone pana la valoarea 2. Prin urmare, orice gramatica monotona
este echivalenta cu o gramatica monotona de ordinul 2.
Forma normala Kuroda.
Denit ie 4.2 O gramatica se numeste liniar marginita (sau n forma nor-
mal a Kuroda) daca are reguli de generare de forma
1. S SA,
2. B C[i,
3. DE FH,
unde, ca de obicei, S este simbolul de start, A, B, C, D, E, F, H V
N
si
i V
T
cu condit ia C, F, H ,= S.
Teorema 4.3 Orice gramatica monotona este echivalenta cu o gramatica
liniar marginita.
Demonstrat ie. Fie G o gramatica monotona pe care o presupunem de or-
dinul 2. Prin urmare regulile din G au formele:
1. B C[i,
84 CAPITOLUL 4. LIMBAJE DEPENDENTE DE CONTEXT
2. DE FH,
3. X Y Z.
Regulile (1) si (2) satisfac condit iile de la gramaticile liniar marginite, iar
cele de forma (3) presupunem ca nu satisfac aceste condit ii, deci ca X ,= S
sau Y ,= S.
In general, putem avea mai multe astfel de reguli; pentru
simplicare presupunem ca exista doua reguli de forma (3):
(3
); X
1
Y
1
Z
1
, X
2
Y
2
Z
2
.
Construim o gramatica liniar marginita G
= (V
N
S
,
X
1
,
X
2
, V
T
, S
, P
),
unde P
cont ine toate regulile care convin (de formele (1) si (2)) precum si
S
S,
S
X
1
[S
X
2
,
X
1
X
1
Y
1
Z
1
, X
2
X
2
Y
2
Z
2
.
De asemenea vom include n P
).
Fie p L(G), deci S
G
p. Presupunem ca n aceasta derivare exista o
singura secvent a u
v n care se aplica reguli de forma (3
), adica
G : S
u
v
p.
Presupunem ca secvent a u
v are forma
u = u
1
X
1
u
2
X
2
u
3
X
2
u
4
u
1
Y
1
Z
1
u
2
Y
2
Z
2
u
2
Y
2
Z
3
u
4
= v,
unde u
1
, u
2
, u
3
, u
4
V
N
.
In G
putem scrie
S
X
2
S
X
2
X
2
S
X
1
X
2
X
2
S
X
1
X
2
X
2
u
X
1
X
2
X
2
= u
1
X
1
u
2
X
2
u
3
X
2
u
4
X
1
X
2
X
2
u
1
X
1
X
1
u
2
X
2
X
2
u
3
X
2
X
2
u
4
u
1
Y
1
Z
1
u
2
Y
2
Z
2
u
3
Y
2
Z
2
u
4
= v
p
Prin urmare, S
p si p L(G
).
Invers, e p L(G
), deci S
p. Daca n derivarea S
p apar
simbolurile
X
1
,
X
2
ele nu pot aparea dacat n urma aplicarii regulilor S
4.2. AUTOMATE LINIAR M
ARGINITE 85
S
X
1
si S
X
2
, deci la nceputul derivarii, apoi singura posibilitate de
continuare este S
G
p, p
L(G).2
Observat ie. T inand cont ca gramaticile dependente de context sunt
echivalente cu gramaticile monotone, rezulta ca orice gramatica dependenta
de context este echivalenta cu o gramatica liniar marginita, cu alte cuvinte
admite forma normala.
Structura derivarilor ntr-o gramatica liniar marginita. Deoarece
C, F, H ,= S rezulta ca n orice derivare dintr-o gramatica liniar marginta se
aplica mai ntai un numar oarecare (sa zicem m) de reguli de forma (2),(3)
si la sfarsit reguli de forma (4). Este clar ca lungimea cuvantului este m+1.
Exemplu. Consideram gramatica
S SA[SB,
A B, AB BA,
S 0, A 0, B 1.
Putem scrie derivarea
SSASBASABASBAASBBA
0110.
Corespunzator acestei derivari putem gura hiperarborele din gura 5.1.
Sa observam ca pana la linia punctata s-au aplicat trei reguli de forma
S SA, obt inanduse cuvantul SABA apoi doua reguli de forma (2),(3)
si apoi reguli de forma X i.
4.2 Automate liniar marginite
Un automat liniar marginit (ALM) se compune dintro banda de intrare
si un dispozitiv de comanda care poseda un dispozitiv de scrierecitire pe
banda de intrare. Banda de intrare cont ine simboluri ale unui alfabet de
intrare, constituind un cuvant de intrare. Alfabetul de intrare cont ine un
simbol special numit marcaj si notat #(diez) utilizat pentru delimitarea
cuvintelor. Banda se poate misca n ambele sensuri, sau sa ramana pe loc;
prin convent ie vom nota, deplasarea spre stanga cu +1, deplasarea spre
dreapta cu 1 si ramanerea pe loc cu 0. Dispozitivul de comanda se aa
ntotdeauna ntr-o anumita stare interna, element al unei mult imi nite de
stari.
Schematic un ALM are forma din gura 5.2. Un ALM funct ioneaza n
86 CAPITOLUL 4. LIMBAJE DEPENDENTE DE CONTEXT
S
A
B
S
S
S
A
A B
0
1
1 0
B
Figura 4.1: Hiperarbori asociat i unei derivari
s
p q
# i
1 i
2
i
3 i
4
#
Figura 4.2: Reprezentarea schematica a unui automat liniar marginit
4.2. AUTOMATE LINIAR M
ARGINITE 87
pasi discret i. Un pas de funct ionare comporta:
(a) Dispozitivul de comanda citeste simbolul din dreptul dispozitivului
de scrierecitire;
(b)
In funct ie de starea interna si de simbolul citit, automatul trece ntr-
o noua stare, scrie pe banda un nou simbol (n locul simbolului citit) si
muta banda cu o pozit ie (stanga, dreapta) sau o lasa pe loc.
Observat ie. Oricare ar starea interna a dispozitivului de comanda,
citirea marcajului provoaca scrierea din nou a marcajului; de asemenea
scrierea marcajului are loc numai n aceasta situat ie (adica daca s-a citit
marcaj). Prin urmare, cele doua marcaje care delimiteaza un cuvant nu se
modica n urma funct ionarii.
Funct ionarea unui ALM nceteaza n momentul n care s-au citit toate
simbolurile cuvantului scris pe banda de intrare, mai exact n momentul n
care s-a citit al doilea marcaj. Starea dispozitivului de comanda n acest
moment este starea nala a automatului.
Matematic, un ALM este un sistem de forma ALM = (, I, f, s
0
,
f
)
unde:
este mult imea de stari (nita si nevida);
I este alfabetul de intrare;
f : I T( I +1, 0, 1) este funct ia de evolut ie;
s
0
si constituie starea init iala;
f
este mult imea de st ari nale.
Observat ie. Avem
f(s, i) = (s
, #, k) i = #.
O stare sau o congurat ie instantanee a unui ALM este un triplet de
forma (s, p, q) unde p este partea din cuvantul de pe banda de intrare din
stanga dispozitivului de scrierecitire, q este partea din dreapta a aces-
tui cuvant, inclusiv simbolul din dreptul dispozitivului de scrierecitire, iar
s starea interna. Zicem ca o stare
1
= (p
1
, s
1
, q
1
) se transforma (sau
evolueaza) direct n starea
2
= (p
2
, s
2
, q
2
) daca
(1) q
1
= i
1
q
1
, f(s
1
, i
1
) = (s
2
, i
2
, +1), p
2
= p
1
i
2
, q
2
= q
1
;
(2) q
1
= i
1
q
1
, f(s
1
, i
1
) = (s
2
, i
2
, 0), p
2
= p
1
, q
2
= i
2
q
1
;
(3) q
1
= i
1
q
1
, p
1
= p
1
j, f(s
1
, i
1
) = (s
2
, i
2
, 1), p
2
= p
1
, q
2
= ji
2
q
1
.
Vom spune ca starea
si
vom scrie
daca
sau daca
1
, . . . ,
n
astfel ncat
=
1
2
. . .
n
=
.
88 CAPITOLUL 4. LIMBAJE DEPENDENTE DE CONTEXT
Denit ie 4.3 Limbajul recunoscut de un ALM este
L(ALM) = p[p I
, (, s
0
, p)
(q, s, ), s
f
.
Limbajele recunoscute de ALM. Automatele liniar marginite sunt me-
canisme care recunosc limbajele dependente de context, deci reprezinta o
modalitate analitica de denire a acestor limbaje.
Teorema 4.4 Un limbaj este dependent de context daca si numai daca este
recunoscut de un automat liniar marginit.
Demonstrat ie. Partea I: E L
1
E = L(ALM).
Fie G = (V
N
, V
T
, S, P) o gramatica de tipul 1 presupusa n forma
normala, astfel ncat E = L(G). Construim automatul liniar marginit
ALM = (, I, f, s
0
,
f
) unde
= s
0
, s
1
, s
2
, s
3
, s
4
s
D
[D V
N
, DE FH P,
I = V
N
V
T
#, ,
f
= s
3
,
iar funct ia de evolut ie o denim punand n evident a patru categorii de
relat ii:
Cat.I;
(1)f(s
0
, #) = (s
0
, #, 1),
(2)f(s
3
, #) = (s
3
, #, 1),
Cat.II;
(3)f(s
0
, #) = (s
4
, #, 1),
(4)f(s
4
, #) = (s
3
, #, 1),
_
pentru E;
Cat.III;
(5)f(s
0
, x) = (s
0
, x, 1), (s
0
, x, 1), x V
N
V
T
;
(6)f(s
0
, y) = (s
0
, B, 0), B y P, y V
N
V
T
,
(7)f(s
0
, F) = (s
D
, D, 1), DE FH P
(8)f(s
0
, H) = (s
0
, E, 0), DE FH P
Cat.IV ;
(9)f(s
3
, A) = (s
0
, S, 0), S SA P
(10)f(s
0
, S) = (s
1
, S, 1),
(11)f(s
1
, #) = (s
2
, #, 1),
(12)f(s
2
, S) = (s
3
, , 1),
(13)f(s
1
, ) = (s
2
, , 1),
(14)f(s
0
, x
0
) = (s
1
, x
0
, 1),
(15)f(s
2
, x
0
) = (s
3
, , 1),
(16)f(s
3
, A) = (s
0
, x
0
, 0)
Relat iile din categoria I servesc la pornirea si respectiv oprirea au-
tomatului. Categoria II apar numai daca gramatica cont ine regula S
4.2. AUTOMATE LINIAR M
ARGINITE 89
B
y
D E
F H
Figura 4.3:
. . .
F H
. . .
s
0
. . .
D H
. . .
s
D
. . .
D E
. . .
s
0
Figura 4.4:
si servesc la recunoasterea cuvantului vid . Regulile din categoria III se
utilizeaza pentru reducerea succesiva a hiperarborelui de derivare si anume
partea construita cu reguli de forma (2),(3), (4) (partea situata sub linia
punctata de la exemplul din gura 5.1).
In adevar, cu ajutorul relat iei (5)
putem plasa dispozitivul de comanda sub oricare din simbolurile cuvantului
curent. Apoi, cu ajutorul relat iilor (7) si respectiv (8),(9) putem reduce
subhiperarbori de forma prezentata n gura 5.3. corespunzatori regulilor
de forma B y si DE FH. De exemplu, avem urmatoarea funct ionare
(vezi gura 5.4).
Figura 4.5:
Este clar ca daca p E atunci automatul denit mai sus va avea o
evolut ie de acest tip si reciproc, deci E = L(ALM).2
Exemplu: Evolut ia ALM corespunzator gramaticii de la exemplul din
paragraful precedent pentru cuvantul #0110# este:
(, s
0
, #0110#)(#, s
0
, 0110#)(#0, s
0
, 110#)(#01, s
0
, 10#)
(#01, s
0
, B0#). . . (#S, s
0
, BAA#)(#SA, s
D
, AA#)
(#SA, s
0
, BA#). . . (#, s
0
, SABA#)(, s
1
, SBAA#)
(#, s
2
, ABA#)(#, s
3
, ABA#)(#, s
0
, SBA#)(#, s
1
, SBA#)
(#, s
2
, SBA#)(#, s
3
, BA#). . . (#, s
3
, #)
Capitolul 5
Limbaje de tipul zero
5.1 Forma normala
Limbajele de tipul 0 sunt generate de gramatici Chomsky fara restrict ii
asupra regulilor de derivare. Se poate arata ca orice gramatica de tipul zero
accepta urmatoarea forma normala
S SA,
B C[i[,
DE FH,
unde A, C, F, H ,= S. Se observa ca singura deosebire fat a de gramaticile
dependente de context este aceea ca putem avea si reguli.
Demonstrat ia existent ei formei normale urmeaza n linii mari aceiasi
cale cu cea de la limbaje dependente de context.
In prealabil gramatica
se completeaza cu neterminale noi astfel ncat orice regula care nu este de
stergere sa respecte condit ia de monotonie. Acest lucru se poate realiza
dupa cum urmeaza. Fie
X
1
. . . X
n
Y
1
. . . Y
m
, n > m,
o regula care nu respecta condit ia de monotonie. Vom pune
X
1
. . . X
n
Y
1
. . . Y
m
Z
m+1
. . . Z
n
, Z
m+1
, . . . , Z
n
.
Este clar ca orice derivare directa uv n gramatica init iala se poate
obt ine si n gramatica modicata si reciproc (neterminalele Z nu pot aparea
n stanga altor relat ii).
In acest fel, gramatica se va transforma astfel
92 CAPITOLUL 5. LIMBAJE DE TIPUL ZERO
ncat sa cont ina doua categorii de reguli: reguli care respecta condit ia de
monotonie si reguli.
T
denim
WS
D
(p) = max[u
i
[
i = 1, . . . , n
si
WS(p) = minWS
D
(p).
D
Observat ie. WS este prescurtare de la working space.
Spunem ca o gramatica de tipul zero G are spat iul de lucru marginit
daca exista k N astfel ncat pentru p L(G) sa avem WS(p) k[p[. Sa
observam ca orice gramatica care nu are reguli de stergere (except ie S
si atunci S nu apare n dreapta) satisface aceasta condit ie cu k = 1.
Teorema 5.1 (teorema spat iului de lucru) daca o gramatica G are spat iul
de lucru marginit, atunci L(G) L
1
.
5.2. MASINA TURING 93
s
i
1
i
2
i
3 i
4
i
5
p = i
1
i
2
i
3
i
4
i
5
, n = 4
Figura 5.1: Reprezentarea schematica a masinii Turing
5.2 Masina Turing
Conceptul de masina Turing. Masina Turing este un mecanism de re-
cunoastere a limbajelor de tipul zero.
In felul acesta, familiilor de limbaje
din clasicarea Chomsky le corespund automate specice de recunoastere.
Familia L
3
- automate nite,
Familia L
2
- automate pushdown,
Familia L
1
- automate liniar marginite,
Familia L
0
- masina Turing.
O masina Turing (prescurtat MT) se compune dintrun dispozitiv de
comanda care poseda un dispozitiv de scrierecitire si o banda de intrare.
Banda de intrare se considera marginita la stanga si nemarginita la dreapta;
ea cont ine simboluri ale unui alfabet de intrare, ncepand din prima pozit ie.
Alfabetul are un simbol special numit blanc si notat (sau spat iu), care se
considera nregistrat n toata partea neocupata a benzii. Indicele simbolului
din dreptul dispozitivului de scrierecitire l notam cu n si el va constitui
un element al starii masinii Turing. Dispozitivul de comanda se aa ntr-o
anumita stare interna, element al unei mult imi nite de stari.
Schema unei masini Turing este data n gura 6.1. O masina Turing
funct ioneaza n pasi discret i. Un pas de funct ionare consta din:
Dispozitivul de comanda citeste simbolul aat n dreptul dispozitivului
de scrierecitire; n funct ie de simbolul citit, masina Turing trece ntr-o noua
stare interna, scrie pe banda un nou simbol (ntotdeauna diferit de blanc) n
locul simbolului citit si muta banda cu o pozit ie (spre stanga sau dreapta)
sau o lasa pe loc. Convent ional, vom nota cu +1 o miscare spre stanga, cu
94 CAPITOLUL 5. LIMBAJE DE TIPUL ZERO
1 spre dreapta si cu 0 pe loc.
Din punct de vedere matematic, o masina Turing este un sistem
MT = (, I, f, s
0
,
f
)
unde:
este mult imea de stari;
I este alfabetul de intrare;
f : ( I)
(I ) 1, 0, 1, ( I)
I,
este funct ia de evolut ie;
s
0
este simbolul de start;
f
este mult imea de stari nale.
Observat ie. Funct ia f nu este denita pe ntregul produs I; daca
masina ajunge ntr-o stare s iar n dreptul dispozitivului de scrierecitire se
aa simbolul i si (s, i) , (I)
2
daca se efectueaza un pas de evolut ie.
In
termenii funct iei de evolut ie, avem
(1)f(s
1
, i
n
1
) = (s
2
, i, +1), p
2
= i
1
. . . i
n
1
1
ii
n
1
+1
. . . i
m
, n
2
= n
1
+ 1;
(2)f(s
1
, i
n
1
) = (s
2
, i, 1), p
2
= i
1
. . . i
n
1
1
ii
n
1
+1
. . . i
m
, n
2
= n
1
1;
(3)f(s
1
, i
n
1
) = (s
2
, i, 0), p
2
= i
1
. . . i
n
1
1
ii
n
1
+1
. . . i
m
, n
2
= n
1
;
(4)f(s
1
, ) = (s
2
, i, +1), p
2
= p
1
i, n
2
= n
1
+ 1;
(5)f(s
1
, ) = (s
2
, i, 1), p
2
= p
1
i, n
2
= n
1
1;
(6)f(s
1
, ) = (s
2
, i, 0), p
2
= p
1
i, n
2
= n
1
;
Vom spune ca
si vom nota
daca
=
1
2
. . .
n
=
.
Limbajul recunoscut de o masina Turing este prin denit ie
L(MT) = p[p I
, (s
0
, p, 1)
(s, q, ), s
f
.
Observat ie. Este posibil ca masina sa ajunga ntr-o stare nala nainte
de citirea integrala a lui p; analiza starii nale trebuie facuta numai dupa
parcurgerea cuvantului.
Exemplu. Consideram masina turing MT = (, I, f, s
0
,
f
) unde =
s
0
, s
1
, s
2
, I = 0, 1,
f
= s
1
iar funct ia de evolut ie este data de
5.2. MASINA TURING 95
f s
0
s
1
s
2
(s
2
, 1, 1) (s
0
, 0, 1)
0 (s
1
, 0, 1)
1 (s
0
, 1, 1) (s
0
, 0, 1)
Evolut ia masinii pentru p = 001 este
(s
0
, 011, 1)(s
1
, 011, 2)(s
0
, 001, 3)(s
0
, 001, 4)
(s
2
, 0011, 5)(s
0
, 0011, 4)(s
0
, 00110, 5)(s
1
, 00110, 6)
Se poate observa ca dupa citirea ntregului cuvant masina poate sa
efectueze un numar de pasi suplimentari pana la ajungerea ntr-o stare -
nala, deci este posibil ca [p[ < [q[.
Situat ii n care o masina Turing se blocheaza (n aceste situat ii cuvantul
scris pe banda nu este recunoscut):
1. MT ajunge ntr-o stare s, n dreptul dispozitivului de citirescriere se
aa simbolul i si (s, i) , ( I)
;
2. MT este n starea s, a citit simbolul din prima pozit ie i si f(s, i) =
(s
, i
, 1);
3. MT efectueaza un ciclu innit n interiorul cuvantului.
Denit ie 5.1 Vom spune ca o masina Turing este nestat ionara daca
f : ( I)
(I ) 1, +1.
Prin urmare, o masina Turing nestat ionara nu lasa n nici o situat ie banda
pe loc.
Lema 5.1 Orice masina Turing este echivalenta cu o masina Turing nesta-
t ionara.
Demonstrat ie. Pornind de la o MT data construim o MT
nestat ionara
astfel:
Daca f(s, i) = (s
, i
, 1) vom pune f
, i
, 0) vom pune f
(s, i) = (s
, i
, 1) si f
(s
, j) =
(s
, j, +1), j I, unde s
= (I ) .
Construim o gramatica de tipul zero astfel: G = (V
N
, V
T
, S, P) unde
V
N
= (i, j)[i I
, j I S, X
1
, X
2
; V
T
= I .
Denit ia lui P:
S s
0
X
1
, X
1
(i, i)X
1
, i I ,
X
1
X
2
, X
2
(, )X
2
, X
2
,
daca f(s, i) = (s
, i
, 1) atunci s(i
1
, i) (i
1
, i
)s
, i
1
I
,
daca f(s, i) = (s
, i
, 1) atunci (i
1
, i
2
)s(i
3
, i) s
(i
1
, i
2
)(i
3
, i
), i
1
, i
3
I
, i
2
I,
daca s
f
, atunci s(i
1
, i
2
) si
1
s si (i
1
, i
2
)s si
1
s.
Fie p L(MT), p = i
1
. . . i
n
. Presupunem ca MT utilizeaza n re-
cunoastere m pozit ii de pe banda situate la dreapta cuvantului p.
In G
avem
Ss
0
X
1
s
0
(i
1
, i
1
) . . . (i
n
, i
n
)X
2
s
0
(i
1
, i
1
) . . . (i
n
, i
n
)(, )
m
.
Cuvantul p ind recunoscut de MT avem
(1) (s
0
, i
1
. . . i
n
, 1)
(s
f
, i
1
. . . i
h
, k), h n.
Vom arata ca (1) implica existent a unei derivari de forma
2)s
0
(i
1
, i
1
) . . . (i
n
, i
n
)(, )
m
(i
1
, i
1
) . . . (i
k1
, i
k1
)s
f
(i
k
, i
k
) . . . (i
n+m
, i
n+m
),
unde
i
1
, . . . , i
n
I , i
n+1
, . . . , i
n+m
= ,
i
1
, . . . , i
h
I , i
h+1
, . . . , i
n+m
= .
Demonstrat ie prin induct ie asupra lungimii l a evolut iei.
Pentru l = 0 avem
(s
0
, i
1
. . . i
n
, 1)
(s
0
, i
1
. . . i
n
, 1), k = 1, h = n, i
j
= i
j
.
Partea dreapta a lui 2) va avea forma s
0
(i
1
, i
1
) . . . (i
n
, i
n
)(, )
m
si deci 2)
este adevarata.
5.2. MASINA TURING 97
i
1
i
2
i
3
. . . i
g
h = g
i
1
i
2
i
3
. . . i
g
h = g + 1
s s
Figura 5.2: Congurat ii posibile ale masinii Turing
Presupunem ca implicat ia este adevarata pentru l oarecare si consideram
o evolut ie de lungime l + 1. Punem n evident a ultima evolut ie directa
(s
0
, i
1
. . . i
n
, 1)
(s, i
1
. . . i
g
, j)(s
f
, i
1
. . . i
h
, k).
Intotdeauna k = j 1. apoi i
t
= i
t
, t = 1, . . . , g, t ,= j, adica
i
1
, i
2
, . . . , i
j1
, i
j
, i
j+1
, . . . , i
g
;
i
1
, i
2
, . . . , i
j1
, i
j
, i
j+1
, . . . , i
g
.
j
, i
j
.
Din ipoteza inductiva rezulta
s
0
(i
1
, i
1
) . . . (i
n
, i
n
)(, )
m
(i
1
, i
1
) . . . (i
j1
, i
j1
)s(i
j
, i
j
) . . . (i
n+m
, i
n+m
).
j
) = (s
f
, i
j
, 1), k = j + 1, s(i
j
, i
j
) (i
j
, i
j
)s
f
;
f(s, i
j
) = (s
f
, i
j
, 1), k = j 1, (i
j1
, i
j1
)s(i
j
, i
j
) s
f
(i
j
, i
j1
)(i
j
, i
j
).
In ambele cazuri
s
0
(i
1
, i
1
) . . . (i
n
, i
n
)(, )
m
(i
1
, i
1
) . . . (i
k1
, i
k1
)s
f
(i
k
, i
k
) . . . (i
n+m
, i
n+m
).
Acum, deoarece s
f
f
, putem scrie
S
s
0
(i
1
, i
1
) . . . (i
n
, i
n
)(, )
m
(i
1
, i
1
) . . . (i
k1
, i
k1
)s
f
(i
k
, i
k
) . . . (i
m+n
, i
m+n
)
(i
1
, i
1
) . . . (i
k1
, i
k1
)s
f
i
k
s
f
(i
k+1
, i
k+1
) . . . (i
m+n
, i
m+n
)
(i
1
, i
1
) . . . (i
k2
, i
k2
)s
f
i
k1
s
f
i
k
s
f
i
k+1
s
f
(i
k+2
, i
k+2
) . . . (i
m+n
, i
m+n
)
s
f
i
1
s
f
i
2
s
f
. . . s
f
i
n
s
f
i
1
. . . i
n
= p.
Prin urmare p L(G) si L(MT) L(G). Analog se arata si incluziunea
inversa si deci L(MT) = L(G).2
98 CAPITOLUL 5. LIMBAJE DE TIPUL ZERO
Cuprins
1 Limbaje formale 3
1.1 Limbaje, gramatici, proprietat i generale . . . . . . . . . . . . 3
1.2 Ierarhia Chomsky . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Proprietat i de nchidere a familiilor Chomsky . . . . . . . . . 15
2 Limbaje regulate 23
2.1 Automate nite si limbaje regulate . . . . . . . . . . . . . . . 23
2.2 Proprietat i speciale ale limbajelor regulate . . . . . . . . . . . 29
2.3 Lema de pompare pentru limbaje regulate . . . . . . . . . . . 33
2.4 Expresii regulate . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5 Sisteme tranzit ionale . . . . . . . . . . . . . . . . . . . . . . . 36
3 Limbaje independente de context 41
4 Limbaje independente de context 43
4.1 Arbori de derivare . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Decidabilitate si ambiguitate n familia L
2
. . . . . . . . . . . 46
4.3 Forme normale pentru gramatici de tipul 2 . . . . . . . . . . 49
4.4 Automate push-down (APD) . . . . . . . . . . . . . . . . . . 56
4.5 Automate pushdown deterministe . . . . . . . . . . . . . . . 65
4.6 Lema BarHillel . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.7
Inchiderea familiei L
2
la substitut ii . . . . . . . . . . . . . . . 72
4.8 Caracterizarea limbajelor independente de context . . . . . . 75
5 Limbaje dependente de context 83
5.1 Gramatici monotone . . . . . . . . . . . . . . . . . . . . . . . 83
5.2 Automate liniar marginite . . . . . . . . . . . . . . . . . . . . 87
100 CUPRINS
6 Limbaje de tipul zero 93
6.1 Forma normala . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2 Masina Turing . . . . . . . . . . . . . . . . . . . . . . . . . . 95