Documente Academic
Documente Profesional
Documente Cultură
Mircea Dragan
Stefan Maruster
Bibliografie
1. Octavian C. Dogaru, Bazele informaticii. Limbaje formale, Tipografia
Universit
atii din Timisoara, 1989.
2. Gheorghe Grigoras, Limbaje formale si tehnici de compilare, Tipografia
Universit
atii 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 finite, Editura Academiei,
Bucuresti, 1964.
5. S
tefan M
aruster, Curs de Limbaje formale si tehnici de compilare,
Tipografia Universit
atii din Timisoara, 1980.
6. Gheorghe Orman, Limbaje formale, Editura tehnica, Bucuresti, 1982.
7. Gheorghe P
aun, Probleme actuale n teoria Limbajelor formale, Editura S
tiintific
a si Enciclopedica, Bucuresti, 1984.
8. Teodor Rus, Mecanisme formale pentru specificarea limbajelor, Editura Academiei, Bucuresti, 1983.
9. Arto Salomma, Formal languages, Academic Press, New York, 1973.
10. Dan Simovici, Limbaje formale si tehnici de compilare, Editura didactic
a si pedagogic
a, Bucuresti, 1978.
11. Luca Dan S
erb
anati, Limbaje de programare si compilatoare, Editura
Academiei, Bucuresti, 1987.
Capitolul 1
Limbaje formale
1.1
Notiunea general
a de limbaj. Vom considera o multime finita si nevida
V , numit
a alfabet sau vocabular. Elementele multimii le vom numi simboluri
(sau litere, caractere, variabile).
Definitie 1.1 Un cuv
ant peste un alfabet V este un sir p = a1 a2 . . . an ,
ai V, i = 1, n.
Num
arul n, deci num
arul simbolurilor cuvantului p, se numeste lungimea
cuv
antului si va fi notat cu |p| sau l(p). Vom considera si cuv
antul vid sau
e, care nu contine nici un simbol; evident || = 0. Un rol deosebit l are simbolul blanc notat cu [([nu coincide cu ) precum si simbolul marcaj notat #
pentru delimitarea cuvintelor. Notiunea de cuvant este fundamentala n
teoria limbajelor formale sau n alte domenii ale informaticii; termeni sinonimi utilizati n literatur
a sunt propozitie, fraza sau sir. Sa observam ca nu
exist
a o similitudine foarte bun
a ntre notiunile de alfabet, cuvant, etc.
din teoria limbajelor formale si notiunile corespunzatoare din lingvistica.
Multimea tuturor cuvintelor peste un alfabet V o notam cu V + . Aceasta
multime mpreun
a cu cuv
antul vid va fi notata cu V .
In general, vom utiliza litere mari de la sfarsitul alfabetului pentru notarea 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 conventie de notare
nu va fi absolut
a).
Operatii cu limbaje. Limbajele fiind multimi se pot efectua cu limbaje operatiile obisnuite cu multimi: reuniune, intersectie, diferenta, complementariere (fata de V ). Exista si operatii specifice limbajelor:
Produsul (concatenarea) a doua limbaje definit prin
L1 L2 = {pq|p L1 , q L2 }.
Dac
a L1 = L2 = L vom nota LL = L2 . Prin recurenta, se defineste
n
L astfel
L0 = {}, Lk = Lk1 L, k 1.
I GENERALE
1.1. LIMBAJE, GRAMATICI, PROPRIETAT
Inchiderea
(Kleene) a unui limbaj L este
L =
Lk .
k=0
(x), (L1 , L2 ) =
xL1
(x, y).
xL1 ,yL2
Exemple:
1. Limbajul Sub(L). Fie V si Sub(x) multimea tuturor subcuvintelor lui x (evident Sub este o operatie unara pe V ). Daca L
este un limbaj peste V , putem defini limbajul
Sub(L) =
Sub(x).
xL
adic
a limbajul constituit din toate subcuvintele tututor cuvintelor lui L. Semnificatii analoage vor avea si limbajele P ref (L)
si Suf (L).
2. Limbajul M i(L). Fie x = a1 . . . an un cuvant peste alfabetul
V . Cuv
antul M i(x) = an . . . a1 se numeste rasturnatul lui x
(M i este prescurtarea cuvantului englez mirror). Se mai noteaza
M i(x) = x
. Avem atunci si rasturnatul unui limbaj
[
M i(L) =
M i(x).
xL
S
a observam ca aceasta operatie transforma un limbaj peste
un alfabet V ntr-un limbaj peste un alfabet U si ca pastreaza
operatia de concatenare. Daca card s(a) < , a V , vom
spune ca substitutia este finit
a, iar daca card s(a) = 1, a V
vom spune ca s este un homomorfism.
Gramatici generative de tip Chomsky. Un limbaj peste un alfabet
poate s
a fie o multime finita sau infinita. Daca este o multime finita, el poate
fi definit prin scrierea efectiva a cuvintelor limbajului. In cazul n care este
o multime infinit
a, el poate fi definit n anumite cazuri punand n evidenta
structura cuvintelor lui. De exemplu
L2 = {01, 0011, 000111, . . .} = {0n 1n |n 1}.
Exist
a dou
a procedee mai generale pentru definirea limbajelor:
1. Procedee generative, care permit generarea tuturor cuvintelor limbajului. 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 apartine sau
nu limbajului. Sunt asa-numitele automate, automate finite, automate
push-down, etc.
Un rol deosebit n teoria limbajelor formale l au gramaticile Chomsky.
Fie VN si VT dou
a alfabete disjuncte, numite respectiv alfabetul simbolurilor
neterminale (VN ) si alfabetul simbolurilor terminale (VT ). Notam VG =
VN VT (alfabetul general) si fie P VG VN VG VG . Multimea P va fi deci
format
a din perechi de forma (u, v), unde u = u0 Au00 , u0 , u00 VG , A VN
iar v VG , deci u si v sunt cuvinte peste VG , cu observatia ca u trebuie sa
contin
a cel putin un simbol neterminal. Vom spune ca o astfel de pereche
este o regul
a (productie, regula de generare, regula de rescriere) si o vom
nota u v (vom spune: u se transforma n v). Apartenenta 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 ).
I GENERALE
1.1. LIMBAJE, GRAMATICI, PROPRIETAT
Vom scrie p0 p00 (sau p0 p00 cand nu exista nici o confuzie) daca
G
S
a observ
am c
a transform
arile astfel definite , , sunt relatii pe
+
VG . Este clar c
a relatia este nchiderea tranzitiva a relatiei , iar relatia
Observatie. Dac
a p VG si S p se spune ca p este o form
a propozitional
a
G
n gramatica G.
Exemple:
1. Fie G = (VN , VT , S, P ), unde VN = {A}, VT = {0, 1}, S = A (evident)
si P = {A 0A1, A 01}. O derivare n aceasta gramatica este, de
exemplu
A0A100A11000111 = 03 13 .
Este evident c
a L(G) = {0n 1n |n 1}.
I GENERALE
1.1. LIMBAJE, GRAMATICI, PROPRIETAT
10
A, B, C VN , u, v, p VT ;
Gramatici st
ang (drept) liniare:
A uB (A Bv)
A, B, C VN , u, v, p VT ;
Cp
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 dreapt
a vida. Se introduce urmatoarea conventie de completare:
ntr-o gramatic
a monoton
a sau dependent
a de context se admite o regula de
forma A cu conditia ca A s
a nu apar
a n partea dreapt
a a vreunei reguli.
Dup
a cum vom vedea , existenta sau inexistenta regulilor de forma A ,
reguli numite de stergere, poate modifica esential puterea generativa a unei
11
gramatici. O gramatic
a n care nu avem astfel de reguli o vom numi uneori
-liber
a; de asemenea, un limbaj care nu contine cuvantul vid, l vom numi
-liber. S
a mai observ
am c
a existenta regulilor de stergere ntr-o gramatica
nu implic
a n mod necesar existenta cuvantului vid n limbajul generat.
Dou
a gramatici care genereaz
a acelasi limbaj se numesc echivalente.
Gramaticile monotone si gramaticile dependente de context sunt echivalente; de asemenea, gramaticile drept si stang liniare sunt echivalente, justificandu-se astfel clasa gramaticilor regulate.
1.2
Ierarhia Chomsky
X1 . . . Xm p, Xj VG , j = 1, m, p VG .
Atunci exist
a p1 , p2 , . . . , pm VG astfel nc
at p = p1 . . . pm si Xj pj , j =
1, m.
Demonstratie. Proced
am prin inductie asupra lungimii derivarii l.
Daca l = 0 atunci p = X1 . . . Xm si luam pj = Xj .
Presupunem c
a proprietatea este adevarata pentru derivari de lungime l
derivare direct
a X1 . . . Xm qp. Conform ipotezei inductive, q = q1 . . . qm
si Xj qj , j = 1, m.
Fie apoi A u regula care se aplica n derivarea directa qp si sa
presupunem c
a A intr
a n subcuv
antul qk , deci qk = qk0 Aqk00 . Vom lua
qj
, j 6= k
pj =
qk0 uqk00 , j = k
Este evident c
a Xj pj , j 6= k, iar pentru j = k avem
12
13
Sa observ
am c
a U1 U2 . . . Uk . . .. Intr-adevar, U1 U2 deoarece
daca X U1 rezult
a c
a X P si cum U1 rezulta ca X U2 . Daca
XX1 X2 Y1 Y2 Y3 Z1 Z2 .
Definim acum urm
atoarea gramatica independenta de context fara reguli
de stergere G0 = (VN , VT , S, P 0 ) unde VN , VT , S sunt ca n gramatica data,
iar P 0 se construieste pornind de la P astfel. Fie X p P, p 6= .
Includem atunci n P 0 aceast
a regula precum si toate regulile de forma
X pj , unde pj se obtine din p l
asand la o parte, n toate modurile posibile,
simbolurile din Uf . De exemplu daca X ABC P si A, B Uf , vom
induce n P 0 regulile
X ABC, X BC, X AC, X C.
Sa observ
am c
a n acest fel multimea P a fost pe de o parte micsorata
(au fost excluse regulile de stergere), iar pe de alta parte mbogatita cu
eventualele noi reguli. S
a mai obsevam ca G0 este independenta de context
si ca nu contine reguli de stergere.
Vom ar
ata c
a L(G) = L(G0 ).
Mai nt
ai, s
a ar
at
am c
a L(G) L(G0 ).
Vom ar
ata o implicatie ceva mai generala, X p implica X 0 p,
pentru orice X VN (relatia ceruta se obtine pentru X = S). Procedam
prin inductie asupra lungimii derivarii l. Daca l = 1 avem
14
X p, X p P, p 6= X p P 0
G
si deci X 0 p.
G
X X1 . . . X m p
G
presupunem c
a p2 , p3 , p5 = . Atunci pentru derivarile Xj pj , j =
6
G
Xj 0 pj , j = 2, 3, 5.
G
Pe de alt
a parte , pentru j = 2, 3, 5 avem X2 , X3 , X5 ,
deci X2 , X3 , X5 Uf . Rezulta ca
X X1 X4 X6 . . . X m P 0
asa nc
at putem scrie
X 0 X1 X4 X6 . . . Xm 0 p1 p4 p6 . . . pm = p.
G
L(G0 ).
S
a ar
at
am acum incluziunea inversa , L(G00 ) L(G).
S 0 u 0 v 0 p.
G
Dac
a n derivarea directa u 0 v se aplica o regula care exista si n G,
G
15
aplic
a o regul
a nou introdus
a de exemplu X BC, deci pasul respectiv va
avea forma
u = u0 Xu00 0 u0 BCu00 = v
G
pe A Uf . Deoarece A , avem
G
S
a consider
am acum o gramatica G de tipul 2 si sa presupunem ca
L(G). Construim gramatica G0 ca si mai sus; orice cuvant p 6= din L(G)
se poate obtine n G0 si invers , deci L(G0 ) = L(G)\{}. Consideram atunci
o gramatic
a G00 = (VN {S 00 }, VT , S 00 , P 0 {S 00 , S 00 S}). Evident
L(G00 ) = L(G). Toate regulile lui G00 respecta tipul 1 (cu u = v = )
si contine o singur
a regul
a de stergere S 00 iar S 00 nu apare n partea
dreapt
a a vreunei reguli. Deci G00 este de tipul 1 si orice limbaj independent
de context este inclus n L1 , adic
a L2 L1 .2
1.3
Propriet
ati de nchidere a familiilor Chomsky
Fiind dat
a o operatie binar
a notata cu pe o familie de limbaje L, vom
spuna c
a familia L este nchis
a la operatia daca L1 , L2 L implica
L1 L2 L. Definitia notiunii de nchidere pentru operatii unare sau cu
aritate oarecare este analoag
a.
Vom numi familiile din clasificarea Chomsky, mai scurt, familiile Chomsky.
16
necesitate s
a se utilizeze una din regulile S S1 sau S S2 . Prin urmare
avem una din urmatoarele doua variante:
G1
G2
se utilizeaz
a faptul ca neterminalele celor doua gramatici sunt disjuncte.
Astfel, derivarea S1 p se va scrie detaliat astfel
G : S1 u1 u2 . . . un = p.
Intruc
at S1 VN1 si S1 6 VN2 n derivarea directa S1 u1 se utilizeaza cu
necesitate o regula din P1 ; prin urmare u1 VG1 , deci toate neterminalele
din u1 sunt din VN1 . Mai departe, n derivarea directa u1 u2 se utilizeaza
simbolurile sunt din VG1 si se utilizeaza numai reguli din P1 , de unde rezulta
implicatia.
Invers, fie p L(G1 ) L(G2 ). Daca, de exemplu, p L(G1 ), avem
S1 p, rezult
a S1 p, deci putem construi derivarea S S1 p.
G1
17
S S1 S2 p.
G
S1 S2 qp.
Conform ipotezei inductive, q = q1 q2 si S1 q1 , S2 q2 . Fie u v regula
care se aplic
a n qp. Deoarece u v este sau din P1 sau din P2 , rezulta
ca u este subcuv
ant al lui q1 sau q2 . Sa presupunem ca u Sub(q1 ); atunci
q1 = q10 uq1 si lu
am p1 = q10 vq100 , p2 = q2 .
Este clar c
a p = p1 p2 si c
a S 1 p1 , S 2 p2 .
G1
G2
18
G2
Aceste deriv
ari sunt valabile si n gramatica G. Prin urmare putem scrie:
G : S S1 S2 p1 p2 = p,
G
adic
a p L(G) si L(G1 )L(G2 ) L(G).2
Observatie. In cazul familiei L2 demonstratia primei parti se poate simpli
fica aplic
and direct lema de localizare. Deci, daca SS1 S2 p, atunci p =
p1 p2 , S1 p1 , S2 p2 . T
inand cont ca VN1 VN2 = avem S1 p1 , S2 p2
G2
G1
aplic
a sunt din P1 , apoi o regula nou introdusa (cu necesitate, caci altfel nu
putem elimina neterminalele) iar ultimele reguli sunt din P2 . Prin urmare,
derivarea va avea forma
S1 qA qrS2 = p1 S2 p1 p2 = p.
G
Este clar c
a S1 qr = p1 (la ultima derivare s-a reutilizat regula de
G1
G2
G1
19
utilizat
a este de categoria a II-a, s
a presupunem A r, deci aceasta derivare
va avea forma
S1 qAqr = p1 .
G1
T
inand cont c
a n G avem regula A rS2 , putem scrie n G derivarea
S1 qA qrS2 = p1 S2 p1 p2 = p,
G
S si evident p = L(G) .
2. Prima regul
a este S S; atunci n G avem S S p si n mod
3. Prima regul
a care se aplic
a este S XS; derivarea va avea forma
(n G ):
S XS
(A)
Xpn
XSpn Xpn1 pn
...
XSp2 p3 . . . pn p1 p2 p3 . . . pn .
asa nc
at p = p1 . . . pn L(G)n L(G) .
Observatie. Faptul c
a n G S pj rezulta astfel: tinand cont ca nu
putem elimina neterminalul X decat cu o regula de forma Xi Si, n
20
XS Xiq, q VG si S iq.
In acest moment putem sa l rescriem pe Xi cu una din regulile Xi
Si|XSi, etc.
Invers, dac
a p L(G) atunci p = p1 . . . pn si S pj , j = 1, n deci si
G
S S S . . . S p.
ceea ce nseamn
a ca p L(G)n L(G) , adica L(G) L(G ).
G : S S p.
Dac
a n derivarea S p se aplica numai reguli din P , atunci S p, p
G
L(G) L(G ).
S
a presupunem ca se aplica si reguli din P 0 ; derivarea va avea forma
(C) S S p1 S p1 p2 S . . . p1 . . . pn .
L(G ) L(G) .
21
Inchidere
Kleene
j = 0, 1 :
G = (VN {S , X}, VT , S , P {S |S|XS, Xi Si|XSi, i VT })
j=2:
G = (VN {S }, VT , S , P {S S S|})
j=3:
G = (VN {S }, VT , S , P P 0 {S S|}).
1. Specificati limbajul generat de gramatica G = (VN , VT , S, P ), preciz
and tipul gramaticii (cf. clasificarii Chomsky):
(a) VN = {A}, VT = {a, b}, S = A, P = {A aA|b};
(b) VN = {x0 }, VT = {A, B, . . . , Z}, S = x0 , P = {x0 x1 D,
x1 x2 N, x2 E};
(c) VN = {A}, VT = {0, 1, 2}, S = A, P = {A 0A0|1A1|2A2|};
(d) VN = {S, A}, VT = {0, 1, . . . , 9, .},
P = {S A.A, A 0A|1A| . . . |9A|0|1| . . . |9};
(e) VN = {S}, VT = {P CR, P DAR, U DM R},
P = {S P CR|P DAR|U DM R};
22
Capitolul 2
Limbaje regulate
2.1
24
i2
i3
...
ik
...
in1
in
Banda de intrare
Dispozitiv de citire
sS
Dispozitiv de comanda
i1
i1 , i2
s2 }
i2
i1
s1
*
i2
25
i1
i1
i2
s0
{s1 }
s1
{s2 }
{s0 , s1 }
s2
{s0 }
{s0 , s1 }
Diagrama de st
ari corespunz
atoare este prezentata n figura 2.2.
Functia de evolutie Functia f se prelungeste de la I la P() I
deci f : P() I P(), astfel:
(a) f (s, ) = {s}, s ,
(b) f (, i) = ,
Si I,
(c) f (Z, i) = sZ f (s, i), Z P(), Z 6= ,
(d) f (Z, pi) = f (f (Z, p), i).
S
a observ
am c
a relatiile de mai sus constituie o definitie prin recurenta,
corect
a; fiind dat f , putem defini mai ntai toate valorile f (Z, i) (un numar
finit, deoarece I este o multime finita), apoi f (Z, p) pentru |p| = 2, n
continuare f (Z, p) pentru |p| = 3, etc.
Propriet
atile functiei f:
1. Dac
a Zk este o familie de p
arti a lui , avem
[
[
f ( Zk , i) =
f (Zk , i)
k
Demonstratie. Utiliz
and (c) putem scrie
[
[ [
[
[
f (Zk , i) = (
f (s, i)) =
f (s, i) = f ( Zk , i).2
k
sZk
sZk
26
S
Pentru |p| = 1 avem f (Z, i) = sZ f (s, i), adica (c).
Presupunem ca relatia este adevarata pentru |p| = m si consideram un
p astfel nc
at |p| = m + 1, deci p = p0 i, |p0 | = m. Putem scrie
S
0
f (Z,S
p) = f (Z, p0 i) = f (f (Z,
p0 ), i) = f ( sZ
S
S f (s, p ), i) = 2
0
0
= sZ f (f (s, p ), i) = sZ f (s, p i) = sZ f (s, p).
3. f (s, pq) = f (f (s, p), q), p, q I .
Demonstratie. Inductie asupra lungimii lui q.
Dac
a |q| = 1, atunci q = i si relatia se reduce la (d).
Presupunem ca proprietatea este adevarata pentru r si consideram |q| =
r + 1. Deci q = q 0 i. Avem
f (s, pq) = f (s, pq 0 i) = f (f (s, pq 0 ), i) = f (f (f (s, p), q 0 ), i) =
2
= f (f (s, p), q 0 i) = f (f (s, p), q).
Limbaje regulate.
Definitie 2.1 Limbajul recunoscut de automatul finit AF = (, I, f, s0 , f )
este
L(AF ) = {p|p I , f (s0 , p) f 6= }
Deci p L(AF ) daca automatul aflandu-se n starea initiala s0 , dupa
|p| pasi de functionare poate sa ajunga ntr-o stare finala.
In cazul unui automat finit determinat limbajul recunoscut poate fi
definit n modul urmator. Pentru fiecare s definim functia fs : I
P() prin fs (p) = f (s, p).
Atunci
f (s0 , p) f 6= f (s0 , p) = fs0 (p) f ,
deci
L(AF ) = {p|f (s0 , p) f 6= } = fs1
(f )
0
Limbajele recunoscute de automate finite le vom numi limbaje regulate;
familia acestor limbaje o vom nota cu R. Evident, familia limbajelor recunoscute de automate finite deterministe, Rd , este o parte a lui R, Rd R.
Vom ar
ata c
a cele doua familii coincid.
Teorema 2.1 Rd = R.
Demonstratie. Fie AF = (, I, f, s0 , f ) un automat finit (n general
nedeterminist). Construim urmatorul automat finit determinist AF 0 =
(0 , I, f 0 , {s0 }, 0f ) unde 0 = P(), f 0 = f (prelungirea la P() I
), 0f = {Z| Z P(), Z f 6= }.
27
i1
i2
1
2
1
s0 s
1 s0 s1 ;
1
s0 s1 s1 s
2;
28
29
S i1 A1 ,
A1 i2 A2 ,
...
An1 in .
(2)
(3) :
A1 f (S, i1 ),
A2 f (A1 , i2 ),
...
X f (An1 , in )
1
2
3
n
(4) S
A1 A
2 . . . X f
Deci p L(AF ).
Dac
a p = , atunci S si S P . Dar atunci L(AF ), caci
automatul este n starea S si r
amne n aceasta stare dupa citirea lui ;
cum ns
a n acest caz S f rezulta ca si n acest caz p L(AF ). In
consecint
a L(G) L(AF ).
Fie acum p = i1 . . . in L(AF ); atunci avem traiectoria (4), relatiile
(3), regulile de generare (2) si putem scrie derivarea (1), adica p L(G) si
L(AF ) L(G).2
Partea II E R E L3 .
Vom indica numai modul de constructie a gramaticii. Fie AF = (, I, f, s0 , f )
automatul finit care recunoaste limbajul E, pe care l presupunem determinist. Construim gramatica G = (, I, s0 , P ) unde multimea P este definita
astfel
f (A, i) = B genereaza regula A iB P ,
n plus dac
a B f se genereaza si regula A i P .
Putem ar
ata c
a L(G) = L(AF ).2
2.2
Propriet
ati speciale ale limbajelor regulate
30
31
de echivalent
a C, lu
am p C (oarecare) si atasam lui C functia (s) =
f (s, p)s . T
in
and cont c
a daca q C atunci f (s, p) = f (s, q), s ,
rezult
a c
a functia nu depinde de elementul p ales.
Dar multimea functiilor definite pe cu valori n este finita, deci I /
este finit
a, adic
a congruenta este de rang finit.
Fie acum p L(AF ) si q astfel ca (p, q) . Avem
f (s0 , q) = f (s0 , p) f ;
adica q L(AF ). Aceasta nseamna ca odata cu elementul p, L(AF ) contine
clasa de echivalent
a a lui p. De aici rezulta ca L(AF ) este constituit dintr-un
anumit num
ar de clase de echivalenta a lui .2
(b)(c)
Fie o congruent
a de rang finit si E o reuniune de clase de echivalenta.
Fie apoi (p, q) ; aceasta nseamna ca r1 pr2 E r1 qr2 E, deci
E (r1 pr2 ) = E (r1 qr2 ), r1 , r2 I .
Prin urmare, (p, q) . Orice clasa de echivalenta din I / este inclusa
ntr-o clas
a de echivalent
a din I /, asa ncat card(I /) < card(I /),
adica congruenta este de rang finit.2
(c) (a)
Presupunem c
a este o congruenta de rang finit; consideram automatul
finit AF = (I /, I, f, C , f ), unde functia de evolutie f si multimea de
stari finale sunt
f (Cp , i) = Cpi , f = {Cp |p E}.
Vom ar
ata c
a E = L(AF ). In primul rand sa observam ca f (Cp , q) = Cpq
(se poate ar
ata prin inductie asupra lui |q|). Avem
p E Cp f f (C , p) = Cp = Cp f p L(AF )
adica E = L(AF ) si E este un limbaj regulat.2
Corolar 2.4 Familia R este nchis
a la operatia de r
asturnare.
e rasturnatul lui E. Conform teoremei de
Demonstratie. Fie E R si E
caracterizare, card(I /E ) < . Avem
(p, q) E E (r1 pr2 ) = E (r1 qr2 )
si
Ee(re1 pere2 ) = Ee(re1 qere2 ) (e
p, qe) Ee
32
e
Cu alte cuvinte daca C este o clasa de echivalenta a lui E atunci C
(r
asturnatul lui C) este o clasa de echivalenta a lui Ee. Aceasta nseamna
c
a card(I /Ee) = card(I /E ) < si conform aceleiasi teoreme de carace R.2
terizare E
Observatie. Am vazut ca limbajele de tipul 3 pot fi definite de gramatici cu reguli de doua categorii: drept liniare sau stang liniare. Este
evident c
a limbajele stang liniare sunt rasturnatele limbajelor drept liniare.
Cum familia limbajelor regulate (drept liniare) este nchisa la operatia de
r
asturnare, rezult
a ca cele doua familii de limbaje coincid.
33
ij -srj ik+1 - p
sk+1
sj1
i
ik sk j+1
q
^q
in
s
n1
s
j+1
q
sk1
snw q
r
p
i1 s1
q
s0
2.3
Sub aceast
a denumire (sau lema uvw) este cunoscuta o proprietate a limbajelor regulate (ca si a altor familii de limbaje) care ne premit sa descompunem cuvintele suficient de lungi ale limbajului n forma uvw si sa
multiplic
am subcuv
antul v de un numar arbitrar de ori, obtinand cuvinte
care apartin de asemenea limbajului. Cu alte cuvinte, putem sa pompam
n cuv
antul dat o anumit
a parte a sa. Astfel de leme se utilizeaza deseori
pentru a rezolva probleme de neapartenenta, adica pentru a arata ca un
anumit limbaj nu apartine unei familii date de limbaje.
Lema 2.2 Fie E un limbaj regulat si AF = (, I, f, s0 , f ) automatul finit
care l recunoaste. Dac
a p E si |p| card() atunci p se descompune n
forma p = uvw, v 6= si uv m w E, m N .
Demonstratie. Fie p = i1 . . . in , n card(); fie s0 , s1 , . . . , sn starile parcurse de automat la citirea cuv
antului p. Atunci, sj = f (sj1 , ij ), j =
1, n, sn f . Exist
a n mod necesar doua stari egale, sj = sk , j < k.
Traiectoria va avea o bucl
a (vezi figura 2.3).
Descompunem cuv
antul p n forma p = uvw unde u = i1 . . . ij , v =
ij+1 . . . ik , w = ik+1 . . . in . Este clar ca v 6= , caci j < k. Pe de alta parte,
putem parcurge traiectoria f
ac
and de mai multe ori bucla, adica
f (s0 , uv m w) = sn f .
Prin urmare uv m w E.2
Consecint
a 2.3 Incluziunea L3 L2 este strict
a.
34
In adev
ar, fie limbajul L2 = {0n 1n |n 1}. Stim ca acest limbaj este de tipul
2 si c
a poate fi generat de gramatica G = ({A}, {0, 1}, A, {A 0A1|01}).
S
a ar
at
am c
a L2 nu este de tipul 3.
S
a presupunem ca L2 este de tipul 3 si fie AF = (, I, f, s0 , f ) automatul finit care l recunoaste. Cum L2 contine cuvinte oricat de lungi,
fie p L2 astfel ncat p card(). Conform lemei de pompare, p se descompune n forma p = uvw, v 6= si uv m w E. Putem avea una din
situatiile:
. . 0} 0| . . . 01
(1) p = 0| .{z
. . 0} 0| .{z
{z . . . 1},
u
(2) p = 0| . . . 01
. . 1} 1| .{z
. . 1},
{z . . . 1} 1| .{z
u
(3) p = 0| .{z
. . 0} 0| .{z
. . 1} 1| .{z
. . 1} .
u
Primele dou
a 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 obtinem
p2 = 0 . . . 00 . . . 10 . . . 11 . . . 1 L2
ceea ce din nou nu este posibil, ntrucat se contrazice structura cuvintelor
lui L2 . Prin urmare L2 nu este de tipul 3.2
Observatie. Este interesant de observat ca limbajele simple de forma lui
L2 sunt semnificative pentru clasele din clasificarea Chomsky. Astfel
L1 = {an |n 1}, L1 L3 ;
L2 = {an bn |n 1}, L2 L2 , L2 6 L3 ;
L3 = {an bn cn |n 1}, L3 L1 (?), L3 6 L2 ;
Ne-am putea astepta ca limbajul L3 , un exemplu analog lui L2 , sa fie de tip
1, adic
a L3 L1 , L3 6 L2 . In adevar, se poate arata ca L3 6 L2 , dar dupa
cunostinta autorului, aparenta L3 L1 este o problema deschisa.
Consecint
a 2.4 Fie E un limbaj regulat si AF = (, I, f, s0 , f ) automatul
finit care l recunoaste. Atunci E este infinit dac
a si numai dac
a exist
a
p E astfel nc
at |p| card().
Dac
a limbajul este infinit, este clar ca exista p E cu |p| card().
Invers, dac
a exista p E cu |p| card() atunci p = uvw, v 6= si
uv m w E, m N , deci limbajul este infinit.2
2.4
35
Expresii regulate
Expresii regulate si limbaje reprezentate Fie V un alfabet. Expresiile regulate sunt cuvinte peste alfabetul V {, , |}, unde simbolurile suplimentare introduse le vom considera operatori:|-sau, -produs, nchidere. Expresiile regulate se definesc astfel:
(1) este o expresie regulat
a;
(2) pentru orice a V , cuv
antul a este o expresie regulata;
(3) dac
a 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 utiliza 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 ntelege R|(S ).
Observatie. Expresiile regulate se pot defini cu ajutorul gramaticii G =
({E, T, F }, V {|, , , (, )}, E, P ) unde
E E|T | E T | T,
P =
T T | F
F (E) | a | .
Unei expresii regulate i putem asocia un anumit limbaj peste V ; vom spune
ca expresia regulat
a reprezint
a (desemneaza, noteaza) acel limbaj. Modul
n care asociem un limbaj unei expresii regulate este
(1) reprezint
a limbajul {},
(2) a reprezint
a limbajul {a},
(3) dac
a R si S sunt expresii regulate si reprezinta respectiv limbajele
LR si LS atunci
(i) R|S reprezint
a limbajul LR LS ;
(ii) R S reprezint
a limbajul LR LS ;
(iii) R reprezint
a limbajul (LR ) .
Fie R, S, P trei expresii regulate si LR , LS , LP limbajele reprezentate.
Avem :
L(R|S)|P = (LR LS ) LP = LR (LS LP ) = LR|(S|P ) ,
ntruc
at operatia de reuniune este asociativa. Vom scrie (R|S)|P = R|(S|P ).
In mod analog se pot obtine si alte proprietati. De exemplu:
S|R = S|R,
R|R = R,
36
2.5
Sisteme tranzitionale
s0
s1
s2
{s1 }
{s2 }
{s0 }
{s0 , s1 } {s0 , s2 }
= {(s0 , s1 ), (s2 , s1 )}.
37
s0 O . . . s1 s2 O . . . s00 .
i
i2
in
s0 = s0 ` s1 ` . . . ` sn = s00 .
p
L(ST ) = {p|p I , s0 0 , s0 ` s, s f }.
Vom nota cu LST familia limbajelor recunoscute de sisteme tranzitionale.
Este evident c
a orice automat finit este un sistem tranzitional particular
n care card(0 ) = 1 iar = (nu exista arce punctate). Prin urmare
R LST .
Teorema 2.6 R = LST .
Demonstratie. Evident, trebuie s
a aratam incluziunea LST R. Fie ST =
(, I, f, 0 , f , ) un sistem tranzitional. Construim automatul finit AF =
(P(), I, f 0 , 0 , 0f ) unde
i
38
in
i2
s0 ` s1 ` . . . ` sn f .
Putem construi o traiectorie a lui AF de forma
i
n
2
1
Zn ,
. . .
Z1
0
39
40
Capitolul 3
Limbaje independente de
context
3.1
Arbori de derivare
42
v0
v2
v1
v3
Nivel 1
Nivel 2
v4
v0
{v1 , v2 }
v1
v2
{v3 , v2 }
v3
v4
43
Varianta 1
Varianta 2
An
An
an
Bn
an
A
B
b
a
bn
Bn
n
A
an
A
n
A
B
n
a
a
b
b
...
in
Demonstratie. X p implic
a AX, p .
Proced
am prin inductie asupra lungimii derivarii l.
Daca l = 1, X p = i1 . . . in si X i1 . . . in P . Arborele din figura 4.3
corespunde cerintelor teoremei.
an a
44
X2
X1
p1
p2
...
Xm
...
...
pm
si consider
am o derivare de lungime l + 1, X p. Punem n evidenta prima
derivare direct
a
XX1 . . . Xn p
urm
atoarea constructie: conform ipotezei inductive, fiecarei derivari Xj pj
i corespunde c
ate un arbore AXj ,pj ; unim apoi toate nodurile Xj n nodul
X plasat la nivelul zero. Obtinem astfel un arbore AX,p1 ...pm = AX,p (vezi
figura 4.4) care corespunde cerintelor teoremei.
p P si X p, etc. 2
3.2
3.2. DECIDABILITATE S
I AMBIGUITATE IN FAMILIA L2 .
45
v1 = x
v2 = x W
?
p2
r1
r2
p1
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 c
a L(G) = (nu putem elimina neterminalele).
Problema: Putem decide n general dac
a limbajul generat de o gramatic
a
de tipul 2 este vid sau nu?
Teorema 3.2 Faptul c
a limbajul generat de o gramatic
a de tipul 2 este
nevid este decidabil.
Demonstratie. Vom construi un algoritm cu ajutorul caruia se poate decide
daca limbajul generat de o gramatica de tipul 2 este vid sau nu.
Presupunem c
a limbajul nu este vid, L(G) 6= si fie p L(G). Exista
arborele AS,p . S
a presupunem c
a n acest arbore exista un drum cu doua
noduri interne etichetate cu acelasi simbol, v1 = v2 = X. Descompunem
arborele ca n figur
a 4.5
Avem p = r1 p1 r2 ; evident p2 Sub(p1 ). Efectuam urmatoarea modificare: scoatem subarborele Av1 ,p1 = AX,p1 sil nlocuim cu subarborele
Av2 ,p2 = AX,p2 ; obtinem n acest fel un arbore AS, r1 p2 r2 (care este ntr
adev
ar un arbore de derivare). Conform cu teorema de caracterizare a
46
47
S
a presupunem c
a L(G) este ambigua. Atunci exista p L(G) care se
poate obtine cu dou
a deriv
ari extreme stangi diferite. Sa presupunem ca
p L(G1 ), p 6 L(G2 ). Atunci obtinem doua derivari distincte n gramatica
G
(1) S S1 p, deci S1 p;
G
G1
G2
(2) S S1 p, deci S1 p,
G
deci si dou
a deriv
ari extrem st
angi n gramatica G1 . Aceasta ar nsemna ca
G1 este ambigu
a. Contradictie cu ipoteza!2
Teorema 3.4 Limbajele de tipul 3 sunt neambigue .
Demonstratie. Fie L un limbaj de tipul 3 si G gramatica care l genereaza;
fie apoi AF automatul finit care recunoaste limbajul L si AF D automatul
finit echivalent determinist. Construim gramatica G0 astfel ncat L(G0 ) =
L(AF D). Reamintim c
a regulile lui G0 se construiesc astfel f (A, a) = B
A aB, f (A, a) f A a.
S
a presupunem acum c
a L este ambigu; atunci orice gramatica care
l genereaz
a, inclusiv G0 , este ambigua. Aceasta nseamna ca exista un
p L(G0 ) astfel nc
at
i1 . . . in A0n
3.3
Forma normal
a Chomsky.
Definitie 3.5 O gramatic
a n forma normal
a Chomsky este o gramatic
a
cu reguli de forma
A BC,
D i,
unde A, B, C, D VN si i VT . Se accept
a si regula de completare S
cu conditia ca S s
a nu apar
a n dreapta vreunei reguli.
48
G : S rstp.
Dac
a n rs se utilizeaza regula X uY v atunci n mod necesar n pasul
urm
ator se utilizeaza una din regulile Y p1 | . . . |pn , sa presupunem Y
pj (evident, este posibil ca aceasta regula sa nu se aplice n pasul imediat
urm
ator, dar ea poate fi adusa n aceasta pozitie). Prin urmare
(A) G : r = r0 Xr00 r0 uY vr00 r0 upj vr00 = t.
Acesti doi pasi se pot obtine si n G0 (ntr-un singur pas):
(B) G0 : r = r0 Xr00 r0 upj r00 = t.
Invers, dac
a p L(G0 ) si S 0 p, atunci daca la un pas se utilizeaza o
G
regul
a nou introdusa (pasul (B)), transformarea respectiva se poate obtine
si n G cu doi pasi (pasii (A)); deci p L(G) si L(G0 ) L(G).2
Corolar 3.5 Orice gramatic
a de tipul 2 este echivalent
a cu o gramatic
a de
acelasi tip n care multimea de reguli nu contine redenumiri. (O redenumire
este o regul
a de forma A B, A, B VN ).
Intr-adev
ar, daca A B P este o redenumire si B p1 | . . . |pn sunt
toate regulile care au B n stanga, efectuam substitutiile, deci nlocuim
regula A B cu A p1 | . . . |pn . In cazul n care printre acestea apare o
nou
a redenumire, repetam procedeul.2
Exemplu. Gramatica GE 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
49
G : u = u0 Xu00 u0 X1 . . . Xn u = v.
Aceast
a derivare se poate obtine si n G0 n mai multi pasi si anume
00
50
00
Aceeasi form
a propozitionala o putem obtine si n gramatica G0 astfel
G0 : X 0 uj Y 0 uj vjs Y 0 . . . 0 uj vjs . . . vj1 .
G
51
e1:
e2:
j := 1;
begin
Se elimin
a recursiile st
angi; neterminalele
noi le not
am cu Y1 , Y2 , . . .
end
if j = n then STOP;
j := j + 1;
l := 1;
begin
Fie Xj Xl p, p VN si Xl p1 . . . pm
toate regulile care au Xl n stanga; se efectueaza toate substitutiile.
end
l := l + 1;
if l < j 1 then goto e2
goto e1
S
a observ
am c
a pentru j = 1 si dupa eliminarea recursiilor stangi
conditia cerut
a este evident ndeplinita; n plus, daca au fost recursii, vom
avea reguli cu partea st
ang
a neterminale noi Y1 , Y2 , . . .. Mai departe, luam
toate regulile care au n st
anga X2 (j := j + 1 = 2) si efectuam substitutiile;
acestea se vor transforma n X2 Xk p cu k 2 si dupa o noua eliminare a
recursiilor st
angi vom avea k > 2 plus reguli cu partea stanga neterminale
52
P1
P2
P3
P4
= {S (S, a)a| a VT };
= {(A, a) | A VN , a VT , A a P };
= {(A, a) (B, a)| A, B VN , a VT , A B P };
= {(A, a) (B, b)b(C, a)| A, B, C VN , a, b VT , A BC P }.
53
Sa observ
am c
a G0 este n forma normala operator. Pentru a demonstra ca
0
L(G) = L(G ) vom defini mai nt
ai o functie : P2 P3 P4 P astfel:
((A, a) ) = A a pentru (A, a) P2 ;
((A, a) (B, a)) = A B pentru (A, a) (B, a) P3 ;
((A, a) (B, b)b(C, a)) = A BC pentru (A, a) (B, b)b(C, a) P4 .
Functia se extinde n mod natural la 0 : (P2 P3 P4 ) P . Vom
arata c
a n gramatica G, w VT , a VT are loc derivarea extrem dreapta
S
a demonstr
am afirmatia prin inductie dupa n, lungimea derivarii.
Dac
a n = 1 atunci w = , A a P si n P 0 exista productia (A, a)
, deci (A, a) si ((A, a) ) = A a.
Invers, dac
a (A, a)w n G0 atunci w = (dupa forma productiilor din
0
G ) si are loc proprietatea enuntata.
S
a presupunem afirmatia adev
arata pentru derivari de lungime cel mult
n 1 si s
a o demonstr
am pentru derivari de lungime n > 1. Fie asadar
A B wa
G
n 1) cu productii satisf
ac
and conditiile aratate. Dar cum A B P , n
0
P avem productia (A, a) (B, a) deci (A, a) 0 w n gramatica G0 .
G
A BC wa.
G
C va. Dup
a ipoteza inductiv
a, vom avea n G derivarile:
G
(B, b) 0 u,
G
(C, a) 0 v.
G
54
S wa
G
(S, a) 0 w, w VT , a VT .
G
Cum n G0 exist
a si productia S (S, a)a, am gasit: wa L(G) daca si
numai wa L(G0 ), deci cele doua gramatici sunt echivalente.
Pentru a ncheia demonstratia trebuie sa consideram si cazul L(G).
Aplic
am constructia de mai sus unei gramatici ce genereaza L(G) \ {} si
obtinem G0 = (VN0 , VT , S, P 0 ) gramatica operator corespunzatoare. Consider
am acum gramatica G1 = (VN1 , VT , S1 , P1 ) unde V1 = V 0 {S1 },
P1 = P 0 {S1 , S1 S} care este n forma normala operator si
L(G1 ) = L(G).2
3.4
55
p
i1
i2
i3
...
ik
...
in1
z0
z1
..
.
zm
in
56
57
forma (extrem st
ang
a):
(A) Si1 X1 u1 i1 i2 X2 u2 u1 i1 i2 i3 X3 u3 u2 u1 . . . i1 . . . in ,
unde u1 , u2 , u3 , . . . VN = Z .
Observatie. Aparent, partea us us1 . . . u1 se mareste cu fiecare derivare
direct
a. In realitate, unele din cuvintele uj sunt vide, si anume atunci cand
se aplic
a o regul
a de forma X i; n particular, n ultimele derivari directe
se aplic
a numai reguli de aceast
a forma.
Avem
S i1 X1 u1 (s, X1 u1 ) f (s, i1 , S),
X1 i2 X2 u2 (s, X2 u2 ) f (s, i2 , X1 ),
X2 i3 X3 u3 (s, X3 u3 ) f (s, i3 , X2 ),
... .
Prin urmare automatul poate s
a aiba urmatoarea evolutie:
(s, i1 i2 i3 i4 . . . in , S)7(s, i2 i3 i4 . . . in , X1 u1 )7
58
Dac
a compar
am aceasta evolutie cu derivarea (A) putem observa ca pe
banda de intrare avem la fiecare pas partea complementara a cuvantului
(fat
a de derivare) iar n memoria push-down se reproduce partea de neterminale din formele propozitionale ale derivarii. Cum n derivare se ajunge
la i1 . . . in , n evolutie se va ajunge la (s, , ).
Deci p L(AP D) si L(G) L(AP D).
Fie acum p L(AP D); va trebui sa aratam ca p L(G), deci ca
S p. Vom ar
ata o implicatie ceva mai generala, si anume, pentru orice
G
u VN , avem
(s, p, u)7(s, , ) u p.
G
Pe de alt
a parte din ipoteza inductiva rezulta ca vu0 p0 . Avem
G
59
Vom ar
ata implicatia ceva mai generala
s0 (s0 , z0 , s ) p, adic
a p L(G).
G
Proced
am prin inductie asupra lungimii evolutiei l.
Dac
a l = 1 atunci (s, p, z)7(s0 , , ), deci p = i si (s0 , ) f (s, i, z) si
(s, z, s0 ) i este o regul
a, adic
a putem scrie (s, z, s0 )i = p.
Presupunem c
a implicatia este adevarata pentru evolutii de lungime
oarecare l si consider
am o evolutie de lungime l + 1; punem n evidenta
prima evolutie direct
a
7
...
(sm , pm , zm ) 7
(s1 , p1 , z1 )
(s2 , p2 , z2 )
(s2 , , ),
(s3 , , ),
(s0 , , ).
60
(s1 , z1 , s2 )p1 ,
(s2 , z2 , s3 )p2 ,
...
(sm , zm , s0 )pm .
Putem scrie derivarea
0
(s, z, s0 )p0 (s0j1 , zj1
, s0j )(sj , zj , sj+1 ) . . . (sm , zm , s0 )
0
p i(s1 , z1 , s2 ) . . . (sj1 , zj1 , sj )(sj , zj , sj+1 ) . . . (sm , zm , s0 ),
unde s0j = sj ; la ultimul pas s-a aplicat regula
0
(s0j1 , zj1
, sj ) i(s1 , z1 , s2 ) . . . (sj1 , zj1 , sj ).
61
si putem scrie evolutia
Pe de alt
a parte, conform ipotezei inductive, avem
0
(s, p0 , z)7(s0j1 , , zj1
zj . . . z m )
Prin urmare
0
(s, p, z) = (s, p0 i, z)7(s0j1 , i, zj1
zj . . . zm )7(s1 , , z1 . . . zm )
din G, n aceast
a 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 fiecare pas simbolul neterminal cel mai din
stanga, deci s
a obtinem o derivare extrem stanga. Sa observam ca n acest
caz structura formelor propozitionale intermediare este cea mentionata,
p(s1 , z1 , s2 )(s2 , z2 , s3 ) . . . (sm , zm , s0 ).
Prin urmare, derivarea va avea forma
62
63
3.5
p I exist
a o evolutie de forma (s0 , p, z0 )7(s, , q).
Intr-un APD determinist neblocabil orice cuvant peste I poate fi citit.
Evident, de aici nu rezult
a c
a orice cuvant este recunoscut de APD.
Lema 3.2 Un APD determinist cu st
ari finale este echivalent cu un APD
determinist cu st
ari finale neblocabil (relativ la prima situatie de blocare).
Demonstratie.Fie AP Df = (, I, Z, f, s0 , z0 , f ). Construim AP Df0 =
( {s00 , s0 }, I, Z {z00 }, f 0 , s00 , z00 , f ) unde:
(1) f 0 (s, i, z) = f (s, i, z) dac
a f (s, i, z) 6= , s , i I {}, z Z;
(2) f 0 (s, i, z) = (s0 , z) dac
a f (s, i, z) = f (s, , z) = , s , i I, z Z;
(3) f 0 (s0 , i, z) = (s0 , z), i I, z Z;
(4) f 0 (s0 , , z00 ) = (s0 , z0 z00 ).
64
p L(AP Df ) (s0 , p, z0 )
(s00 , p, z00 )
AP Df0
|=
|= (s, , q), s f
AP Df0
(s0 , p, z0 z00 )
AP Df0
AP Df0
65
(s0 , 1 ) pentru s0 f ,
(s0 , 2 ) pentru s0 6 f ,
multimea de st
ari finale este 0f = {(s, 3 )|s } iar functia de evolutie
este definit
a de
(1) dac
a f (s, i, z) = (s0 , q) atunci
f 0 ((s, 1 ), i, z) = ((s0 , k 0 ), q),
f 0 ((s, 2 ), i, z) = ((s, 3 ), q),
f 0 ((s, 3 ), i, z) = ((s0 , k 0 ), q);
(2) dac
a f (s, , z) = (s0 , q) atunci
f 0 ((s, 1 ), , z) = ((s0 , k 0 ), q),
f 0 ((s, 3 ), , z) = ((s0 , k 0 ), q);
unde k 0 = 1 dac
a s0 f si k 0 = 2 daca s0 6 f .
de unde rezult
a c
a (s0 , p, z0 )7(s0 , , q) si s0 6 f . Deci p I \ E si
0
L(AP Df ) I \ E.
Invers, fie p I \E, atunci n AP Df0 avem evolutia (s0 , p, z0 )7(s, , q), s 6
f si putem scrie evolutia (A). Prin urmare p L(AP Df0 ), adica I \ E
L(AP Df0 ).2
Consecint
a. Putem enunta proprietatea de mai sus astfel: Familia limbajelor independente de context deterministe este nchisa la complementariere. 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 obtine urmatorul
rezultat:
APD nedeterministe nu sunt echivalente cu APD deterministe.
66
3.6
Lema BarHillel
XY Z p.
Observatie. Daca X p si |p| > 2m1 atunci exista n arborele AX,p cel
putin o ramur
a cu m + 1 noduri.
67
max|p|
Nivel
0 20
1 21
2 22
3 23
4 24
Figura 3.7: Exemplu de arbore
X
X2
X1
q
p1
p2
...
...
...
Xm
pm
68
v1 = A
v2 = A W
u
?
w
(1) Consider
am subarborele AA,vwx caruia i corespunde derivarea Avwx.
Punem n evidenta primul pas
ABC vwx,
69
L3 6 L2 . Intradev
ar, s
a presupunem ca L3 L2 si fie k constanta din
lema BarHillel. Lu
am n > k/3 si fie p = an bn cn ; avem |p| > k, deci
conform acestei leme p se descompune n forma p = uvwxy cu vx 6= si
uv j wxj y L3 , j N .
Vom analiza posibilit
atile de constituire a subcuvintelor v si x. Sa presupunem c
a n v (sau x) intr
a doua din simbolurile a, b, c; de exemplu
v = aabbb. atunci consider
am cuvantul p2 = uv 2 wx2 y = uaabbaabbwx2 y
care nu are structura cuvintelor lui L3 (a nu poate sa urmeze dupa b)
dar conform lemei Bar-Hillel apartine lui L3 . 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 subcuvintele v si x, puterile simbolurilor a si b se maresc iar c ramane pe
loc, contrazic
anduse din nou structura cuvintelor din L3 . In concluzie L3
nu este independent de context.
Fie acum limbajele
L03 = {am bn cn |m, n 1}
L3 = {an bn cm |m, n 1}.
Se poate vedea usor c
a aceste limbaje sunt de tipul 2; gramaticile care
le genereaz
a sunt S aS|aA, A bAc|bc si respectiv S Sc|Ac, A
aAb|ab.
Avem L03 L3 = L3 , deci intersectia a doua limbaje de tipul 2 este un
limbaj care nu apartine lui L2 .2
Corolar 3.15 Familia L2 nu este nchis
a la complementariere.
Intradev
ar, s
a presupunem c
a L2 este nchisa la complementariere si fie
E1 , E2 L2 . Cum familia L2 este nchisa la reuniune, ar rezulta C(E1 )
C(E2 ) L2 . Dar (de Morgan) C(E1 ) C(E2 ) = C(E1 C(E2 ) L2 .
Complementul limbajului C(E1 E2 ) este E1 E2 si conform presupunerii ar trebui ca E1 E2 L2 , oricare ar fi E1 , E2 , ceea ce nu este
adev
arat.2
Generaliz
ari ale lemei BarHillel Lema lui BarHillel reprezinta o
conditie necesar
a ca un limbaj s
a fie independent de context. cu ajutorul ei
70
u = , v = a, w = , x = , y = an1 b2 .
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
exist
a o constant
a k astfel nc
at orice p L pentru care cel putin k simboluri
sunt marcate, se poate descompune n forma p = uvwxy astfel nc
at
1. sau u, v, w sau w, x, y contin fiecare c
ate un simbol marcat;
2. vwx contine cel mult k simboluri marcate;
3. uv j wxj 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
71
Va1
z ~
sa1
a1
Va2
s
~
a2
s(a2 )
V
a3
"!
w
~
a3
s(a3 )
Figura 3.10: Reprezentare grafica a substitutiei
Definitie 3.13 Fie
am un alfabet
S V un alfabet; pentru orice a V consider
Va si not
am Vg = aV Va . Fie s : V P(Vg ) o aplicatie cu proprietatea
a a lui s la V o numim substitutie.
s(a) Va , a V . Prelungirea canonic
Observatie. Prelungirea canonica se defineste recursiv astfel:
s() = {}, s(a1 . . . an ) = s(a1 ) . . . s(an ).
O reprezentare
grafic
a este prezentata n figura 4.10. Observam ca
S
Vg 6= aV Va si Va Vg .
Definitia substitutiei se poate da si direct:
Definitie 3.14 Vom spune c
a s : V P(Vg ) este o substitutie dac
a
1. s() = {};
2. s(a) Va , a V ;
3. s(a1 . . . an ) = s(a1 ) . . . s(an ), a1 , . . . , an V .
Definitie 3.15 Imaginea unui limbaj L V prin substitutia s este
[
s(L) =
s(a).
aL
72
Atunci
G0 : S(v1 )(v2 ) . . . (vn ) = (v).
Cum v contine numai terminale, rezulta ca (v) = Sa1 . . . San . Deci
G0 : S Xa1 . . . Xan u1 . . . un = u,
S 0 u efectu
am mai nt
ai deriv
arile directe care utilizeaza reguli de forma
G
G0 : S Sa1 . . . San u.
Cuv
antul u se descompune n u = v1 . . . vn si Saj 0 vj . Deoarece
G
3.8
Limbajul lui Dyck Cuvintele limbajului Dyck, numit si limbaj parametric, constituie siruri de paranteze corect scrise ntr-o expresie aritmetica.
De exemplu, dac
a n expresia
{(a + b) [(c + d) (e + f )]}
74
se elimin
a toti operanzii se obtine sirul de paranteze {()[()()]}, care dupa
cum se poate observa sunt corect scrise. Definitia generala a unui sir de
paranteze corect scrise nu este foarte simpla; de exemplu, nu este suficient
s
a spunem c
a fiec
arei paranteze deschise trebuie sai corespunda o paranteza
nchis
a.
S
irurile de paranteze corect scrise se pot defini elegant cu ajutorul gramaticilor de tipul 2. Fie Gn = ({X}, VT , X, P ) o gramatica de tipul 2,
unde
VT = {i1 , . . . , in , i01 , . . . , i0n },
P = {X Xik Xi0k X, k = 1, . . . , n X }.
Prin definitie, limbajul lui Dyck de ordinul n este Dn = L(Gn ).
Exemplu. Presupunem n = 3; putem scrie derivarea
XXi3 Xi03 XXi3 Xi1 Xi01 Xi03 XXi3 Xi1 Xi01 Xi2 Xi02 Xi03 X
Xi3 Xi1 Xi01 Xi2 Xi1 Xi01 Xi02 Xi03 XXi3 Xi1 Xi01 Xi2 Xi1 Xi1 Xi01 Xi01 Xi02 Xi03 X.
In final, aplic
and regula de stergere, obtinem
X Xi1 X2 X . . . Xin X i1 . . . in .
Putem scrie
X Xi1 X2 X . . . Xin X i1 . . . in X = p1 X p1 p2 = p Dn .2
{z
=qDn
z}|{
I. pq = ik s1 s2 . . . s i0k t1 t2 . . . tp
|
{z
} | {z }
p
Deci
p = i si0 (ip.ind.) t0 Dn ,
|{z} |k{z k}
Dn
Dn
t = t0 q (ip.ind.) q Dn .
|{z}
|{z}
Dn
Dn
II. pq = ik s1 s2 . . . s i0k t1 t2 . . . tp .
| {z } | {z } | {z }
p
s0
76
$
V1
$
R
VT
E
+
&
D
&
Dn
X ik P
Dac
a X p atunci q, X 0 q, q D, p = h(q).
G
Proced
am prin inductie asupra lungimii l a derivarii.
Dac
a l = 1, atunci X p = ik , X ik i0k P 0 . Luam q = ik i0k si
G
X Y Z p.
G
G0 :
q1 , Y q1 , q1 D, h(q1 ) = p1 ;
q2 , Z q2 , q2 D, h(q2 ) = p2 .
Ne fix
am atentia asupra deriv
arii Y 0 q1 ; fiind o derivare ntr-o graG
matic
a de tipul 3, n toate deriv
arile directe se aplica reguli de categoria
I (A pB) cu exceptia ultimei unde se aplica o regula de categoria II
(c q). In cazul nostru, aceasta ultima regula trebuie sa fie de forma
X ik i0k . Odat
a cu aceast
a regula avem si X ik i0k ki0m+l Z; aplicando
pe aceasta, avem
Y 0 q1 i0m+l Z 0 q1 i0m+l q2 .
G
Pe de alt
a parte, deoarec X Y Z P avem X im+l Y P 0 , asa
ncat
78
def
S
a ar
at
am acum ca h(R D) E.
Fie q R, D si p h(q), atunci p L(G).
Mai general
X 0 q, q D atunci X h(q).
Proced
am prin inductie asupra lungimii derivarii l.
Dac
a l = 1 atunci Xq = ik i0k ; q Dn , h(q) = ik . Sa aplicat regula
X ik i0k P 0 ; rezulta X ik P deci X ik = h(q).
G
II. Se aplic
a o regula de forma X im+l Y . Avem
80
Capitolul 4
Limbaje dependente de
context
4.1
Gramatici monotone
Reamintim c
a o gramatic
a este monotona daca orice regula u v satisface
conditia |u| |v|. Este permis
a si regula, S (care evident nu satisface
conditia de monotonie) cu conditia ca S sa nu apara n dreapta vreunei
reguli.
Lema 4.1 Fie G1 = (VN , VT , S, P {u v}) unde u v este o regul
a
care satisface conditia de monotonie iar P sunt reguli de tipul 1. Atunci G1
este echivalent
a cu o gramatic
a dependent
a de context.
Demonstratie. Presupunem c
a P satisface conditia din lema 1.2, deci u =
X1 . . . Xm si v = Y1 . . . Yn cu Xi , Yj VN si m n. Putem presupune ca
m 2. Fie Z1 , . . . , Zm neterminale noi si consideram regulile R:
X1 X2 . . . Xm Z1 X2 . . . Xm ,
Z1 X2 . . . Xm Z1 Z2 . . . Xm ,
...
Z1 Z2 . . . Zm1 Xm Z1 Z2 . . . Zm Ym+1 . . . Yn ,
Z1 Z2 . . . Zm Ym+1 . . . Yn Y1 Z2 . . . Zm Ym+1 . . . Yn ,
...
Y1 Y2 . . . Ym1 Zm Ym+1 . . . Yn Y1 Y2 . . . Yn .
Lu
am G01 = (VN {Z1 , . . . , Zm }, VT , S, P R). Evident G01 este de tipul
1. Sa ar
at
am c
a L(G01 ) = L(G).
82
este clar c
a putem scrie n G01 derivarea S p si p L(G01 ). Sa presupunem
c
a la un anumit pas se utilizeaza regula u v; detaliem
Rezult
a c
a S p si deci p L(G01 ), adica L(G1 ) L(G01 ).
lizat pentru prima data o regula din R; aceasta nu poate sa fie decat prima
deoarece p
an
a n acest moment nu pot aparea simboluri Z. In continuare
trebuie aplicate succesiv toate regulile din R, altfel nu putem elimina neterminalele Z. Pasii respectivi (de la la ) vor avea forma (G01 ) de unde
rezult
a forma (G1 ). Prin urmare, p L(G1 ), mai departe L(G01 ) L(G1 )
si L(G01 ) = L(G1 ). 2
S
a observ
am ca orice gramatica dependenta de context este n mod evident monoton
a. Vom demonstra n cele ce urmeaza afirmatia reciproca.
Teorema 4.1 Orice gramatic
a monoton
a este echivalent
a cu o gramatic
a
dependent
a de context.
Demonstratie. Orice gramatica monotona se poate pune sub forma
Gn = (VN , VT , S, P {ui vi , i = 1, . . . , n}) unde regulile ui vi satisfac conditia de monotonie iar P sunt reguli de tipul 1 (P contine cel putin
o regul
a, anume cea care are S n stanga). Este clar ca Gn este o generalizare
a lui G1 ; proced
and ca n lema, putem construi o gramatica dependenta de
context G0n echivalenta cu Gn .2
Corolar 4.2 Familia limbajelor generate de gramatici monotone coincide
cu familia L2 .
Gramatici liniar m
arginite.
Definitie 4.1 O gramatic
a monoton
a este de ordinul n dac
a orice regul
a
u v satisface conditia |v| n.
Lema 4.2 O gramatic
a monoton
a de ordinul n 3 este echivalent
a cu o
gramatic
a monoton
a de ordinul n 1.
83
84
singur
a secvent
a uv n care se aplica reguli de forma (30 ), adica
G : S uv p.
u = u1 X1 u2 X2 u3 X2 u4 u1 Y1 Z1 u2 Y2 Z2 u2 Y2 Z3 u4 = v,
unde u1 , u2 , u3 , u4 VN . In G0 putem scrie
S 0 S 0 X2 S 0 X2 X2 S 0 X1 X2 X2 S X1 X2 X2
uX1 X2 X2 = u1 X1 u2 X2 u3 X2 u4 X1 X2 X2 u1 X1 X1 u2 X2 X2 u3 X2 X2 u4
u1 Y1 Z1 u2 Y2 Z2 u3 Y2 Z2 u4 = v p
4.2. AUTOMATE LINIAR MARGINITE
85
noastr
a trebuie s
a aib
a forma descrisa mai sus, de unde rezulta S p, p
G
L(G).2
Observatie. T
in
and cont c
a gramaticile dependente de context sunt
echivalente cu gramaticile monotone, rezulta ca orice gramatica dependenta
de context este echivalent
a cu o gramatica liniar marginita, cu alte cuvinte
admite forma normal
a.
Structura deriv
arilor ntr-o gramatic
a liniar m
arginit
a. Deoarece
C, F, H 6= S rezult
a c
a n orice derivare dintr-o gramatica liniar marginta se
aplic
a mai nt
ai un num
ar oarecare (sa zicem m) de reguli de forma (2),(3)
si la sf
arsit reguli de forma (4). Este clar ca lungimea cuvantului este m + 1.
Exemplu. Consider
am gramatica
S SA|SB,
A B, AB BA,
S 0, A 0, B 1.
Putem scrie derivarea
SSASBASABASBAASBBA0110.
Corespunz
ator acestei deriv
ari putem figura hiperarborele din figura 5.1.
Sa observ
am c
a p
an
a la linia punctata s-au aplicat trei reguli de forma
S SA, obtin
anduse cuv
antul SABA apoi doua reguli de forma (2),(3)
si apoi reguli de forma X i.
4.2
Automate liniar m
arginite
Un automat liniar m
arginit (ALM ) se compune dintro banda de intrare
si un dispozitiv de comand
a care poseda un dispozitiv de scrierecitire pe
banda de intrare. Banda de intrare contine simboluri ale unui alfabet de
intrare, constituind un cuv
ant de intrare. Alfabetul de intrare contine 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 conventie vom nota, deplasarea spre stanga cu +1, deplasarea spre
dreapta cu 1 si r
am
anerea pe loc cu 0. Dispozitivul de comanda se afla
ntotdeauna ntr-o anumit
a stare interna, element al unei multimi finite de
stari.
Schematic un ALM are forma din figura 5.2. Un ALM functioneaza n
86
S
S
S
S
A
B
p
#
q
i1
i2
i3
i4
4.2. AUTOMATE LINIAR MARGINITE
87
88
Cat.II;
Cat.III;
pentru E;
Cat.IV ;
Relatiile din categoria I servesc la pornirea si respectiv oprirea automatului. Categoria II apar numai daca gramatica contine regula S
4.2. AUTOMATE LINIAR MARGINITE
B
89
Figura 4.3:
...
...
...
s0
...
sD
...
...
s0
Figura 4.4:
si servesc la recunoasterea cuv
antului vid . Regulile din categoria III se
utilizeaz
a pentru reducerea succesiva a hiperarborelui de derivare si anume
partea construit
a cu reguli de forma (2),(3), (4) (partea situata sub linia
punctat
a de la exemplul din figura 5.1). In adevar, cu ajutorul relatiei (5)
putem plasa dispozitivul de comanda sub oricare din simbolurile cuvantului
curent. Apoi, cu ajutorul relatiilor (7) si respectiv (8),(9) putem reduce
subhiperarbori de forma prezentata n figura 5.3. corespunzatori regulilor
de forma B y si DE F H. De exemplu, avem urmatoarea functionare
(vezi figura 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 VN . Aceasta parte va fi redusa
cu relatiile din categoria IV. Astfel, dupa plasarea dispozitivului de citire
scriere pe S, cu ajutorul relatiei (10), dispozitivul se plaseaza pe marcajul
de nceput si trece n starea s1 , dupa care revine pe S n starea s2 (relatia
11). In continuare au loc secvente de forma din figura 5.5.
In urma acestor secvente pe banda se va scrie cuvantul #[[ . . . [# iar
dispozitivul se va plasa pe marcajul de sfarsit n starea s3 . In sfarsit, cu
ajutorul relatiei (2) functionarea automatului este oprita.
90
# X0 A B
s0
...
S Y ...
s0
... [ S Y ...
s1
... [ S Y ...
# X0 A B . . .
s1
# X0 A B . . .
s2
# [ A B ...
s0
. . . [ X0 B . . .
s2
s0
s3
... [
Figura 4.5:
Este clar c
a daca p E atunci automatul definit mai sus va avea o
evolutie de acest tip si reciproc, deci E = L(ALM ).2
Exemplu: Evolutia ALM corespunzator gramaticii de la exemplul din
paragraful precedent pentru cuvantul #0110# este:
(, s0 , #0110#)7(#, s0 , 0110#)7(#0, s0 , 110#)7(#01, s0 , 10#)7
(#01, s0 , B0#)7 . . . 7(#S, s0 , BAA#)7(#SA, sD , AA#)7
(#SA, s0 , BA#)7 . . . 7(#, s0 , SABA#)7(, s1 , SBAA#)7
(#, s2 , ABA#)7(#[, s3 , ABA#)7(#[, s0 , SBA#)7(#, s1 , SBA#)7
(#[, s2 , SBA#)7(#[[, s3 , BA#)7 . . . 7(#[[[[, s3 , #)
Capitolul 5
Forma normal
a
92
nc
at s
a contin
a doua categorii de reguli: reguli care respecta conditia de
monotonie si reguli.
In continuare reducem ordinul regulilor monotone, urmand aceiasi procedur
a ca la limbaje dependente de context, pana la ordinul 2 inclusiv (
regulile nu intervin cu nimic n acest proces). In final obtinem reguli de
urm
atoarele categorii:
(1) B C|i| ,
(2) DE F H,
(3) X Y Z.
Regulile de forma (3) cu X 6= S sau Y 6= S le eliminam cu procedura
cunoscut
a 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
c
a L1 L0 (strict). Demonstratia se face pe o cale indirecta (nu s-a gasit un
exemplu de limbaj de tipul zero care sa nu poata fi generat de o gramatica
dependent
a de context).
Dup
a cum am vazut n primul capitol limbajele de tipul zero sunt nchise
fat
a de operatiile regulate. Se poate arata ca familia L0 este nchisa la
intersectie.
Mention
am si urmatoarea teorema a spatiului de lucru. Fie G o gramatic
a de tipul zero. Pentru o derivare
D : S = u0 u1 . . . un = p VT
definim
W SD (p) = max|ui |
i = 1, . . . , n
si
W S(p) = min{W SD (p)}.
D
Observatie. W S este prescurtare de la working space.
Spunem c
a o gramatica de tipul zero G are spatiul de lucru marginit
dac
a exist
a k N astfel ncat pentru p L(G) sa avem W S(p) k|p|. Sa
observ
am c
a orice gramatica care nu are reguli de stergere (exceptie S
si atunci S nu apare n dreapta) satisface aceasta conditie cu k = 1.
Teorema 5.1 (teorema spatiului de lucru) dac
a o gramatic
a G are spatiul
de lucru m
arginit, atunci L(G) L1 .
5.2. MAS
INA TURING
93
p = i1 i2 i3 i4 i5 , n = 4
i1
i2
i3
i4
i5
5.2
Masina Turing
Conceptul de masin
a Turing. Masina Turing este un mecanism de recunoastere a limbajelor de tipul zero. In felul acesta, familiilor de limbaje
din clasificarea Chomsky le corespund automate specifice de recunoastere.
Familia L3 - automate finite,
Familia L2 - automate pushdown,
Familia L1 - automate liniar marginite,
Familia L0 - masina Turing.
O masin
a Turing (prescurtat MT) se compune dintrun dispozitiv de
comand
a care posed
a un dispozitiv de scrierecitire si o banda de intrare.
Banda de intrare se consider
a m
arginita la stanga si nemarginita la dreapta;
ea contine simboluri ale unui alfabet de intrare, ncepand din prima pozitie.
Alfabetul are un simbol special numit blanc si notat [ (sau spatiu), care se
consider
a nregistrat n toat
a partea neocupata a benzii. Indicele simbolului
din dreptul dispozitivului de scrierecitire l notam cu n si el va constitui
un element al st
arii masinii Turing. Dispozitivul de comanda se afla ntr-o
anumit
a stare intern
a, element al unei multimi finite de stari.
Schema unei masini Turing este data n figura 6.1. O masina Turing
functioneaz
a n pasi discreti. Un pas de functionare consta din:
Dispozitivul de comand
a citeste simbolul aflat n dreptul dispozitivului
de scrierecitire; n functie de simbolul citit, masina Turing trece ntr-o noua
stare intern
a, scrie pe band
a un nou simbol (ntotdeauna diferit de blanc) n
locul simbolului citit si mut
a banda cu o pozitie (spre stanga sau dreapta)
sau o las
a pe loc. Conventional, vom nota cu +1 o miscare spre stanga, cu
94
0 7 00 dac
a 0 = 00 sau daca exista 1 , . . . , n astfel ncat
0 = 1 72 7 . . . 7n = 00 .
Limbajul recunoscut de o masina Turing este prin definitie
5.2. MAS
INA TURING
f
[
0
1
s0
(s2 , 1, 1)
(s1 , 0, 1)
(s0 , 1, 1)
95
s1
s2
(s0 , 0, 1)
(s0 , 0, 1)
96
2)s0 (i1 , i1 ) . . . (in , in )(, [)m (i1 , i01 ) . . . (ik1 , i0k1 )sf (ik , i0k ) . . . (in+m , i0n+m ),
unde
i1 , . . . , in I \ {[}, in+1 , . . . , in+m = ,
i01 , . . . , i0h I \ {[}, i0h+1 , . . . , i0n+m = .
Demonstratie prin inductie asupra lungimii l a evolutiei.
Pentru l = 0 avem
5.2. MAS
INA TURING
i1 i2 i3
...
97
i1 i2 i3
ig
...
ig
s
h=g
h=g+1
s0 (i1 , i1 ) . . . (in , in )(, [)m (i1 , i001 ) . . . (ij1 , i00j1 )s(ij , i00j ) . . . (in+m , i00n+m ).
In conformitate cu definitia evolutiei directe avem
f (s, i00j ) = (sf , i0j , 1), k = j + 1, s(ij , i00j ) (ij , i00j )sf ;
f (s, i00j ) = (sf , i0j , 1), k = j 1, (ij1 , i00j1 )s(ij , i00j ) sf (ij , i00j1 )(ij , i0j ).
In ambele cazuri
s0 (i1 , i1 ) . . . (in , in )(, [)m (i1 , i01 ) . . . (ik1 , i0k1 )sf (ik , i0k ) . . . (in+m , i0n+m ).
Acum, deoarece sf f , putem scrie
S
sf i1 sf i2 sf . . . sf in sf i1 . . . in = p.
98
Cuprins
1 Limbaje formale
3
1.1 Limbaje, gramatici, proprietati generale . . . . . . . . . . . . 3
1.2 Ierarhia Chomsky . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Propriet
ati de nchidere a familiilor Chomsky . . . . . . . . . 15
2 Limbaje regulate
2.1 Automate finite si limbaje regulate . . . .
2.2 Propriet
ati speciale ale limbajelor regulate
2.3 Lema de pompare pentru limbaje regulate
2.4 Expresii regulate . . . . . . . . . . . . . .
2.5 Sisteme tranzitionale . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
29
33
35
36
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
46
49
56
65
68
72
75
100
CUPRINS