Sunteți pe pagina 1din 101

Limbaje formale

Mircea Dragan Stefan Maruster


February 23, 2005
1
Bibliograe
1. Octavian C. Dogaru, Bazele informaticii. Limbaje formale, Tipograa
Universitat ii din Timisoara, 1989.
2. Gheorghe Grigoras, Limbaje formale si tehnici de compilare, Tipograa
Universitat ii Alexandru Ioan Cuza, Iasi, 1984.
3. J. E. Hopcroft si J. D. Ullman, Introduction to Automata Theory,
Languages and Computation, Reading Mass., 1979.
4. Solomon Marcus, Gramatici si automate nite, Editura Academiei,
Bucuresti, 1964.
5. Stefan Maruster, Curs de Limbaje formale si tehnici de compilare,
Tipograa Universitat ii din Timisoara, 1980.
6. Gheorghe Orman, Limbaje formale, Editura tehnica, Bucuresti, 1982.
7. Gheorghe Paun, Probleme actuale n teoria Limbajelor formale, Edi-
tura Stiint ica si Enciclopedica, Bucuresti, 1984.
8. Teodor Rus, Mecanisme formale pentru specicarea limbajelor, Edi-
tura Academiei, Bucuresti, 1983.
9. Arto Salomma, Formal languages, Academic Press, New York, 1973.
10. Dan Simovici, Limbaje formale si tehnici de compilare, Editura didac-
tica si pedagogica, Bucuresti, 1978.
11. Luca Dan Serbanat i, Limbaje de programare si compilatoare, Editura
Academiei, Bucuresti, 1987.
2
Capitolul 1
Limbaje formale
1.1 Limbaje, gramatici, proprietat i generale
Not iunea generala de limbaj. Vom considera o mult ime nita si nevida
V , numita alfabet sau vocabular. Elementele mult imii le vom numi simboluri
(sau litere, caractere, variabile).
Denit ie 1.1 Un cuvant peste un alfabet V este un sir p = a
1
a
2
. . . a
n
,
a
i
V, i = 1, n.
Numarul n, deci numarul simbolurilor cuvantului p, se numeste lungimea
cuvantului si va notat cu [p[ sau l(p). Vom considera si cuvantul vid sau
e, care nu cont ine nici un simbol; evident [[ = 0. Un rol deosebit l are sim-
bolul blanc notat cu (nu coincide cu ) precum si simbolul marcaj notat #
pentru delimitarea cuvintelor. Not iunea de cuvant este fundamentala n
teoria limbajelor formale sau n alte domenii ale informaticii; termeni sino-
nimi utilizat i n literatura sunt propozit ie, fraza sau sir. Sa observam ca nu
exista o similitudine foarte buna ntre not iunile de alfabet, cuvant, etc.
din teoria limbajelor formale si not iunile corespunzatoare din lingvistica.
Mult imea tuturor cuvintelor peste un alfabet V o notam cu V
+
. Aceasta
mult ime mpreuna cu cuvantul vid va notata cu V

In general, vom utiliza litere mari de la sfarsitul alfabetului pentru no-


tarea diverselor alfabete, U, V, W, etc.; litere de la nceputul alfabetului
(mari sau mici) pentru notarea simbolurilor, A, B, C, . . . , a, b, c, . . . , i, j, . . .
(uneori cifre 0,1,2,...); pentru notarea cuvintelor vom utiliza litere mici de la
sfarsitul alfabetului, p, q, r, s, t, u, v, w, x, y, z, (aceasta convent ie de notare
nu va absoluta).
4 CAPITOLUL 1. LIMBAJE FORMALE
Fie p = a
1
. . . a
n
, q = b
1
. . . b
m
. Denim pe mult imea V

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

cu aceiasi operat ie este un semigrup cu unitate,


deci un monoid, unitatea ind cuvantul vid (monoidul liber peste V ).
Fie din nou p, q V

. Vom spune ca q este un subcuvat sau un inx


(eventual propriu) al lui p daca p = uqv, u, v 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

= , 0, 1, 00, 01, 10, 000, . . ..


Limbaje peste alfabetul V sunt de exemplu mult imile
L
1
= , 00, 11,
L
2
= 1, 11, 111, . . . = 1
n
[n 1.
Observat ie. Notat ia a
n
, unde a este un simbol al unui alfabet, nseamna
cuvantul constituit din n simboluri a, adica aa . . . a
. .
.

In particular a
0
= .
Operat ii cu limbaje. Limbajele ind mult imi se pot efectua cu lim-
baje operat iile obisnuite cu mult imi: reuniune, intersect ie, diferent a, com-
plementariere (fat a de V

). Exista si operat ii specice limbajelor:


Produsul (concatenarea) a doua limbaje denit prin
L
1
L
2
= pq[p L
1
, q L
2
.
Daca L
1
= L
2
= L vom nota LL = L
2
. Prin recurent a, se deneste
L
n
astfel
L
0
= , L
k
= L
k1
L, k 1.
1.1. LIMBAJE, GRAMATICI, PROPRIET

AT I GENERALE 5


Inchiderea (Kleene) a unui limbaj L este
L

_
k=0
L
k
.

In general, o operat ie de n-aritate oarecare (cel mai adesea binara


sau unara) pe mult imea V

deneste o operat ie corespunzatoare pe


mult imea limbajelor. Astfel, daca
: V

T(V

) si : V

T(V

)
sunt doua operat ii pe V

(unara si respectiv binara) si L


1
, L
2
sunt
doua limbaje peste V , putem deni limbajele (L
1
) respectiv (L
1
, L
2
)
prin
(L
1
) =
_
xL
1
(x), (L
1
, L
2
) =
_
xL
1
,yL
2
(x, y).
Exemple:
1. Limbajul Sub(L). Fie V

si Sub(x) mult imea tuturor subcuvin-


telor lui x (evident Sub este o operat ie unara 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

). Extindem (prelungim) aceasta aplicat ie la V

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

(fara specicat ia direct) daca exista p


1
, p
2
, . . . , p
n
, n 1
astfel nct
p

= p
1

G
p
2

G
. . .
G
p
n
= p

.
Vom scrie p

G
p

(sau p

+
p

cand nu exista nici o confuzie) daca


n > 1 si p

G
p

(sau p

G
p

) daca n 1. Sirul de mai sus va numit


derivare iar numarul de derivari directe din sir l vom numi lungimea
derivarii; se mai spune ca 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

este nchiderea tranzitiva si reexiva a relat iei de transformare directa .


Denit ie 1.4 . Limbajul generat de gramatica G este prin denit ie limbajul
L(G) = p[ p V

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

p. Punem n evident a ultima


derivare directa X
1
. . . X
m

qp. Conform ipotezei inductive, q = q


1
. . . q
m
si X
j

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

echivalenta, de acelasi tip, cu proprietatea ca daca o regula are n


partea dreapta un terminal, atunci ea este de forma A i, A V
N
, i V
T
.
Demonstrat ie. Luam gramatica 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

pastreaza tipul lui G si ca L(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

se construieste pornind de la P astfel. Fie X p P, p ,= .


Includem atunci n P

aceasta regula precum si toate regulile de forma


X p
j
, unde p
j
se obt ine din p lasand la o parte, n toate modurile posibile,
simbolurile din U
f
. De exemplu daca X ABC P si A, B U
f
, vom
induce n 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

este independenta de context


si ca nu cont ine reguli de stergere.
Vom arata ca L(G) = L(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

asa ncat putem scrie


X
G

X
1
X
4
X
6
. . . X
m

p
1
p
4
p
6
. . . p
m
= p.
Deci X

p si luand X = S obt inem p L(G

). Prin urmare L(G)


L(G

).
Sa aratam acum incluziunea inversa , L(G

) L(G).
Fie p L(G

), S

p. Punem n evident a o derivare directa oarecare


S

u
G

p.
Daca n derivarea directa u
G

v se aplica o regula care exista si n G,


atunci evident pasul respectiv poate facut si n G. Sa presupunem ca se
1.3. PROPRIET

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

a provenit dintr-o regula din P, lasand la o


parte simboluri din U
f
, n cazul nostru din X ABC, lasandu-l la o parte
pe A U
f
. Deoarece A

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

ca si mai sus; orice cuvant p ,= din L(G)


se poate obt ine n G

si invers , deci L(G

) = L(G). Consideram atunci


o gramatica G

= (V
N
S

, V
T
, S

, P

, S

S). Evident
L(G

) = L(G). Toate regulile lui G

respecta tipul 1 (cu u = v = )


si cont ine o singura regula de stergere S

iar S

nu apare n partea
dreapta a vreunei reguli. Deci G

este de tipul 1 si orice limbaj independent


de context este inclus n L
1
, adica L
2
L
1
.2
1.3 Proprietat i denchidere a familiilor Chom-
sky
Fiind data o operat ie binara notata cu pe o familie de limbaje L, vom
spuna ca familia L este nchisa la operat ia daca L
1
, L
2
L implica
L
1
L
2
L. Denit ia not iunii de nchidere pentru operat ii unare sau cu
aritate oarecare este analoaga.
Vom numi familiile din clasicarea Chomsky, mai scurt, familiile Chom-
sky.

Inchiderea familiilor Chomsky la reuniune.


Teorema 1.1 Familiile de limbaje L
j
, j = 0, 1, 2, 3 sunt nchise fat a de
reuniune.
Demonstrat ie. Fie G
k
= (V
N
k
, V
T
k
, S
k
, P
k
), k = 1, 2 doua gramatici de
acelasi tip j, j = 0, 1, 2, 3. Putem presupune ca V
N
1
V
N
2
= . Trebuie sa
aratam ca limbajul L(G
1
) L(G
2
) este de acelasi tip j.

In acest scop vom
construi o gramatica de tipul j care sa genereze limbajul L(G
1
) L(G
2
).
Consideram urmatoarea gramatica:
16 CAPITOLUL 1. LIMBAJE FORMALE
G = (V
N
1
V
N
2
S, V
T
1
V
T
2
, P
1
P
2
S S
1
[S
2
).
Este evident ca G are acelas tip j ca si cele doua gramatici date.
Vom arata ca L(G) = L(G
1
) L(G
2
).
Fie p L(G), adica S

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.

Inchiderea familiilor Chomsky la produs.


Teorema 1.2 Familiile de limbaje L
j
, j = 0, 1, 2, 3 sunt nchise fat a de
produs.
Demonstrat ie. Fie G
k
= (V
N
k
, V
T
k
, S
k
, P
k
), k = 1, 2 doua gramatici de
acelasi tip j, j = 0, 1, 2, 3. Putem presupune ca V
N
1
V
N
2
= . Vom
construi o gramatica de tipul j care sa genereze limbajul L(G
1
)L(G
2
).
Familiile L
0
, L
1
, L
2
. Luam gramatica G astfel
G = (V
N
1
V
N
2
S, V
T
1
V
T
2
, P
1
P
2
S S
1
S
2
).
Fie p L(G), S

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

Inchiderea familiilor Chomsky la operat ia nchidere Kleene.


Teorema 1.3 Familiile L
j
, j = 0, 1, 2, 3 sunt nchise fat a de operat ia de
nchidere Kleene.
Demonstrat ie. Familiile L
0
, L
1
. Fie G o gramatica de tipul 0 sau 1 care
satisface condit ia din lema 1.2. Construim o gramatica G

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

nu modica tipul lui G.


Fie p L(G

), S


p. Deosebim 3 cazuri dupa prima regula care se
aplica:
1. Prima regula este S

; atunci derivarea noastra va avea forma


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

XS; derivarea va avea forma


(n G

):
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.

In acest moment putem sa l rescriem pe Xi cu una din regulile Xi


Si[XSi, etc.
Invers, daca p L(G)

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

se obt ine din regulile de categoria II din P si anume, daca A p P


atunci A pS 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

; derivarea va avea forma


(C) S

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

[w cont ine maxim 2 de 0 ;


(h) L = wa w[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

Figura 2.1: Reprezentarea schematica a unui automat nit

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

se unesc cu un arc orientat de la s la s

daca exista i I astfel


ncat s

f(s, i); arcul respectiv va notat cu i.


Exemplu AF = (, I, f, s
0
,
f
) unde = s
0
, s
1
, s
2
, I = i
1
, i
2
,
f
=
s
2
, iar f este data de tabelul
2.1. AUTOMATE FINITE SI LIMBAJE REGULATE 25

_
`
_
`
_
'

`
-
i
1
i
1
i
2
s
1
s
0
s
2
i
1
, i2
i
1
i
2
`

Figura 2.2: Diagrama de stari


s
0
s
1
s
2
i
1
s
1
s
2
s
0

i
2
s
0
, s
1
s
0
, s
1

Diagrama de stari corespunzatoare este prezentata n gura 2.2.


Funct ia de evolut ie Funct ia f se prelungeste de la I la T() I

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

i) = f(f(s, p), q).


2
Limbaje regulate.
Denit ie 2.1 Limbajul recunoscut de automatul nit AF = (, I, f, s
0
,
f
)
este
L(AF) = p[p I

, 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.

In cazul unui automat nit determinat limbajul recunoscut poate


denit n modul urmator. Pentru ecare s denim funct ia f
s
: I


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

toate regulile din P


care convin; e acum n P o regula de forma
A pB, p = i
1
. . . i
n
Vom introduce 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
.

In cazul unei reguli de forma A p cu [p[ > 1 procedam analog, ex-


ceptand ultima regula nou introdusa care va avea forma Z
n1
i
n
. Sa
mai facem observat ia ca simbolurile Z
1
, . . . , Z
n1
le luam distincte pentru
ecare caz.
Se poate arata usor ca L(G) = L(G

).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

AT I SPECIALE ALE LIMBAJELOR REGULATE 29


(2)
S i
1
A
1
,
A
1
i
2
A
2
,
. . .
A
n1
i
n
.

In automat avem corespunzator:


(3) :
A
1
f(S, i
1
),
A
2
f(A
1
, i
2
),
. . .
X f(A
n1
, i
n
)
Putem scrie traiectoria
(4) S
i
1
A
1
i
2
A
2
i
3
. . .
i
n
X
f
Deci p L(AF).
Daca p = , atunci S si S P. Dar atunci L(AF), caci
automatul este n starea S si ramne n aceasta stare dupa citirea lui ;
cum nsa n acest caz S
f
rezulta ca si n acest caz p L(AF).

In
consecint a L(G) L(AF).
Fie acum p = i
1
. . . i
n
L(AF); atunci avem traiectoria (4), relat iile
(3), regulile de generare (2) si putem scrie derivarea (1), adica p L(G) si
L(AF) L(G).2
Partea II E 1 E L
3
.
Vom indica numai modul de construct ie a gramaticii. Fie AF = (, I, f, s
0
,
f
)
automatul nit care recunoaste limbajul E, pe care l presupunem determin-
ist. Construim gramatica G = (, I, s
0
, P) unde mult imea P este denita
astfel
f(A, i) = B genereaza regula A iB P,
n plus daca B
f
se genereaza si regula A i P.
Putem arata ca L(G) = L(AF).2
2.2 Proprietat i speciale ale limbajelor regu-
late
Caracterizarea limbajelor regulate. Limbajele regulate, ind part i din
I

, se pot caracteriza algebric, independent de mecanismele de generare


(gramaticile de tipul 3) sau de cele de recunoastere (automatele nite).
30 CAPITOLUL 2. LIMBAJE REGULATE
Teorema 2.3 Fie E I

un limbaj. Urmatoarele armat ii sunt echiva-


lente.
(a) E 1;
(b) E este o reuniune de clase de echivalent e a unei congruent e de rang
nit;
(c) Urmatoarea congruent a
= (p, q)[
E
(r
1
pr
2
) =
E
(r
1
qr
2
), r
1
, r
2
I

,
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

si (p, q) , atunci (pr, qr)


si (rp, rq) . De exemplu, prima apartenent a se deduce astfel
f(s, pr) = f(f(s, p), r) = f(f(s, q), r) = f(s, qr), etc.
Prin urmare este o relat ie de congruent a.
Sa aratam ca aceasta congruent a este de rang nit, adica mult imea cat
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

() sunt vide; n acest caz I

() este o clasa de echivalent a.

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

(), atunci f(s, q) = (s), s , ceea


ce nseamna ca f(s, q) = f(s, p), s , si deci (p, q) adica q C
p
si
I

() C
p
. Invers daca q C
p
atunci f(s, q) = f(s, p) = (s), s si
q I

(), adica C
p
I

(). Aceasta nseamna ca I

() = C
p
, adica I

()
este o clasa de echivalent a .

Intre mult imea cat I

/ si mult imea funct iilor denite pe cu valori


n putem stabili urmatoarea corespondent a biunivoca: unei funct ii :
i corespunde clasa de echivalent a I

(). Invers, ind data o clasa


2.2. PROPRIET

AT I SPECIALE ALE LIMBAJELOR REGULATE 31


de echivalent a C, luam p C (oarecare) si atasam lui C funct ia (s) =
f(s, p)s . T inand cont ca daca q C atunci f(s, p) = f(s, q), s ,
rezulta ca funct ia nu depinde de elementul p ales.
Dar mult imea funct iilor denite pe cu valori n este nita, deci I

/
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

/, asa ncat card(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

), caci daca q Pref(E) atunci s =


f(s
0
, q)

f
conform denit iei lui

f
.
Sa aratam acum ca L(AF

) Pref(E). Fie r 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

), adica Pref(E) este limbaj regulat.2


Limbajul C(E). Avem
C(E) = p I

[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

vom nt elege 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).

In mod analog se pot obt ine si alte proprietat i. De exemplu:


S[R = S[R,
R[R = R,
36 CAPITOLUL 2. LIMBAJE REGULATE
(R S) P = R (S P),
R (S[P) = (R S)[(R P), etc.

In cazul n care nu exista pericol de confuzie, vom nota cu L (fara indice)


limbajul reprezentat de o anumita expresie regulata.
Exemple.
1. R = a

; 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)

reprezinta mult imea tuturor cuvintelor peste alfa-


betul a, b.
4. R = a[ba

; 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

(nchiderea tranzitiva si re-


exiva).
Fie i I ; vom spune ca sistemul tranzit ional evolueaza direct din
starea s

n starea s

daca:
(1) i = si (s

, s

. Pe diagrama de stari vom avea o traiectorie


punctata de la starea 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

. Pe diagrama de stari, putem ajunge din 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

sunt redate n gura ??.

In acest mod putem construi succesiv (recurent) un sistem tranzit ional


corespunzator unei expresii regulate.
Exemplu. Sistemul tranzit ional corespunzator expresiei R = a[b a

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

n graful ( este o mult ime de arce (v


1
, v
2
)(v
2
, v
3
) . . . (v
n1
, v
n
)
cu 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

astfel ncat L(G

) =
L(AFD). Reamintim ca regulile lui G

se construiesc astfel f(A, a) = B


A aB, f(A, a)
f
A a.
Sa presupunem acum ca L este ambigu; atunci orice gramatica care
l genereaza, inclusiv G

, este ambigua. Aceasta nseamna ca exista un


p L(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

n care am facut substitut iile; adica


facem urmatoarea nlocuire
X uY v se nlocuieste cu X up
1
v[ . . . [up
n
v
(Regulile Y p
1
[ . . . [p
n
le vom pastra neschimbate).
Demonstrat ie. Fie p L(G) si S

p. Punem n evident a doi pasi con-
secutivi oarecare:
G : S

rst

p.
Daca n rs se utilizeaza regula X uY v atunci n mod necesar n pasul
urmator se utilizeaza una din regulile Y p
1
[ . . . [p
n
, sa presupunem Y
p
j
(evident, este posibil ca aceasta regula sa nu se aplice n pasul imediat
urmator, dar ea poate adusa n aceasta pozit ie). Prin urmare
(A) G : r = r

Xr

uY vr

up
j
vr

= t.
Acesti doi pasi se pot obt ine si n G

(ntr-un singur pas):


(B) 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

p, atunci daca la un pas se utilizeaza o


regula nou introdusa (pasul (B)), transformarea respectiva se poate obt ine
si n G cu doi pasi (pasii (A)); deci p L(G) si L(G

) 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

; n cazul n care se aplica o


regula de forma (3), avem
G : u = u

Xu

X
1
. . . X
n
u

= v.
Aceasta derivare se poate obt ine si n G

n mai mult i pasi si anume


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

cu except ia regulilor (A); acestea se nlocuiesc cu


X u
1
[u
2
[ . . . [u
n
[u
1
Y [u
2
Y [ . . . [u
n
Y,
Y v
1
[ . . . [v
m
[v
1
Y [ . . . [v
m
Y
G

este de tipul 2 si nu are simboluri stang recursive; se vede nsa ca Y este


un simbol drept recursiv.
Fie p L(G), S

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

. Putem aplica, ncepand de la u spre


dreapta, n primul rand regulile pentru X si sa urmarim numai subarborele
respectiv, deci
G : X
G
Xv
j
1

G
Xv
j
2
v
j
1

G
. . .
G
Xv
j
s
. . . v
j
1

G
u
j
v
j
s
. . . v
j
1
.
Aceeasi forma propozit ionala o putem obt ine si n gramatica G

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

este n forma normala operator. Pentru a demonstra ca


L(G) = L(G

) vom deni mai ntai o funct ie : P


2
P
3
P
4
P astfel:
((A, a) ) = A a pentru (A, a) P
2
;
((A, a) (B, a)) = A B pentru (A, a) (B, a) P
3
;
((A, a) (B, b)b(C, a)) = A BC pentru (A, a) (B, b)b(C, a) P
4
.
Funct ia se extinde n mod natural la

: (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)

w folosind product iile

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

exista product ia (A, a)


, deci (A, a) si ((A, a) ) = A a.
Invers, daca (A, a)w n G

atunci w = (dupa forma product iilor din


G

) si are loc proprietatea enunt ata.


Sa presupunem armat ia adevarata pentru derivari de lungime cel mult
n 1 si sa o demonstram pentru derivari de lungime n > 1. Fie asadar
A

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

avem product ia (A, a) (B, a) deci (A, a)


w n gramatica G

.
II. Prima product ie este de forma A BC. Atunci
A
G
BC

G
wa.

In acest caz wa = ubva (conform lemei de localizare), astfel ca B


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

product ia (A, a) (B, b)b(C, a) si n


G

putem scrie derivarea extrem dreapta


(A, a)(B, b)b(C, a)

(B, b)bv

ubv = w
si product iile care s-au aplicat ndeplinesc condit iile din enunt .

In mod analog se demonstreaza reciproca.


Din aceasta armat ie, luand n particular A = S, obt inem:
S

G
wa (S, a)

w, w V

T
, a V
T
.
Cum n G

exista si product ia S (S, a)a, am gasit: wa L(G) daca si


numai wa L(G

), deci cele doua gramatici sunt echivalente.


Pentru a ncheia demonstrat ia trebuie sa consideram si cazul L(G).
Aplicam construct ia de mai sus unei gramatici ce genereaza L(G) si
obt inem G

= (V

N
, V
T
, S, P

) gramatica operator corespunzatoare. Con-


sideram acum gramatica G
1
= (V
N
1
, V
T
, S
1
, P
1
) unde V
1
= V

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

) este funct ia de evolut ie;


s
0
este starea init iala;
z
0
Z este simbolul init ial al memoriei push-down.
Un APD are n general o funct ioanre nedeterminista, card f(s, i, z) 1;
mult imea automatelor push-down deterministe formeaza o clasa speciala.

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

si scrie n memoria push-down un cuvant q Z

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

este subcuvantul de pe banda de intrare


ramas de citit (inclusiv simbolul din dreptul dispozitivului de citire), iar
q Z

este subcuvantul din memoria push-down.


Vom spune ca un APD trece direct din starea
1
= (s
1
, p
1
, q
1
) n starea

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.

In particular, daca u = S obt inem implicat ia dorita.


Procedam prin induct ie asupra lungimii lui p.
Daca [p[ = 1, atunci p = i, u = X iar evolut ia va avea un singur pas
(s, i, X)(s, , ), deci (s, ) f(s, i, X) si X i P. Putem scrie
u = X
G
i = p.
Presupunem ca implicat ia este adevarata pentru un cuvant [p[ = l si
consideram un p astfel ncat [p[ = l + 1. Fie i si X primele simboluri din
p si u, deci p = ip

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

, ) f(s, i, z) vom introduce n P reguli de forma


(s, z, 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 este o regula, adica putem scrie (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

i si punem n evident a ultimul pas.


(s, z, s

)

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, i, z) = f(s, i, z), s , i I , z Z;


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

(s, i, z) = f(s, i, z), s , i I , z Z;


f(s

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

, deci APD trebuie sa ajunga ntr-o stare s


f
, apoi sa
ramana n 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

exista o evolut ie de forma (s


0
, p, z
0
)

(s, , q).

Intr-un APD determinist neblocabil orice cuvant peste I poate citit.


Evident, de aici nu rezulta ca orice cuvant este recunoscut de APD.
Lema 3.2 Un APD determinist cu stari nale este echivalent cu un APD
determinist cu stari nale neblocabil (relativ la prima situat ie de blocare).
Demonstrat ie.Fie APD
f
= (, I, Z, f, s
0
, z
0
,
f
). Construim APD

f
=
( s

0
, s

, I, Z z

0
, f

, s

0
, z

0
,
f
) unde:
(1) f

(s, i, z) = f(s, i, z) daca f(s, i, z) ,= , s , i I , z Z;


(2) f

(s, i, z) = (s

, z) daca f(s, i, z) = f(s, , z) = , s , i I, z Z;


(3) f

(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
[

[[

[ > nkl, atunci n aceasta evolut ie trebuie sa existe doua congurat ii


cu aceiasi stare s si cu acelasi simbol z n varful memoriei pushdown. Deci
(s

, ,

)

(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 [

[ [

[ > nkl, ar rezulta ca n memoria pushdown am


avea zq
m
, m N si lungimea cuvantului nu ar nita.2
3.5. AUTOMATE PUSHDOWN DETERMINISTE 65
Teorema 3.13 Daca E este un limbaj independent de context determin-
ist atunci limbajul complementar I

E este de asemenea independent de


context determinist.
Demonstrat ie. Fie APD
f
= (, I, Z, f, s
0
, z
0
,
f
) automatul pushdown
determinist care recunoaste limbajul E. Construim un automat pushdown
determinist care va recunoaste limbajul I

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

. Atunci multiplicand n p subcu-


vintele v si x, puterile simbolurilor a si b se maresc iar c ramane pe
loc, contrazicanduse din nou structura cuvintelor din L
3
.

In concluzie L
3
nu este independent de context.
Fie acum limbajele
L

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

o numim substitut ie.


Observat ie. Prelungirea canonica se deneste recursiv astfel:
s() = , s(a
1
. . . a
n
) = s(a
1
) . . . s(a
n
).
O reprezentare graca este prezentata n gura 4.10. Observam ca
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

prin substitut ia s este


s(L) =
_
aL
s(a).
Denit ie 3.16 Vom spune ca o familie de limbaje L este nchisa la sub-
stitut ii daca oricare ar L L si oricare ar substitut ia s : 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

cont ine toate regulile din toate gramaticile G


a
nemodicate;
regulile din G le modica, si anume terminalele din part ile drepte lenlocuim
cu simbolurile de start din gramaticile G
a
.
Sa mai observam ca G

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

), adica s(L) L(G

).
Invers, e u L(G

). deoarece (V
a
N
) V
N
= , derivarile din G

care utilizeaza reguli din P


a
nu introduc simboluri din V
N
.

In derivarea
S

u efectuam mai ntai derivarile directe care utilizeaza reguli de forma


X (). Vom avea
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

) s(L) si n nal s(L) = 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

sunt regulate, deci si indepen-


dente de context.
Denim o substitut ie s astfel: V = a, b, V
a
, V
b
oarecare si e L
1

V

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.

In nal, aplicand regula de stergere, obt inem


X

i
3
i
1
i

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

si conform ipotezei inductive avem Y


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

, numarul literelor an w este egal cu numarul


literelor b n w ;
(b) L = w[w a, b

, w = w;
(c) L = w[w (, )

, w este un cuvant n care ecare paranteza


deschisa are o pereche, paranteza nchisa .
6. Folosind lema de pompare sa se arate ca urmatoarele limbaje nu sunt
independente de context:
(a) L = a
i
b
j
c
k
[i < j < k;
(b) L = a
i
b
j
[j = i
2
;
(c) L = a
n
b
n
c
n
[n 1;
(d) L = a
i
[i prim ;
(e) L = a
i
b
i
c
j
[j i;
80 CAPITOLUL 3. LIMBAJE INDEPENDENTE DE CONTEXT
Capitolul 4
Limbaje dependente de
context
4.1 Gramatici monotone
Reamintim ca o gramatica este monotona daca orice regula u v satisface
condit ia [u[ [v[. Este permisa si regula, S (care evident nu satisface
condit ia de monotonie) cu condit ia ca S sa nu apara n dreapta vreunei
reguli.
Lema 4.1 Fie G
1
= (V
N
, V
T
, S, P u v) unde u v este o regula
care satisface condit ia de monotonie iar P sunt reguli de tipul 1. Atunci G
1
este echivalenta cu o gramatica dependenta de context.
Demonstrat ie. Presupunem ca P satisface condit ia din lema 1.2, deci u =
X
1
. . . X
m
si v = Y
1
. . . Y
n
cu X
i
, Y
j
V
N
si m n. Putem presupune ca
m 2. Fie Z
1
, . . . , Z
m
neterminale noi si consideram regulile R:
X
1
X
2
. . . X
m
Z
1
X
2
. . . X
m
,
Z
1
X
2
. . . X
m
Z
1
Z
2
. . . X
m
,
. . .
Z
1
Z
2
. . . Z
m1
X
m
Z
1
Z
2
. . . Z
m
Y
m+1
. . . Y
n
,
Z
1
Z
2
. . . Z
m
Y
m+1
. . . Y
n
Y
1
Z
2
. . . Z
m
Y
m+1
. . . Y
n
,
. . .
Y
1
Y
2
. . . Y
m1
Z
m
Y
m+1
. . . Y
n
Y
1
Y
2
. . . Y
n
.
Luam G

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

este monotona, are ordinul n 1 si L(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

urmatoarel reguli de comutare (relativ la


simbolurile nou introduse

X
1
,

X
2
):
A

X
1


X
1
A,
A

X
2


X
2
A,
, A V
N
.
Se vede ca G

este o gramatica liniar marginita. Sa aratam ca L(G) = L(G

).
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

S; de asemenea, aceste simboluri nu pot eliminate


decat cu regulile X
1

X
1
Y
1
Z
1
si X
2

X
2
Y
2
Z
2
, etc. Astfel derivarea
noastra trebuie sa aiba forma descrisa mai sus, de unde rezulta 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

evolueaza (fara specicat ia direct) n 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).

In acest fel ajungem la partea triunghiulara a hiperarborelui (situata


n exemplu deasupra liniei punctate) care va avea pe frontiera un cuvant
de forma #SXY . . . Z# cu X, Y, . . . , Z V
N
. Aceasta parte va redusa
cu relat iile din categoria IV. Astfel, dupa plasarea dispozitivului de citire
scriere pe S, cu ajutorul relat iei (10), dispozitivul se plaseaza pe marcajul
de nceput si trece n starea s
1
, dupa care revine pe S n starea s
2
(relat ia
11).

In continuare au loc secvent e de forma din gura 5.5.

In urma acestor secvent e pe banda se va scrie cuvantul # . . . # iar


dispozitivul se va plasa pe marcajul de sfarsit n starea s
3
.

In sfarsit, cu
ajutorul relat iei (2) funct ionarea automatului este oprita.
90 CAPITOLUL 4. LIMBAJE DEPENDENTE DE CONTEXT
. . . . . .
. . .
. . .
. . . . . .
. . . . . .
. . . . . .
. . .
. . .
. . .
. . .
. . .
#
#
#
#
. . .
S X Y
s
2
X Y
s
3
S Y
s
0
S Y
s
1
S Y
s
2
X
0 A B
s
0
X
0 A B
s
1
X
0
A B
s
2
A B
s
0
X
0 B
s
0

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.

In continuare reducem ordinul regulilor monotone, urmand aceiasi pro-


cedura ca la limbaje dependente de context, pana la ordinul 2 inclusiv (
regulile nu intervin cu nimic n acest proces).

In nal obt inem reguli de
urmatoarele categorii:
(1) B C[i[ ,
(2) DE FH,
(3) X Y Z.
Regulile de forma (3) cu X ,= S sau Y ,= S le eliminam cu procedura
cunoscuta plus un simbol de start nou, cu reguli stang recursive cunoscute
pentru neterminalele nou introduse.
Relativ la puterea generativa a gramaticilor de tipul zero se poate arata
ca L
1
L
0
(strict). Demonstrat ia se face pe o cale indirecta (nu s-a gasit un
exemplu de limbaj de tipul zero care sa nu poata generat de o gramatica
dependenta de context).
Dupa cum am vazut n primul capitol limbajele de tipul zero sunt nchise
fat a de operat iile regulate. Se poate arata ca familia L
0
este nchisa la
intersect ie.
Ment ionam si urmatoarea teorema a spat iului de lucru. Fie G o gra-
matica de tipul zero. Pentru o derivare
D : S = u
0
u
1
. . . u
n
= p V

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)

spunem ca masina se blocheaza. Exista si


alte cazuri de blocare, de exemplu situat ia n care dispozitivul de scriere
citire se aa n dreptul primului simbol, iar pasul de funct ionare prevede o
miscare a benzii spre dreapta.
O stare (sau congurat ie) a unei masini Turing este un triplet de forma
= (s, p, n) unde s este starea interna, p este cuvantul scris pe banda iar n
este indicele simbolului din dreptul dispozitivului de scrierecitire.
Vom spune ca starea
1
= (s
1
, p
1
, n
1
) evolueaza direct n starea
2
=
(s
2
, p
1
, n
2
) si vom scrie
1

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

evolueaza (fara specicat ia direct) n

si vom nota

daca

sau daca exista


1
, . . . ,
n
astfel ncat

=
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

(s, i) = f(s, i);


Daca f(s, i) = (s

, i

, 0) vom pune f

(s, i) = (s

, i

, 1) si f

(s

, j) =
(s

, j, +1), j I, unde s

este o stare nou introdusa.


Astfel, n cazul unei ramaneri pe loc a lui MT, noua masina va face
un pas spre stanga si unul spre dreapta, fara sa modice nici starea si nici
cont inutul benzii. Evident, cele doua masini sunt echivalente.
96 CAPITOLUL 5. LIMBAJE DE TIPUL ZERO
Limbajele recunoscute de masini Turing.
Teorema 5.2 Un limbaj este recunoscut de o masina Turing daca si numai
daca este de tipul zero.
Demonstrat ie. Partea I. E = L(MT) E L
0
.
Fie MT = (, I, f, s
0
,
f
) o masina Turing astfel ncat E = L(MT).
Putem presupune ca MT este nestat ionara. Fie I

= (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).

In general h = g sau h = g + 1 n conformitate cu urmatoarele doua


cazuri (gura 6.2).

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
.

In urma ultimei evolut ii directe vor diferi numai simbolurile i

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
).

In conformitate cu denit ia evolut iei directe avem


f(s, i

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

S-ar putea să vă placă și