Sunteți pe pagina 1din 146

UNIVERSITATEA TRANSILVANIA DIN BRAOV

DEPARTAMENTUL PENTRU NVMNT LA DISTAN


FACULTATEA DE MATEMATIC I INFORMATIC
CATEDRA DE INFORMATIC TEORETIC



PROF. DR. DANI ELA MARI NESCU

ASI ST. I OANA PLAJ ER PREP. ALEXANDRA BICOIANU










LIMBAJE FORMALE
I
TEORIA AUTOMATELOR


NVMNT LA DISTAN












BRAOV 2009-2010
- 1 -

Introducere

Teoria limbajelor formale a aprut n conexiune cu studiul limbajelor naturale dar ea a avut o
dezvoltare rapid datorit calculatorului electronic i a limbajelor de programare. Cercetrile
romneti n limbaje formale au nceput n coala de lingvistic matematic creat i condus de
Solomon Marcus, din cadrul Universitii Bucureti. Printre reprezentanii acestei coli se numr:
Gheorghe Pun, Gabriel Orman, Cristian Calude.
Limbajele formale au o mulime de aplicaii n diferite domenii: compilarea automat,
traducerea automat dintr-un limbaj natural ntr-altul, decidabilitate i calculabilitate, demonstrarea
teoremelor, analiza imaginilor, modelarea unor procese chimice sau biologice, arhitectura, pictura,
modelarea unor probleme de cercetri operaionale .a.m.d. O nou direcie deschis de Pun
Gheorghe, este o aplicaie practic a metodelor lingvistice n studiul proceselor economice.
Cursul de fa i propune s trateze aspecte ale teoriei limbajelor formale strns legate de
teoria compilrii. El se adreseaz, n special, studenilor de la seciile de informatic, dar poate fi
folosit i de cititori care nu au o pregtire special n acest domeniu, pentru c noiunile folosite au
fost introduse gradat i metodic.

Astfel cursul este compus din patru mari module:
Modulul 1, Introducere n teoria limbajelor formale, i propune s introduc cititorul n
domeniu prin definirea noiunilor de limbaj, de reprezentare a unui limbaj, de gramatic de
iruri de tip Chomsky. Se definete o ierarhizare a gramaticilor, datorat lui Chomsky, i se
introduc o serie de operaii cu limbaje care vor permite studierea n capitolele urmtoare a
proprietilor de nchidere ale diferitelor familii de limbaje.
Modulul 2, Automate finite i limbaje de tip 3, este dedicat limbajelor de tip 3 din ierarhia
lui Chomsky, care sunt privite ca limbaje generate de gramatici de tip 3, recunoscute de
automatele finite sau reprezentate de expresii regulate. Se demonstreaz c cele trei moduri
de reprezentare sunt echivalente. Se prezint un foarte interesant algoritm de minimizare a
automatului finit, algoritm care permite realizarea unui analizor lexical optim.
Modulul 3, Proprieti ale familiei limbajelor de tip 3, prezint proprieti i probleme de
decizie ale acestor limbaje, folosind cele trei moduri de reprezentare ale limbajelor
regulate: gramaticile de tip 3, automatele finite i expresiile regulate.
Modulul 4, Limbaje idependente de context i automate push-down, definete o serie de
forme speciale ale gramaticilor independente de context, numite forme normale Chomsky
i Greibach, i demonstreaz legtura dintre limbajele generate de geramaticile de tip 2 i
limbajele recunoscute de automatele push-down nedeterministe. Se demonstreaz i aici o
serie de proprieti ale familiei limbajelor independente de context o lem de pompare
pentru limbajele independente de context.


Obiectivele cursului
Cursul i propune ca obiectiv familiarizarea studenilor cu noiuni de
limbaje formale i teoria automatelor, necesare n modelarea proceselor, n
procesarea limbajelor naturale i, mai ales, n construcia compilatoarelor pentru
limbaje de programare evoluate.

- 2 -


Competene conferite
Dup parcurgerea materialului studentul va fi capabil s:
Identifice tipuri diferite de gramatici din ierarhia lui Chomsky;
Construiasc gramatici pentru diferite limbaje din ierarhia lui Chomsky;
Construiasc automate finite i automate push-down n funcie de clasa de
limbaje pe care doresc s o recunoasc;
Construiasc reprezentari sub form de expresii regulate pentru anumite
limbaje de tip 3;
Scrie programe pentru o serie de algoritmi descrii n cadrul acestui curs.




Resurse i mijloace de lucru
Este indicat s se foloseasc urmtoarele mijloace de lucru:
Parcurgerea cursului cu notarea separat a noiunilor importante care vor
trebui reinute;
Refacerea exemplelor prezentate n curs;
Rezolvarea problemelor propuse la sfirit de unitate de nvare;
Testarea programelor realizate la laborator cu exemple rezolvate cu
mna.


Structura cursului
Cursul este structurat n 4 module i 14 uniti de nvare, dup cum
urmeaz:
Modulul 1 conine 3 uniti de nvare;
Modulul 2 conine 4 uniti de nvare;
Modulul 3 conine 2 uniti de nvare;
Modulul 4 conine 5 uniti de nvare.
Fiecare unitate de nvare necesit ntre 2 i 4 ore de nvare;
Exist 2 teme de control, prima fiind prezentat la sfritul modulului 3 iar
cea de a doua la sfritul modulului 4;
Transmiterea temelor de control se va face n mod electronic i sub form
de material tiprit;
Transmiterea rezultatelor se va face direct, n ziua exmenului, cu
comentarea problemelor aprute, i n format electronic.


Cerine preliminare
Discipline necesare a fi parcurse naintea disciplinei curente:
Algoritmica;
Structuri de date;
Programare procedural
Programare obiect orientat;
Algoritmica grafurilor.
- 3 -

Discipline deservite
Cursul de Limbaje Formale si Teoria Automateleor este absolut necesar n
nelegerea cursului de Tehnici de compilare .


Durata medie de studiu individual
Timpul estimativ de studiu individual necesar parcurgerii modulelor este
urmtorul:
Modulul 1 conine 3 uniti de nvare a cte 2-3 ore=8 ore;
Modulul 2 conine 4 uniti de nvare a cte 3 ore=12 ore;
Modulul 3 conine 2 uniti de nvare a cte 3 ore=6 ore;
Modulul 4 conine 5 uniti de nvare a cte 3-4 ore=16 ore.


Evaluarea
Nota final este compus din 4 evaluari dup cum urmeaz:
ponderea evalurii finale (examen/colocviu) este de 50%;
ponderea evalurilor pe parcurs (teme de control, verificri pe parcurs)
este de 25%
ponderea proiectelor/colocvii de laborator este de 25%.;


- 4 -



Cuprins
Introducere .................................................................................................................................. 1
Chestionar evaluare prerechizite .................................................................................................. 9
Modulul 1. Introducere n Teoria Limbajelor Formale
Introducere. .................................................................................................................. 9
Competene ................................................................................................................... 9
Unitatea de nvare I.1 Notiuni generale de teoria limbajelor formale .......................... 9
I.1.1. Introducere....................................................................................... 10
I.1.2. Obiectivele unitii de nvare ......................................................... 10
I.1.3. Noiunea de limbaj ......................................................................... ..10
I.1.4. Rezumat ........................................................................................... 17
Test de evaluare/autoevaluare ................................................................... 16
Unitatea de nvare I.2. Algoritmi normali n sens Markov ........................................ 18
I.2.1. Introducere....................................................................................... 18
I.2.2. Obiectivele unitii de nvare ......................................................... 18
I.2.3. Algoritmi normali n sens Markov.................................................... 18
I.2.4. Exemple ........................................................................................... 19
I.2.5. Rezumat ........................................................................................... 25
Test de evaluare/autoevaluare ................................................................... 25
Unitatea de nvare I.3. Gramatici analitice i generative ........................................... 26
I.3.1. Introducere....................................................................................... 26
I.3.2. Obiective .......................................................................................... 26
I.3.3. Gramatici analitice i generative ..................................................... 26
I.3.4. Ierarhia lui Chomsky ........................................................................ 30
I.3.5. Operaii cu limbaje ........................................................................... 35
I.3.6. Rezumat ........................................................................................... 38
Test de evaluare/autoevaluare ................................................................... 37
Modulul II. Automate finite i limbaje de tip 3 ............................................................................ 39
Introducere. ................................................................................................................ 39
Competene ................................................................................................................. 39
Unitatea de nvare II.1. Automate finite i limbaje de tip 3 ....................................... 40
II.1.1. Introducere ..................................................................................... 40
II.1.2. Obiectivele unitii de nvare ....................................................... 40
- 5 -

II.1.3. Automate finite ................................................................................ 40
II.1.4. Legtura dintre gramaticile regulate i automatele finite ................ 45
II.1.5. Rezumat .......................................................................................... 52
Test de evaluare/autoevaluare ................................................................... 51
Unitatea de nvare II.2. Minimizarea automatului finit ............................................. 53
II.2.1. Introducere ..................................................................................... 53
II.2.2. Obiectivele unitii de nvare ....................................................... 53
II.2.3. Minimizarea automatului finit ......................................................... 53
II.2.4. Algoritmi de minimizare a automatului finit .................................... 57
II.2.5. Rezumat .......................................................................................... 61
Test de evaluare/autoevaluare ................................................................... 60
Unitatea de nvare II.3. Gramatici regulate i expresii regulate ............................... 62
II.3.1. Introducere ..................................................................................... 62
II.3.2. Obiectivele unitii de nvare ....................................................... 62
II.3.3. Gramatici de tip 3 i expresii regulate ............................................. 62
II.3.4. Algoritm de transformare a unei gramatici regulate ntr-o
expresie regulat ............................................................................. 65
II.3.5. Rezumat .......................................................................................... 70
Test de evaluare/autoevaluare ................................................................... 70
Unitatea de nvare II.4. Expresii regulate i automate finite ..................................... 71
II.4.1. Introducere ..................................................................................... 71
II.4.2. Obiectivele unitii de nvare ....................................................... 71
II.4.3. Algoritm de construcie a unui automat finit pornind de la o
expresie regulat ........................................................................... 71
II.4.4. Rezumat .......................................................................................... 76
Test de evaluare/autoevaluare ................................................................... 76
Modulul III Proprieti ale limbajelor regulate .......................................................................... 77
Introducere. ................................................................................................................ 77
Competene ................................................................................................................. 77
Unitatea de nvare III.1 Proprieti de nchidere pentru limbaje regulate. ................ 78
III.1.1. Introducere .................................................................................... 78
III.1.2. Obiectivele unitii de nvare ...................................................... 78
III.1.3. Proprieti de nchidere pentru limbaje regulate ............................ 78
III.1.4. Rezumat ......................................................................................... 85
Test de evaluare/autoevaluare ................................................................... 85
Unitatea de nvare III.2. Lema de pompare pentru limbaje regulate ......................... 86
- 6 -

III.2.1. Introducere .................................................................................... 86
III.2.2. Obiectivele unitii de nvare ...................................................... 86
III.2.3. Proprieti ale limbajelor regulate ................................................. 86
III.2.4. Lema de pompare .......................................................................... 88
III.2.5. Rezumat ......................................................................................... 90
Test de evaluare/autoevaluare ................................................................... 90
Tem de contro Il ........................................................................................................ 91
Modulul IV Limbaje independente de context.. ........................................................................... 92
Introducere. ................................................................................................................ 92
Competene ................................................................................................................. 92
Unitatea de nvare IV.1. Arbori de derivaie pentru gramatici independente de
context ...................................................................................................... 93
IV.1.1. Introducere .................................................................................... 93
IV.1.2. Obiectivele unitii de nvare ...................................................... 93
IV.1.3 Arbori de derivaie pentru gramatici I.D.C.. .................................... 93
IV.1.4. Rezumat ......................................................................................... 98
Test de evaluare/autoevaluare ................................................................... 97
Unitatea de nvare IV.2. Simplificarea gramaticilor independente de context.i
forme normale
IV.2.1. Introducere .................................................................................... 99
IV.2.2. Obiectivele unitii de nvare ...................................................... 99
IV.2.3. Simplificarea gramaticilor independente de context. ...................... 99
IV.2.4. Forme normale pentru gramatici I.D.C. ....................................... 105
IV.2.5. Rezumat ....................................................................................... 114
Test de evaluare/autoevaluare ............................................................... ..113
Unitatea de nvare IV.3.Lema de pompare pentru limbaje independente de contex..115
IV.3.1. Introducere .................................................................................. 115
IV.3.2. Obiectivele unitii de nvare .................................................... 115
IV.3.3. Lema de pompare pentru limbaje I.D.C. ....................................... 115
IV.3.4.Rezumat. ....................................................................................... 120
IV.2.5. Rezumat ....................................................................................... 120
Test de evaluare/autoevaluare ................................................................. 120
Unitatea de nvare IV.4. Automate push-down i legtura lor cu gramaticile
independente de context ................................................... 121
IV.4.1. Introducere .................................................................................. 121
IV.4.2. Obiectivele unitii de nvare .................................................... 121
- 7 -

IV.4.3. Automate push-down ................................................................... 122
IV.4.4. Legtura dintre automate push-down i gramatici de tip 2 ........... 126
IV.4.5. Rezumat ....................................................................................... 132
Test de evaluare/autoevaluare ................................................................. 132
Unitatea de nvare IV.5. Proprieti de nchidere ale familiei limbajelor de tip 2.....133
IV.5.1. Introducere .................................................................................. 133
IV.5.2. Obiectivele unitii de nvare .................................................... 133
IV.5.3. Proprieti de nchidere pentru limbaje I.D.C................................ 133
IV.5.4. Rezumat ....................................................................................... 143
Test de evaluare/autoevaluare ................................................................. 142
Tem de control II ..................................................................................................... 144
Bibliografie .............................................................................................................................. 145
- 8 -


Chestionar evaluare prerechizite



1. Definii urmtoarele noiuni: tip de data, variabil ntr-un algoritm, stare a execuiei unui
algoritm (program), calcul efectuat de un program (algoritm), algoritm parial corect,
testarea unui program, complexitatea unui algoritm.
2. Descriei metoda backtracking. Precizai 2 exemple de probleme rezolvate prin
backtracking.
3. Cum se realizeaz trasmiterea parametrilor pentru funcii (java/c++)?
4. Cum se realizeaz generarea numerelor aleatoare n java/c++?
5. Ce nelegei prin precedena operatorilor? Oferii exemple.
6. iruri de caractere:
a. Cum se determin lungimea unui ir?
b. Cum se determin poziia unui caracter ntr-un ir dat?
c. Cum extragem un subir dintr-un ir?
d. Cum se realizeaz nlocuirea unui subir cu un alt subir?
e. Cum se obine inversul unui ir?

7. Instruciuni repetitive:
a. Care este forma general a instruciunii for?
b. Care este forma general a instruciunii while?
Precizai pentru fiecare subpunct condiii de ieire din ciclu.
8. Ce este recursivitate? Precizati un exemplu.
9. Definii urmtoarele noiuni: graf neorienatat, graf orientat, muchie, arc, nod surs, nod
scop, lista de adiacen.
10. Definii urmtoarele noiuni:
a. Arbore binar, subarbore, parcurgere n inordine, parcurgere n preordine, parcurgere n
postordine, frunz, succesor, rdcin;
b.Stiv, coad, list simplu nlnuit.
- 9 -


Modulul 1. Introducere n Teoria Limbajelor Formale
Cuprins
Introducere..........................................................................................................................9
Competene.........................................................................................................................9
U1. Noiuni generale de teoria limbajelor formale............................................................10
U2. Algoritmi normali n sens Markov.............................................................................18
U3. Gramatici analitice i generative................................................................................26



Introducere
Introducem, n acest modul, o serie de noiuni folosite n teoria limbajelor formale
cum ar fi: alphabet, simbol, cuvnt, subcuvnt, prefix, suffix, cuvnt vid. Noiunea
de limbaj formal se definete apoi n mai multe feluri, echivalente ntre ele,
pornind de la sisteme de rescriere, pn la gramatici generative i analitice.

n afar de gramatici se mai prezint un exemplu de sistem de rescriere, algoritmul
normal n sens Markov, pentru care se dau o serie de exemple de funcionare.

n continuare se prezint o ierarhizare a gramaticilor, numit Ierarhia lui Chomsky,
i se definesc operaiile cu limbaje.



Competene
La sfritul acestui modul studenii vor fi capabili s:
- Foloseasc noiunile definite n descrierea limbajelor formale;
- Construiasc gramatici generative i analitice pentru diferite limbaje;
- Construiasc algoritmi normali n sens Markov cu o intrare i o ieire;
fixat;
- Implementeze algoritmii prezentai ntr-un limbaj de programare general.

- 10 -


Unitatea de nvare M1.U1. Noiuni generale de teoria
limbajelor formale

Cuprins

M1.U1.1. Introducere ............................................................................................... 10
M1.U1.2. Obiectivele unitii de nvare .................................................................. 10
M1.U1.3. Noiunea de limbaj .................................................................................... 10
M1.U1.4. Rezumat ................................................................................................... 17



M1.U1.1. Introducere
Noiunile folosite n teoria limbajelor formale au fost preluate din lingvistic dei
sunt folosite de multe ori cu sens schimbat. Astfel limbajul este definit ca o
mulime de cuvinte iar n lingvistic, care se refer la un limbaj natural, limbajul
este o mulime de fraze care sunt la rndul lor mulimi de cuvinte.

Problema delicat este de a defini n mod finit o mulime infinit sau foarte mare
de cuvinte.

In acest prim parte se definete un limbaj prin proprieti specifice ale
cuvintelor sale sau printr-un sistem de reguli care conduc la generarea cuvimtelor
sale .



M1.U1.2. Obiectivele unitii de nvare
Aceast unitate de nvare i propune ca obiectiv principal o iniiere a studenilor
n noiuni specifice Limbajelor formale.
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice algoritmii de generare a cuvintelor unui limbaj;
- demonstreze corectitudinea unei construcii de limbaj.




Durata medie de parcurgere a unitii de nvare este de 2 ore.
M1.U1.3 Noiunea de limbaj
Noiunea de limbaj se ntlnete att n lingvistic, unde se refer la limbajele naturale, ct i n
informatic, unde se refer la limbajele de programare.
- 11 -

O limb natural se definete, conform dicionarului, ca o mulime de cuvinte i de
metode de combinare a lor, folosit i neleas de o comunitate uman considerabil.
Un limbaj de programare se definete ca o mulime de programe corecte scrise n acel
limbaj.
O limb natural sau un limbaj de programare pot fi considerate ca mulimi de secvene,
adic iruri finite de elemente ale unui anumit vocabular de baz.
Pentru a putea studia proprietile acestor limbaje a fost necesar formalizarea noiunii de
limbaj, construirea unei teorii matematice riguroase a limbajelor. O astfel de teorie este suficient
de general pentru a include i limbajele naturale i limbajele de programare, precum i o
mulime de alte limbaje, formnd la un loc aa numitele limbaje formale.
Pentru a putea defini noiunea de limbaj formal vom introduce o serie de noiuni i notaii
folosite frecvent n aceast teorie.

Definiia 1.1.1 Un alfabet sau vocabular, V, este o mulime finit, nevid de elemente.

Definiia 1.1.2 Un element al alfabetului V se numete liter sau simbol.

n cele ce urmeaz vom folosi ca simboluri cifrele, literele latine i greceti mari i mici
i simboluri speciale cum ar fi $, #.



Exemplul 1 Exemple de alfabete sunt:
-alfabetul latin: {A, B, C, ..., Z}
-alfabetul grecesc: {o, |, , ..., e}
-alfabetul binar: {0, 1}.

Definiia 1.1.3 Un cuvnt peste alfabetul V este un ir finit constnd din zero sau mai multe
simboluri ale lui V, unde un acelai simbol poate s apar de mai multe ori.

Notm cu sau c, cuvntul vid, format din zero simboluri.
Dac V este un alfabet atunci prin V* vom nota mulimea tuturor cuvintelor peste V,
inclusiv cuvntul vid , iar V
+
= V* - { }.



Exemplul 2 Dac V = { 0, 1 } atunci
V*={, 0, 1, 00, 01, 10, 11, ...}
i
V
+
={0, 1, 00, 01, 10, 11, 000 , ...}.
Evident V* i V
+
sunt mulimi infinite deoarece ele conin cuvinte de
lungime orict de mare.




- 12 -

Definiia 1.1.4 Un limbaj este o mulime de cuvinte peste un alfabet.


Exemplul 3 ntr-un limbaj natural alfabetul, n sensul definiiilor de mai sus, este
dicionarul limbii respective, cuvintele sunt frazele, iar limbajul este mulimea
tuturor frazelor. ntr-un limbaj de programare simbolurile sunt instruciunile
limbajului, cuvintele sunt programele iar limbajul este mulimea tuturor
programelor.

n mulimea cuvintelor se introduce o operaie numit concatenare:

Definiia 1.1.5 Dac u i v sunt dou cuvinte din V* atunci concatenarea uv este tot un cuvnt
din V*, care se obine prin alturarea simbolurilor lui v dup ultimul simbol al lui u.

Observaia 1.1.1 Evident operaia de concatenare este asociativ, u(vw)=(uv)w, dar nu este
comutativ (n general uv=vu) iar cuvntul vid este element neutru relativ la operaia de
concatenare: u=u=u.

Definiia 1.1.6 Puterea a i-a a cuvntului u, notat u
i
, este definit recursiv astfel:
(1) u
0
=
(2) u
i+1
= u
i
u

Definiia 1.1.7 Lungimea unui cuvnt u, notat lg(u) sau |u|, este numrul de simboluri ale
cuvntului u i este o aplicaie lg: V* N .
Prin definiie lg() = 0, fiind cuvntul format din zero simboluri.

Definiia 1.1.8 Un cuvnt u este subcuvnt al lui v dac i numai dac exist cuvintele o i |
astfel nct v = ou|. Dac o = atunci u se numete prefix al lui v iar dac | = atunci u se
numete sufix al lui v. Un subcuvnt u al lui v se numete subcuvnt propriu al lui v numai dac
ue{,v}.

Majoritatea limbajelor care ne intereseaz vor conine o mulime infinit de cuvinte. Se
pun atunci trei chestiuni importante:

1. Cum se poate reprezenta un limbaj?
Dac limbajul este finit atunci el s-ar putea reprezenta prin enumerarea cuvintelor sale,
dei la un numr mare de cuvinte enumerarea poate fi complicat. Dac ns limbajul este infinit
apare problema gsirii unei reprezentri finite pentru limbaj.
Apare atunci o alt problem:

2. Exist o reprezentare finit pentru orice limbaj?
Evident mulimea V* a tuturor cuvintelor peste un alfabet finit V este o mulime
numrabil. Un limbaj este o submulime a lui V*, deci mulimea tuturor limbajelor peste V este
mulimea prilor lui V*, adic o mulime nenumrabil.
Dei nu am definit nc o reprezentare finit a unui limbaj, se pare c mulimea
reprezentrilor finite este numrabil [4] deci ar rezulta c exist mai multe limbaje dect
reprezentri finite ale limbajelor.
- 13 -


3. Ce se poate spune despre structura acelor clase de limbaje care admit reprezentri finite?
Aceasta este una din principalele problemele de care ne vom ocupa n continuare.

S considerm acum cteva limbaje peste alfabetul {a, b}.

L
1
={ }
L
2
={ a, ba, aaba, bbbb }
L
3
={ a
p
| p numr prim }
L
4
={ a
i
b
i
| i numr natural }

L
5
={ ue{ }
*
, b a | N
a
(u)=N
b
(u) }

unde N
a
(u) este numrul de apariii ale simbolului a n cuvntul u. Considerm i limbajul vid
u, care nu conine nici un cuvnt Se observ c u = {} pentru c limbajul { } conine un
cuvnt i anume .
Limbajele L
1
i

L
2
fiind finite se pot reprezenta prin enumerarea cuvintelor lor pe cnd
limbajele L
3
,

L
4
i L
5
sunt infinite i au fost caracterizate de o proprietate pe care trebuie s o
satisfac toate cuvintele limbajului. O astfel de proprietate specific este un mijloc de baz de
definire a unui limbaj infinit.
Un alt mod de a defini un limbaj infinit este de a introduce un mecanism generativ i de a
considera cuvintele produse de acest mecanism.
Se poate, de asemenea, construi un mecanism analitic, de recunoatere. Astfel un limbaj
se poate defini ca mulimea tuturor cuvintelor recunoscute de un astfel de mecanism.
Mecanismele generative i analitice se pot defini n termenii unui sistem de rescriere.
S considerm cteva moduri de definire ale unor limbaje n exemplele urmtoare.


Exemplul 4 Fie L un limbaj peste alfabetul {a, b} definit dup cum urmeaz:
(i) e L
(ii) Dac x eL atunci axb e L
(iii) Nici un alt cuvnt nu aparine lui L.
Vom demonstra prin dubl incluziune c limbajul L construit conform
acestor reguli este chiar limbajul L
4
= { a
i
b
i
| i numr natural }.

a) Demonstrm prin inducie relativ la k faptul c N k L b a
k k
e e , , adic c
L
4
_L:
Din (i) =a
0
b
0
eL .
Dac a
k
b
k
eL prin (ii) aa
k
b
k
beL adic a
k+1
b
k+1
eL, deci prin inducie
rezult c L
4
_L.

b) Demonstrm, prin inducie relativ la lungimea cuvintelor din L, faptul c
L_L
4
:

a
0
b
0
, adic , este singurul cuvnt de lungime 0 din L.
Presupunem c a
k
b
k
este singurul cuvnt de lungime 2k din L ; atunci din
(ii) rezult c a
k+1
b
k+1
este singurul cuvnt de lungime 2k+2 din L.
Pentru c L nu conine nici un cuvnt de lungime impar (este uor de
- 14 -

demonstrate aceast afirmaie tot prin inducie) rezult c L_L
4
.
Din a) i b) rezult c cele dou limbaje sunt egale adic L
4
=L .

Se observ c (i)-(iii) constituie un mecanism generativ pe cnd L
4
este definit de o proprietate
specific.


Exemplul 5 Fie L definit dup cum urmeaz :
(i) eL
(ii) Dac xeL, atunci axbeL i bxaeL
(iii) Dac x1eL, x2eL atunci x1x2eL
(iv) Nici un alt cuvnt nu aparine lui L.
Vom demonstra c L=L5.

Demonstrm nti c L_L5.
Pentru c = a0b0are proprietatea de a avea acelai numr de a i de b,
adic 0 de a i 0 de b, iar (ii) i (iii) pstreaz proprietatea (acelai numr de
apariii ale lui a i b) rezult c L conine numai cuvinte cu acelai numr de
apariii ale simbolului a i b.
Se demonstreaz prin inducie c L conine toate cuvintele de lungime
mai mic sau egal cu 2i cu aceast proprietate.


Exemplul 6 Fie L un limbaj constnd din toate cuvintele care se pot reduce la
prin nlocuirea subcuvintelor ab prin .
Astfel cuvintele , ab, abab i aabbab eL. Evident LcL
5
dar L=L
5

pentru c, de exemplu, baeL. Definiia aceasta poate fi considerat ca un
mecanism de recunoatere sau analitic.
n exemplele date anumite subcuvinte sunt rescrise. n conformitate cu
definiia urmtoare, o mulime finit de reguli de rescriere determin un sistem de
rescriere.

- 15 -

Definiia 1.1.9 Un sistem de rescriere este o pereche ordonat SR=(V, F), unde V este un alfabet
i F o mulime finit de perechi ordonate de cuvinte peste V. Elementele (,) ale lui F sunt
numite reguli de rescriere sau producii i se noteaz .
Un cuvnt peste V genereaz direct un cuvnt (
SR
) dac i numai dac exist
cuvintele u, v,
1
,
1
astfel nct:
=u
1
v
=u
1
v
iar

1
eF,
adic subcuvntul
1
al lui

este nlocuit prin subcuvntul
1
.
Un cuvnt peste V genereaz (n mai muli pai) (
*
) dac i numai dac exist un
ir finit de cuvinte
0
,
1
, ...,
k
, k > 0, unde
0
=,
k
= i
i

i+1
, pentru 0 s i s k-1. Secvena

0

1
...
k
se va numi derivaie a lui din n conformitate cu sistemul de rescriere, SR.
=
0

1

2
....
k
=
Astfel relaia este o relaie binar pe V* iar
*
este nchiderea reflexiv i tranzitiv a
relaiei . Numrul k se numete lungimea derivaiei sau numr de pai.

Observaia 1.1.2 Dac este o relaie binar pe o mulime W , atunci nchiderea reflexiv i
tranzitiv * a relaiei se definete :
(i) P*P pentru orice PeW
(ii) Dac P
1
*P
2
i P
2
P
3
P
1
*P
3

(iii) P*Q numai dac se poate stabili prin (i) i (ii).

Un sistem de rescriere poate fi transformat ntr-un mecanism generativ prin specificarea
unei submulimi Ax _ V*, numit mulimea de axiome, i considernd limbajul
(1) L
g
(SR, Ax)={ |
*
, eAx }
Similar un sistem de rescriere poate fi privit ca un mijloc analitic sau de recunoatere,
considernd limbajul
(2) L
a
(SR, Ax)={ |
*
, eAx }
Formula (1) reprezint limbajul generat de perechea (SR, Ax), iar formula (2) reprezint
limbajul recunoscut sau acceptat de perechea (SR, Ax).

Observaia 1.1.3 De cele mai multe ori mulimea Ax este format dintr-un singur simbol
(simbolul iniial) sau are o structur foarte simpl.

Observaia 1.1.4 De cele mai multe ori V se mparte n dou submulimi :
V
T
, mulimea terminalelor
V
N
, mulimea neterminalelor sau a variabilelor
i limbajul se definete ca o submulime a lui V
T
*.
Revenind la exemplele anterioare, n exemplul 1.1.6, L se poate defini, n termenii unui sistem
de rescriere ca:
L = L
a
(SR,{}),
unde V={a,b} iar F={ab}.
- 16 -

n exemplul 1.1.4,
L=L
g
(SR,{x}){a,b}*,
unde
SR=({a,b,x}, {x, xaxb}).
Limbajul L din exemplul 1.1.5 este definit acum :
L = L
g
(SR,{x}){a,b}*,
unde
SR=({a,b,x}, {x, xaxb, xbxa, xxx}).
Sistemele de rescriere sunt de asemenea denumite sisteme semi - Thue.



S ne reamintim...
Definiiile pentru: alphabet, simbol, cuvnt, subcuvnt, prefix, suffix,
cuvnt vid, limbaj, regul de rescriere, sistem de rescriere, derivaie,
axiom.
.


Test de evaluare a cunotinelor
I. ntrebri.
Definii noiunile de:
- vocabular,
- cuvnt,
- subcuvnt,
- prefix,
- suffix,
- limbaj,
- sistem de rescriere.
II. Exerciii propuse.
1. Furnizai cteva exemple de limbaje peste alfabetul {0, 1}.
2. Care este lungimea cuvntului limbaj? Este aba subcuvnt al lui? Care
este rezultatul pentru (limbaj)
3
?
3. Fie limbajul
L = {a
2n
b
n
| 0<n<5}
S se scrie mulimea de cuvinte din L.


- 17 -


M1.U1.4 Rezumat
Unitatea de nvare prezint cteva elemente introductive n teoria limbajelor
formale cum sunt: alphabet, simbol, cuvnt, subcuvnt, prefix, suffix, cuvnt vid.
Noiunea de limbaj formal se definete apoi prin proprieti specifice cuvintelor
limbajului, printr-un sistem de generare a cuvintelor sau printr-un sistem de
rescriere. Important pentru fiecare din reprezentri ale unui limbaj este s
demonstrm corectitudinea construciei, pentru care s-au prezentat, n unitatea de
nvare, mai multe demonstraii.
.
- 18 -


Unitatea de nvare M1.U2. Algoritmi normali n sens Markov

Cuprins
M1.U2.1. Introducere.............................................................................................. 18
M1.U2.2. Obiectivele unitii de nvare ................................................................ 18
M1.U2.3. Algoritmi normali n sens Markov .......................................................... 18
M1.U2.4. Exemple de algoritmi normali.....................................................................19
M1.U2.5. Rezumat......................................................................................................25




M1.U2.1. Introducere
Unul din cele mai cunoscute sisteme de rescriere este algoritmul normal n sens
Markov[16]. Caracteristic pentru algoritmul normal Markov este faptul c
mulimea de reguli este ordonat i c regulile se aplica unui cuvnt iniial ntr-o
anumit ordine.
.



M1.U2.2. Obiectivele unitii de nvare
Aceast unitate de nvare i propune ca obiectiv principal familiarizarea
studenilor cu un prim mecanism formal, algoritmul normal n sens Markov.
La sfritul acestei uniti de nvare studenii vor fi capabili s:
neleag i s explice algoritmii normali;
construiasc proprii algoritmi normali;
programeze un algoritm normal.



Durata medie de parcurgere a unitii de nvare este de 3-4 ore.
M1.U2.3 Algoritmi normali n sens Markov

Definiia 1.1.10 Un algoritm normal n sens Markov este un sistem de rescriere SR = (V, F) unde
elementele lui F sunt date ntr-o anumit ordine
1

1
,
2

2
, . . . ,
k

k
i exist o
submulime, posibil vid, F
1
_F coninnd reguli sau producii finale . ; la fiecare pas al
unui proces de rescriere, se aplic prima din regulile lui F care este aplicabil, i n plus se rescrie
cea mai din stnga apariie a subcuvntului care este membrul stng al regulei folosite.
- 19 -

Astfel, algoritmii normali n sens Markov posed o proprietate special i anume :
pentru orice cuvnt P exist cel mult un cuvnt care poate fi generat din P ntr-un singur
pas.
Din punct de vedere formal, dac i numai dac fiecare din urmtoarele condiii
este satisfcut.
(i) Exist un numr i, 1s i sk i cuvintele ' i " astfel nct ='
i
", = '
i
".
(ii) Nici un cuvnt
j
, j < i, nu este subcuvnt al lui
(iii)
i
apare o singur dat ca subcuvnt al lui '
i
.
Algoritmul normal reia aplicarea regulilor n ordine atta timp ct este ndeplinita condiia:
(iv)
i

i
nu este un element al lui F
1
i unul din cuvintele
1
, ...,
k
este subcuvnt al lui .
Dac (iv) nu este ndeplinit, dar sunt ndeplinite (i)-(iii), atunci *. i procesul de
rescriere se ncheie.
Deci *. dac i numai dac exist
0
,
1
, ...,
n
astfel nct

=
0

1

2
...
n+1
.
n
= .

O consecin imediat este lipsa ambiguitii. Rezult c exist cel mult un singur cuvnt
astfel nct * . .
Dac exist un astfel de cuvnt se spune c algoritmul normal se termin cu sau c
traduce n . n caz contrar algoritmul cicleaz cu .

M1.U2.4 Exemple de algoritmi normali n sens Markov


Exemplul 7 Fie algoritmul normal peste { a, b } cu regulile de rescriere
1. a
2. b
3. .aba
El traduce orice cuvnt din {a,b}* n aba
Exemplificare:

aababba
1
ababba
1
babba
1
bbba
1
bbb
2
bb
2
b
2

3
. aba

- 20 -


Exemplul 8 Fie algoritmul cu alfabetul { a, x, y, # } i regulile:
1. yaay
2. xaayx
3. x
4. a##x
5. #a#
6. #
7. ya
El traduce orice cuvnt de forma a
i
# a
j
cu i, j > 0 n a
ij
, deci realizeaz nmulirea
a dou numere.
Fie i = 2 i j = 3. Atunci:
aa#aaa
4
a#xaaa
2
a#ayxaa
2
a#ayayxa
1
a#aayyxa
2
a#aayyayx

1
a#aayayyx
1
a#aaayyyx
) 3 (
a#aaayyy
4
#xaaayyy
2
#ayxaayyy

2
#ayayxayyy
1
#aayyxayyy
2
#aayyayxyyy
1
#aayayyxyyy

1
#aaayyyxyyy
3
#aaayyyyyy
5
#aayyyyyy
5
#ayyyyyy

5
# yyyyyy
6
yyyyyy
7
* aaaaaa.

Exemplul 9 Trecerea de la un numr natural la succesorul su este dat de
algoritmul peste alfabetul E = {a} cu mulimea regulilor format numai dintr-o
singur regul:
1. a aa.
Algoritmul transform un cuvnt de forma a
i
n a
i+1
.
Exemplificare:
aaa .aaaa

Exemplul 10 Algoritmul care calculeaz suma a dou sau mai multe numere
este (E, P) unde E = {a, #} i mulimea regulilor P :
1. #
Acest algoritm transform a
i
#a
j
n a
i+j
, a
i
#a
j
#a
k
n a
i+j+k
, etc.
Exemplificare:
a
3
# a
2
# a
4
a
5
# a
4
a
9

- 21 -


Exemplul 11 Modulul diferenei a dou numere: a
i
#a
j
a
|i-j|

A
N
= (E, P) unde E = {a, #} i P conine regulile:
1. a#a #
2. #
S calculm modulul diferenei dintre 4 i 2.
A
N
: a
4
# a
2

1
a
3
# a
1
a
2
#
2
a
2


Exemplul 12 Restul mpririi unui numr natural la 5 transform:
| | 5 / i
5 i i
a a

iar A
N
= (E, P) unde E = {a} i P :
1. aaaaa
Exemplificare:
A
N
: a
13
a
8
a
3


Exemplul 13 Ctul mpririi unui numr natural la 5 transform:
#
| | 5 / i i
a a
iar algoritmul este definit de :
A
N
= (E, P) unde E = {a, #} i

#
# a #
# a aaaaa #
: P

Exemplificare pentru ctul mpririi numrului natural 13 la 5:
A
N
: # a
13
a # a
8
a
2
# a
3
a
2
# a
2
a
2
# a a
2
# . a
2

- 22 -


Exemplul 14 Ctul i restul mpririi unui numr natural la 5:
#
| | | | 5 / i 5 i 5 / i i
a # a a


A
N
= (E, P) unde E = {a, #} i



# #
# a aaaaa #
: P

Calculm ctul i restul mpririi numrului natural 13 la 5:
A
N
: # a
13
a # a
8
a
2
# a
3
. a
2
# a
3


Exemplul 15 Cel mai mare divizor comun a dou numere naturale:
a
i
#a
j
a
cmmdc(i,j)
1. axxa
2. a#ax#
3. a##y
4. ya
5. xz
6. za
7. #
El traduce a
i
# a
j
n a
k
, unde k este cel mai mare divizor comun al lui i i j.
S calculm cel mai mare divizor comun al lui 6 i 4.
- y # a x - # a x - # xaxa - # x xa - a # xa - a # axa - a # xa a - a # x a -
- #a a - a # z a - a # z a - a # az - a # z - a # x z - a # x z -
- a # zx - a # x - ay # x - y # x - y # a x - # a x - # axa x -
- # x a x - a # a x - a # axa x - a # xa a x - a # x a x - a # a x -
- a # xaxa - a # xa xa - a # xa xa - a # x xa - a # xa -
- a # axa - a # xa a - a # xa a - a # xa a - a # x a - a # a
2 2 2 2 3 2 2 3
2 4 2 3 2 2 2 2 3 2 4 2 3 2 2 2
2 3 2 4 4 2 4 4 2 4 3
2 3 3 3 2 2 2 2 3 2 2 4 2
2 3 2 2 2 2 3 2 4 3 5
3 4 3 3 2 3 2 3 3 4 3 5 4 6
2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2
a - a # - ay # - y # - y # a - # a - # az - # z - # zx - # x - a # xa -
- a # ax - a # a - a # az - a # z - a # zx - a # x - ay # x - y # x -

Similar dac calculm cel mai mare divizor comun al lui 4i 6 avem:
- a # xa a - a # x a - a # a - a # z a - a # z a - a # az - a # z -
- a # x z - a # x z - a # zx - a # x - a # a x - a # ax x - a # a x -
- a # xaxa - a # x xa - a # xa - a # axa - a # xa a - a # x a - a # a
2 3 2 4 2 3 2 2 2 2 3 2 4
2 3 2 2 2 2 3 2 4 3 3 3 2 4 2 2
4 4 2 5 3 5 2 5 2 5 3 6 4

- 23 -

- # zx - # x - a # xa - a # ax - a # a - a # az - a # z - a # zx - a # x -
- ay # x - y # x - y # a x - # a x - # xaxa - # x xa - a # xa - a # axa -
2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 3 2
2 2 2 2 2
a - a # - ay # - y # - y # a - # a - # az - # z -

Exemplul 16 mprirea a dou numere naturale:
| | | | j / i j i j / i j i
a # a a # a


A
N
= (E, P) unde E = {a, #, x, y, c, r, s, t} i P:

r a
y
x
s
s sa
s sx
s # c x # c
x # # a
# acy x # a
t
t ta
rt tx
t # c a # c
axa xaa
ca ac
: P
2

Exemplificri
5 4 2 3
3 2 4 5 4 3 2 2
3 3 2 2 3 4
4 2 2 3 2 3 2 2 4 2 5 2 5 3
r # - a r # - a r -#
- a r # - ra # - a # - xa a # - xaxa a # - xaxaxa a # - xaxa axa # -
- xaxa xa -# xaxa a # a - xa xa a # a - xa axa # a - xa xa # a -
- xa a # a - xa a # a - xa a # a - axa # a - xa # a - a # a

- 24 -

- xaxaxaxa # ca - axaxaxa # ca - xaxa xa # ca - xaxa a # ca -
- xa xa # ca - xa a # ca - xa # ca - a # ca - a # y ca - axaxaxa # y ca
- axaxaxa # cy a - xaxaxaxa # a - axaxaxa # a - xaxa xa # a -
- xaxa a # a - xa xa # a - xa a # a - xa # a - a # a
3 4 2 4 2 5
3 5 3 6 4 6 4 7 4 7 7
7 7 8 2 8
2 9 3 9 3 10 4 10 4 11

- xa # a c - a # a c - a # y a c - axaxaxa # y a c - axaxaxa # cy ca -
4 2 2 4 3 2 4 3 2 3 2 3

3 2 2
3 2 2 2 2 2 2 2 2
2 2 2 2 2 3 2 3 2 2
r # c - t r # c -
- ta r # c - txa r # c - taxa r # c - rtxaxa # c - rtaxaxa # c - txaxaxa # c -
- axaxaxa # c - xaxa xa # c - xaxa a # a c - xa xa # a c - xa a # a c -
3

# c s # c
saxaxaxa # c xaxaxaxa # c axaxaxa # a c xaxa xa # a c
xaxa a # a c xa xa # a c xa a # a c xa # a c a # a c
a # y a c axaxaxa # y a c axaxaxa # cy ca xaxaxaxa # ca
axaxaxa # ca xaxa xa # ca xaxa a # ca xa xa # ca
xa a # ca xa # ca a # ca a # y ca axaxaxa # y ca
axaxaxa # cy a xaxaxaxa # a axaxaxa # a xaxa xa # a
xaxa a # a xa xa # a xa a # a xa # a a # a
3 3
3 2 2 2 2
2 2 2 3 2 2 3 3 2 4 3 2 4 4 2
4 4 2 4 2 4 4
5 2 5 2 6 3 6
3 7 4 7 4 8 4 8 8
8 8 9 2 9
2 10 3 10 3 11 4 11 4 12











Definiia 1.1.11 Un sistem normal Post este un sistem de rescriere (V, F) unde toate elementele
(, ) ale lui F sunt notate prin xx, x fiind o variabil operaional. (Se presupune c x e V i
nici nici nu au x ca subcuvnt). Relaia se definete astfel:
1

1
dac i numai dac exist
cuvintele , u, peste V\{x} astfel nct:
1
=u,
1
=u, i xxeF.

Se poate i aici specifica o mulime de axiome i se poate defini limbajul generat i cel
recunoscut la fel ca mai sus.




1 S se construiasc un algoritm normal n sens Markov care s realizeze nlocuirea
literelor a i b dintr-un cuvnt de intrare, prin cuvintele alpha, respectiv beta adic
algoritmul codificrii.

2 S se construiasc un algoritm normal n sens Markov care s calculeze puteri-
le lui 2, adic care s transforme cuvntul a
n
# n a
2

. S se exemplifice algoritmul
- 25 -

pentru urmtoarele valori ale lui n:
a. n = 2;
b. n = 3;
c. n = 4.






Test de evaluare a cunotinelor
I. ntrebri.
2. Cum se definete un algoritm normal Markov?.
3. Cnd se oprete un algoritm nornal n sens Markov?

II. Exerciii propuse.
1. S se construiasc un algoritm normal n sens Markov care s calculeze
lungimea unui cuvnt adic care s transforme un cuvnt de w n 0
|w|.
,
unde w din {a,b,c}*).




M2.U2.5 Rezumat
Unitatea de nvare prezint unul din primele sisteme de rescriere,
algoritmul normal n sens Markov, n care regulile de rescriere sunt ordonate
i se aplic la rndul lor ntr-o anumit ordine. Prezentarea este nsoit de
foarte multe exemple pentru nelegerea complexitii unei astfel de
construcii, ct i pentru utilizarea acestor exemple n constrcii ulterioare.

S ne reamintim...

Algoritmul normal n sens Markov se caracterizeaz prin faptul c mulimea de
reguli este ordonat i c regulile se aplica unui cuvnt iniial ntr-o anumit
ordine pn cnd nici o regul nu mai poate fi aplicat sau pn cind s-a aplicat o
regul final.

- 26 -


Unitatea de nvare M1.U3. Gramatici generative i analitice
Cuprins
M1.U3.1. Introducere............................................................................................ 26
M1.U3.2. Obiectivele unitii de nvare .............................................................. 26
M1.U3.3. Gramatici generative i analitice ........................................................... 26
M1.U3.4. Ierarhia lui Chomsky............................................................................. 30
M1.U3.5. Operaii cu limbaje................................................................................ 35
M1.U3.6. Rezumat.....................................................................................................38



M1.U3.1. Introducere
Noiunea de gramatic formal a fost introdus de lingvistul Noam Chomsky, si
reprezint mecanismul generativ cel mai folosit pe parcursul acestui material.
Astfel se prezint att gramatici generative ct i analitice i se demonstreaz c
ele sunt ntr-o relaie de dualitate, fapt care permite tratarea numai a uneia dintre
ele.

Un alt aspect important care va fi tratat este definirea unor operaii cu limbaje ca
operaii clasice cu mulimi i chiar a unor operatii specifice limbajelor.
.



M1.U3.2. Obiectivele unitii de nvare
Aceast unitate de nvare i propune ca obiectiv principal familiarizarea
studenilor cu un al doilea mecanism formal, gramatica generativa n sens Chomsy.
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice gramaticile generative;
- construiasc propriile gramatici care s genereze un anumit limbaj;
- programeze un generarea cuvintelor ntr-o gramatic.



Durata medie de parcurgere a unitii de nvare este de 3 ore.
M1.U3.3 Gramatici generative i analitice
Vom defini un tip de mecanism care joac un rol important n teoria limbajelor formale.

Definiia 1.2.1 O gramatic generativ este un quadruplu ordonat
G=(V
N
, V
T
,S,P) ,
- 27 -

unde V
N
i V
T
sunt alfabete finite disjuncte SeV
N
i P este o mulime finit de perechi ordonate
(u,v), astfel nct v este un cuvnt din V*, unde V=V
N
V
T
i u este un cuvnt din V* care conine
cel puin o liter din V
N
.
Elementele lui V
N
formeaz mulimea neterminalelor sau variabilelor, iar cele ale lui V
T

formeaz mulimea terminalelor; S se numete simbolul iniial, iar P sunt reguli de rescriere,
producii. De fapt o gramatic este un sistem de rescriere (V, P) numit sistem de rescriere indus
de G.
Noiunile de derivare direct sau derivare corespund celor introduse n cadrul unui sistem
de rescriere.
Limbajul L(G) generat de G este definit de:
L(G)={ w| weV *, S
*
w }
Vom introduce o noiune dual celei de gramatic generativ i anume cea de gramatic
analitic.

Definiia 1.2.2 O gramatic analitic este un quadruplu ordonat
G=(V
N
, V
T
, S, P), unde V
N
, V
T
, S sunt exact ca n definiia 1.3.1, dar P este o mulime finit de
reguli (u, v) astfel nct u este un cuvnt din V* iar veV* conine cel puin o liter din V
N
.
Limbajul L(G) recunoscut de gramatica G, sau acceptat este definit de :
L(G)={ w| weV
T
*, w
*
S },
deci limbajul cuvintelor formate numai din terminale care se reduc la simbolul iniial prin
aplicarea regulilor din P.

Definiia 1.2.3 Dou gramatici, G i G
1
, se numesc gramatici echivalente atunci i numai atunci
cnd L(G)=L(G
1
).


Exemplul 1 Limbajul L = { a
i
b
i
| ieN } este generat de gramatica generativ
G = ({S}, {a,b}, S, {S, SaSb})
i recunoscut de gramatica analitic
G
1
= ({S}, {a,b}, S, {S, aSbS})
Deci L(G) = L(G
1
).


Exemplul 2 Limbajul L = { w | we{a,b}*, N
a
(w)=N
b
(w) } este generat de
gramatica generativ
G = ({S}, {a,b}, S, {S, Sasb, SbSa, SSS})
i recunoscut de gramatica analitic
G
1
= ({S}, {a,b}, S, {S, aSbS, bSaS, SSS})
Vom arta n cele ce urmeaz c orice gramatic analitic admite o
gramatic generativ, dual a ei, echivalent.

Teorema 1.2.1
Fie G = (V
N
, V
T
, S, P) o gramatic generativ (sau analitic). Fie P
1
o mulime de reguli
de forma u v dac v u este n P. Atunci L(G
1
)=L(G) unde G
1
=(V
N
, V
T
, S, P
1
) este o
gramatic analitic (generativ).

- 28 -

Demonstraie:
Dac G este o gramatic generativ vom demonstra c pentru orice cuvnt o din
(V
N
V
t
)* avem
(1.2.1) S
*
G
o o
*
1
G
S
Vom arta nti prin inducie c dac pentru un anume k
u
0
u
1
... u
k

este o derivaie n G, atunci
u
k
u
k-1
.. u
0

este o derivaie n G
1
.
Evident, pentru k=1 afirmaia este valabil conform definiiei regulilor lui P
1
. Procednd
inductiv, presupunem c afirmaia este adevrat pentru k pai i fie o derivaie n k+1 pai de
forma:
u
0
u
1
... u
k
u
k+1
n G.
Conform ipotezei induciei
u
k
G

u
k+1
u
k+1
1
G

u
k
i u
0
*
G
u
k
u
k
*
1
G
u
0

Atunci din cele dou rezult c
u
0
*
G
u
k+1
u
k+1
*
1
G
u
0
Dac acum u
0
=S vom obine afirmaia (1.2.1) dorit, deci L(G)=L(G
1
).


Observaia 1.2.1 Pentru o gramatic generativ sau analitic G, gramatica G
1
definit mai sus se
va numi duala sa.

Vom da n continuare cteva exemple de gramatici conform cu [21].


Exemplul 3 Fie G = ({S, B, C}, {a, b, c}, S, P}), unde mulimea P este format
din:
SaSBC
SaBC
CBBC
bBbb
bCbc
cCCc
aBab
S ncercm o derivaie n gramatica G:

S aSBC aaSBCBC aaaSBCBCBC aaaaBCBCBCBC
aaaaBBCCBCBC * aaaaBBBBCCCC aaaabBBBCCCC
aaaabbBBCCC aaaabbbBCCCC aaaabbbbCCCC
aaaabbbbcCCC aaaabbbbccCC aaaabbbbcccC aaaabbbbcccc
- 29 -


Se poate demonstra c L(G)={a
n
b
n
c
n
| n>1}



Exemplul 4[21] Fie limbajul L={ ww | we{0,1}* }. Gramatica G definit de:
G=({x
0,
x
1,
x
2,
x
3,
y
0,
y
1
}, {0,1}, x
0
, P}), unde P este:

P : x
0
x
1
x
2
x
3

x
1
x
2

x
3


x
1
x
2
ix
1
y
i

y
i
jjy
i

y
i
x
3
x
2
ix
3

ix
2
x
2
i
pentru fiecare i i j din {0,1}
Aceast gramatic genereaz limbajul L. S ncercm o derivaie n aceast
gramatic:
x
0
x
1
x
2
x
3
0x
1
y
0
x
3
0x
1
x
2
0x
3
01x
1
y
1
0x
3
01x
1
0y
1
x
3
01x
1
0x
2
1x
3

01x
1
x
2
01x
3
0101x
3
0101



Exemplul 5 [21] Pentru limbajul L={a
n
| n>1} vom avea urmtoarele reguli
gramaticale care se bazeaz pe identitatea n
2
=1+3+...+(2n-1), unde toate
simbolurile cu excepia lui a sunt simboluri neterminale:
P : x
0
a
x
0
axx
2
z
x
2
zaa
xaaa
yaaa
x
2
zy
1
yxz
xx
1
x
1
yx
yx
1
y
1
yx
xy
1
x
1
y
yy
1
y
1
y
ax
1
axxyx
2

x
2
yxy
2

y
2
yyy
2
y
2
xyx
2
S ncercm i aici cteva derivaii:
x
0
axx
2
z axaa aaaa
x
0
axx
2
z

axy
1
yxz ax
1
yyxz axxyx
2
yyxz axxyxy
2
yxz
axxyxyy
2
xz axxyxyyx
2
z axxyxyyaa axxyxyaaa
axxyxaaaa axxyaaaaa axxaaaaaa axaaaaaaa
aaaaaaaaa = a
9
= a
3
.


- 30 -


Exemplul 6 [21] ] Pentru generarea limbajului L = { a
2

| n>0 }vom avea


urmtoarele reguli gramaticale
x
0
yxy
yxyz
zxxxz
zyxxy
xa
y
Vom construi o derivaie n aceasta gramatic pentru n = 2, pornind de la
simbolul iniial x
0

x
0
yxy yzy yxxy yzxy yxxzy yxxxxy xxxy axxxy
aaxxy aaaxy aaaay aaaa



Exemplul 7[21 Fie G=({S,B}, {0,1}, S, P) unde
P:

1 B
S 1 B
0B S

Limbajul generat de G este L(G) = {(01)
n
| n>0}. Exemplificm derivaia unui
cuvnt din limbaj pentru n = 3.
S

0B 01S 010B 0101S 01010B 010101 = (01)
3



Exemplul 8 [21] Fie gramatica G=({S,A,B},{a,b},S,P), unde mulimea regulilor P
este P={SaSb,Sab}. Este uor de demonstrat c limbajul generat de
gramatica G este
L(G) = {a
n
b
n
| n>0}.
Pentru n = 4 obinem urmtoarea derivaie:
S aSb aaSbb aaaSbbb aaaabbbb = a
4
b
4



M1.U3.4 Ierarhia lui Chomsky

Gramaticile generative pot fi clasificate prin impunerea de restricii asupra formei
regulilor.

Definiia 1.2.4 (Ierarhia lui Chomsky) Pentru ie{0,1,2,3}, o gramatic generativ, G=(V
N
, V
T
,
S, P) este de tip i dac i numai dac regulile de rescriere din P ndeplinesc restriciile de tip (i):
(0) Nici o restrictie.
(1) Reguli dependente de context (DC): Fiecare regul din P este de forma u
1
Au
2
u
1
wu
2
, unde
u
1
, u
2
eV*, AeV
N
i w e {V
N
V
T
}
+
cu o singur excepie posibil S, care poate s
apar dac S nu apare n dreapta nici unei reguli din P.
- 31 -

(2) Reguli independente de context (IDC): Fiecare regul din P este de forma
A w cu A e V
N
i w e {V
N
V
T
}
*
.
(3) Reguli regulate (R): Fiecare regul este de una din urmtoarele dou forme A aB sau
A a , unde A, BeV
N
i aeV
T
.
Gramaticile de tip 1 se numesc dependente de context sau contextuale, gramaticile de tip
2 se numesc independente de context, iar gramaticile de tip 3 se mai numesc i regulate sau cu
numr finit de stri.
Evident c orice gramatic de tip 3 este i de tip 2, orice gramatic de tip 2 este i de tip 1, i
orice gramatic de tip 1 este de tip 0.
Dac notm cu L
i
familia limbajelor de tip (i) avem, evident, urmtoarea incluziune ntre
familiile de limbaje:
L
3
_ L
2
_ L
1
_ L
0
Se va demonstra ulterior c incluziunea este proprie, deci c prin restriciile (0)-(3) se obine
ntr-adevr o ierarhizare a familiilor de limbaje.

Definiia 1.5 O gramatic este cu lungime cresctoare sau monoton dac i numai dac regula
uv satisface condiia |u|s |v| cu o singur excepie posibil S, care, dac apare n mulimea
regulilor, atunci S nu apare n partea dreapt a nici unei reguli.

Observaia 1.2.2 Gramaticile dependente de context sunt gramatici cu lungime cresctoare. Se
poate demonstra c gramaticile cu lungime cresctoare i gramaticile dependente de context sunt
echivalente.

Teorema 1.2.2
Pentru fiecare gramatic monoton, G, exist o gramatic dependent de context, G,
echivalent cu G, adic L(G) = L(G).

Demonstraie.
Fie gramatica monoton G=(V
N
, V
T
, S, P), n care regulile din P sunt monotone, adic de
forma uv unde |u|s |v|. Presupunem c regula uv nu este dependent de context i c este de
forma:

A
1
A
2
A
m
B
1
B
2
B
n

Pentru c gramatica este monoton avem m s n iar A
i
i B
i
pot fi simboluri terminale sau
variabile. Presupunem c toate simbolurile A
i
sunt variabile (n caz contrar nlocuim fiecare
simbol terminal A
i
printr-un nou symbol neterminal A
i
i adugm regula A
i
A
i
).
Considerm noi variabile C
1
,C
2
, , C
m
. i nlocuim regula iniial uv prin mulimea de reguli
dependente de context P(u,v):

A
1
A
2
A
m
C
1
A
2
A
m


C
1
A
2
A
m
C
1
C
2
A
m


C
1
C
2
C
m-1
A
m
C
1
C
2
C
m
B
m+1
B
m+2
B
n

C
1
C
2
C
m-1
C
m
B
m+1
B
n
C
1
C
2
C
m-1
B
m
B
m+1
B
n

C
1
C
2
C
m-1
B
m
B
m+1
B
n
C
1
C
2
C
m-2
B
m-1
B
m
B
n
- 32 -

..
C
1
B
2
B
n
B
1
B
2
B
n


Fie acum gramatica G = (V
N
{C
1
, C
2
, , C
m
}, V
T
, S, P\ {uv} P(u,v) ).
Este uor de demonstrat acum c L(G) = L(G).
Procednd de aceeai maniera cu fiecare regula monoton care nu este dependent de context se
obine n final gramatica echivalent G.



Exemplul 9 S aplicm algoritmul din teorema 1.2.2 pentru gramatica din
exemplul 1.2.3, G = ({S, B, C}, {a, b, c}, S, P}), cu P :
SaSBC
SaBC
CBBC
bBbb
bCbc
cCCc
aBab
Singura regul monoton care nu este dependent de context este regula CBBC
nlocuim aceast regul cu urmtoarea mulime de reguli dependente de context:

CB C
1
B
C
1
B C
1
C
2

C
1
C
2
C
1
C
C
1
C BC
Obinem n final gramatica dependent de context echivalent cu G, G= ({S,B,C,
C
1
, C
2
}, {a,b,c}, S, P), unde P:
S aSBC
S aBC
bB bb
bC bc
cC Cc
aB ab
CB C
1
B
C
1
B C
1
C
2

C
1
C
2
C
1
C
C
1
C BC.

Observaia 1.2.3 Gramaticile din exemplele 3, 4, i 6 sunt gramatici monotone deci, conform
teoremei 1.2.2, limbajele generate sunt dependente de context. Gramatica din exemplul 5 este o
gramatic de tip 0 (exist reguli care nu sunt monotone, ca de exemplu regula x
1
x
2
),
gramatica din exemplul 8 este independent de context iar cea din exemplul 7 este regulat sau
de tip 3.

- 33 -

Pentru gramaticile analitice definiiile rmn aceleai ca i pentru gramaticile generative,
schimbnd ns membrul drept cu membrul stng n regulile din P. Noiunea de gramatic
generativ cu lungime cresctoare i are corespondentul dual n cea de gramatic analitic cu
lungime descresctoare.



Exemplul 10 Din punct de vedere lingvistic, gramaticile sunt folosite pentru
analiza frazelor. S considerm urmtoarea gramatic analitic IDC unde V
N
= {
F, A, V, P
n
, S, S
n
}, (variabile care reprezint, respective: fraza, articol, verb,
predicat nominal, substantiv, subiect), V
T
= {o, fata, este, laboranta}, unde
fiecare din aceste cuvinte ale limbii romne reprezint un simbol al alfabetului
terminalelor. Regulile gramaticii sunt:

{oA, fatS, laborantS, esteV, ASS
n
, VSP
n
, S
n
P
n
F}
Frazele recunoscute sunt :
- o fata este laborant
- o laborant este fat
- o fat este fat
- o laborant este laborant
Fiecare din fraze este corect gramatical dar unele s-ar putea s nu aib nici un
neles.
n cele ce urmeaz vom considera numai gramatici generative, aspectul analitic fiind tratat n
capitolele II i III prin intermediul automatelor.


Exemplul 11 Se numete palindrom un cuvnt, care este identic cnd este citit
de la stnga la dreapta sau de la dreapta la stnga. Astfel n limba romna exist
palindroamele: capac, coc, cuc, lupul, ele, etc. Notm cu y
~
reflectatul sau
oglinditul unui cuvnt y, adic cuvntul ale crui simboluri sunt n ordine invers
fa de y. Limbajul { y y
~
| ye V
T
* } este n mulimea palindroamelor cu V
T
={a
1
,
..., a
n
} i poate fi generat de gramatica:

G=({S}, V
T
, S, {S, Sa
1
Sa
1
, Sa
2
Sa
2
, ..., Sa
n
Sa
n
}).

n exemplul anterior exist regula S iar S apare i n dreapta altor reguli. Vom arta c
exist ca pentru orice astefel de gramatic existo gramatic echivalent n care S nu apare n
dreapta nici unei reguli.

Teorema 1.2.3
Dac G = (V
N
, V
T
, S, P) este o gramatic DC, atunci exist alt gramatic D.C., G
1
, care
genereaz acelai limbaj cu G, pentru care simbolul initial (de start) nu apare n dreapta
nici unei reguli ale lui G
1
. Dac G este I.D.C. sau R atunci i G
1
este I,D,C,, respectiv R.
Demonstraie :
Fie S
1
eV
N
V
T
. Construim gramatica G
1
={V
N
{S
1
}, V
T
, S
1
, P
1
}, unde P
1
conine toate
regulile din P i n plus toate regulile de forma S
1
o unde
So eP :
- 34 -

P
1
=P{S
1
o So eP }
Observm c S
1
eV
N
V
T
deci nu apare n dreapta nici unei producii din G i nici n
dreapta vreunei producii noi adugate n P.
S demonstrm acum c L(G)=L(G
1
).
a) Presupunem c weL(G), deci exist o derivaie n gramatica G de forma S
*
w. Atunci prima
regul folosit este de forma So deci derivaia va fi :
S
G
o
*
G
w
Prin definiia lui P
1
avem : S
1
o eP
1
i deci:
S
1
1
G
o
Pentru c toate regulile lui P sunt n P
1
rezult c orice derivaie din G este i o derivaie n
gramatica G
1
deci
o
*
1
G


w
Combinnd cele dou derivaii se obine:
S
1
1
G
o
*
1
G


w ,
Deci w e L(G
1
), de unde rezult c L(G)_L(G
1
).
b) Presupunem acum c weL(G
1
), deci exist derivaia S
1
*
w n gramatica G
1
. Prima regul
folosit este de forma S
1
o, pentru un anume o. Rezult din construcia gramaticii G
1
c So
este o regul din P i deci So, n gramatica G. Acum o
*
w este o derivaie n gramatica G
1
dar nu poate avea simbolul S
1
, cci folosete numai regulile din P
1
care sunt i n P. Rezult c
o
*
w este o derivaie n gramatica G i atunci:
S
G
o
*
G
w,
adic weL(G).
Evident c regulile adugate la P pentru a obine P
1
sunt de acelai tip cu regulile lui P
deci dac G este DC (IDC sau R) atunci i G
1
este DC (IDC sau R).


Teorema 1.2.4
Dac L este un limbaj DC, IDC sau R, atunci i L{} i L\{} sunt limbaje DC, IDC
respectiv R.

Demonstraie : Dac L este un limbaj DC, IDC sau R, din teorema 1.2.3 rezult c exist o
gramatic G, care poate fi DC, IDC sau R, n care simbolul iniial, S, nu apare n partea dreapt
a nici unei reguli de rescriere. n plus singura regul n care membrul drept poate fi este de
forma S.
Atunci pentru limbajul L\{} se scoate regula S, iar pentru limbajul L{} se adug tot
regula S. Toate aceste modificri nu au nici o influen asupra restului cuvintelor generate de
G pentru c simbolul iniial S nu mai apare n partea dreapt a nici unei reguli de rescriere.

- 35 -


M1.U3.5 Operaii cu limbaje

Pentru c limbajele sunt mulimi, rezult c se pot folosi toate operaiile cu mulimi cunoscute.

Reuniunea a dou limbaje
L
1
L
2
={ w | weL
1
sau weL
2
}

Intersecie a dou limbaje
L
1
L
2
={ w | weL
1
i weL
2
}

Diferena a dou limbaje
L
1
-L
2
={ w | weL
1
i weL
2
}

Complementara unui limbaj relativ la un alphabet V
C
V
(L)=V*-L

n afar de aceste operaii se pot introduce o serie de operaii specifice limbajelor :

Concatenarea a dou limbaje
L
1
L
2
={uv | ueL
1
, veL
2

Limbajele i {} reprezint elementul zero i respectiv elementul unitate relativ la
concatenarea limbajelor:
L = L=
L{}={}L=L
Concatenarea se mai numete i produs.

Puterea unui limbaj se definete recursiv prin:
L
0
= {}
L
i+1
= L
i
L .
Produsul Kleene (sau nchiderea Kleene) este definit prin reuniunea tuturor puterilor lui L:

=
=
0 i
i *
L L
nchiderea Kleene - liber este

=
+
=
1 i
i
L L
Ctul stng a dou limbaje este limbajul format din sufixele cuvintelor din L
1
care au prefixul
n L
2
:
L
2
\L
1
={v |uveL
1
, ueL
2
}
Derivata stng a unui limbaj relativ la cuvntul v este
s
v
c L={u |vueL}
adic ctul stng al limbajelor
{v}\L
Ctul drept a dou limbaje este limbajul format din prefixele cuvntelor din L
1
cu sufixul n L:
- 36 -

L
1
/L
2
= { v| vueL
1
pentru ueL
2
}
Derivata dreapt a unui limbaj relativ la cuvntul u este
c
u
d
L= {v |vueL}

adic ctul drept al limbajelor:
L/{u}

Reflectatul sau oglinditul unui limbaj
L
~
= { u
~
| ueL }

Substituia unui limbaj se definete astfel:
aeV definim o (a) un limbaj peste V
a
iar apoi se aplic proprietile:
o()=,
o(uv)=o(u)o(v) u, ve V*
deci o este o aplicaie o : V* P(V
*
)
unde V=

V a
a
V
e
.
Substituia unui limbaj L este atunci:
o(L)={ v | veo(u) pentru ueL }

Dac o(a) este un singur cuvnt u
a
, atunci substituia se numete homomorfism h:V*V
*
. Un
homomorfism se numete -liber dac nici unul din cuvintele o(a)=u
a
nu este .

Observaia 1.3.1 Pentru c V* este un semigrup liber, h este homomorfism de semigrupuri.

Una din problemele pe care le vom studia n capitolele urmtoare este problema nchiderii
familiilor de limbaje de tip i, L
i
(i = 0, 1, 2, 3) relative la operaiile introduse.


1. Se consider gramatica monoton
G = ( {A,B}, {a,b}, A, P), unde P:
A Ba B BA
Aa Bb B b
B bB A a
S se construiasc o gramatic echivalent independent de context.

2. Considerm gramatica G=({x
0
,x,y,z},{a }, x
0
, P), unde P este mulimea
produciilor:
(1) x
0
yxy
(2) xyyz
(3) zxxxz
- 37 -

(4) zyxxy
(5) xa
(6) y
(a) S se dea o derivare n G pentru un cuvnt din L(G).
(b) S se verifice care dintre cuvintele urmtoare aparin limbajului:
{aaaaa,aaaa,a}.
3. S se construiasc gramatic pentru generarea limbajului:
L = {a
n
b
n
| n>0}


S ne reamintim...

O gramatic generativ este un quadruplu ordonat
G=(V
N
, V
T
,S,P) ,
unde V
N
i V
T
sunt alfabete finite disjuncte SeV
N
i P este o mulime finit de
perechi ordonate (u,v), astfel nct v este un cuvnt din V*, unde V=V
N
V
T
i u
este un cuvnt din V* care conine cel puin o liter din V
N
.

Limbajul L(G) generat de G este definit de:
L(G)={ w| weV *, S
*
w }
Gramaticile i, respectiv, limbajele generate de ele, sunt de 4 tipuri: de tip 0
(fr restricii), de tip 1 (dependente de context), de tip 2 (independente de
context) i de tip 3 (regulate).

Operaiile cu limbaje sunt: reuniunea, intersecia complementara, concatenarea,
puterea, produsul Klenee, oglindirea, substituia, homomorfismul,
homomorfismul invers, derivata sng i dreapt





Teste de evaluare/autoevaluare
I. ntrebri.
1. Ce este o gramatic generativ?
2. Cte tipuri de gramatici generative cunoatei i care sunt acestea?
II. Exerciii propuse.
1. Se d gramatica G=({S,A},{.,v,, p,q,r, },S, P), unde P =
{S.SS, SvSS, SS, SA, AA, Ap, Aq, Ar }.
- 38 -

S se verifice dac .v.vpqr.pqr e L(G).
2. S se construiasc o gramatic G care generaz urmtorul limbaj:
L = {a
2n
b
n
| n>0}


M1.U3.6. Rezumat. Aceast unitate de nvare prezint noiunea de gramatic
formal, care a fost introdus de lingvistul Noam Chomsky. Gramatica generativ
reprezint mecanismul generativ cel mai folosit pe parcursul acestul material. S-au
prezentat att gramatici generative ct i analitice i s-a demonstrat c ele sunt ntr-o
relaie de dualitate, fapt care permite tratarea numai a uneia dintre ele. Un alt aspect
important tratat a fost definirea unor operaii cu limbaje ca operaii clasice cu mulimi
i chiar a unor operaii specifice limbajelor..


- 39 -

Modulul 2. Automate finite i limbaje de tip 3
Cuprins
Introducere ................................................................................................................ 39
Competene.....................................................................................................................39
U1. Automate finite i gramatici de tip 3.......................................................................40
U2. Minimizarea automatului finit.................................................................................53
U3. Gramatici regulate i expresii regulate.....................................................................61
U4. Expresii regulate i automate finite..........................................................................71



Introducere
Acest modul se refer la limbajele regulate privite ca limbaje generate de gramatici
de tip 3, recunoscute de automatele finite sau reprezentate de expresii regulate. Se
demonstreaz c cele trei moduri de reprezentare sunt echivalente.
Se prezint doi algoritmi de minimizare a automatului finit, pe baza crora se poate
construe un analizor lexical optim.


Competene
La sfritul acestui modul studenii vor fi capabili s:
- Construiasc automate finite deterministe i nedeterministe;
- Construiasc gramatici generative de tip3 pentru diferite limbaje;
- Construiasc expresii regulate pentru diferite limbaje de tip 3;
- S construiasca un mod de reprezentare(gramatica, automat finit, expresie
regult) pornind de la alt mod de reprezentare echivalent;
- Implementeze algoritmii prezentai ntr-un limbaj de programare general


- 40 -


Unitatea de nvare M2.U1. Automate finite i gramatici de tip 3

Cuprins
M2.U1.1. Introducere............................................................................................ 40
M2.U1.2. Obiectivele unitii de nvare .............................................................. 40
M2.U1.3. Automate finite ..................................................................................... 40
M2.U1.4. Legtura dintre gramaticile regulate i automatele finite ........................ 45
M2.U1.5. Rezumat.....................................................................................................52




M2.U1.1. Introducere

Din punct de vedere istoric, automatele finite au fost introduse pentru a modela
reelele neuronale dar au o mulime de aplicaii i n alte domenii cum ar fi:
analiza lexical (faza iniial a unui compilator), descrierea editoarelor de texte i a
altor programe de procesare a textelor, modelarea circuitelor logice i altele.

Automatul finit este un bun model pentru un calculator cu o cantitate extrem de
limitat de memorie. Vom vede c, dei are o memorie foarte mic, un astfel de
calculator poate s fac o serie de lucruri utile cum ar fi cele enumerate mai sus.



M2.U1.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- Construiasc automate finite care s recunoasca un limbaj anume;
- Ineleag i s explice algoritmii de trecere de la un automat finit la o
gramatic i invers, de la o gramatic la un automat finit;
- Ineleag i s explice algoritmii de trecere de la un automat finit
nedeterminist la unul determinist echivalent
- Implementeze algoritmii prezentai ntr-un limbaj de programare general.



Durata medie de parcurgere a unitii de nvare este de 3 ore.
M2.U2.3 Automate finite

n modulul 1 am definit noiunea de limbaj regulat sau limbaj de tip 3, ca fiind limbajul generat
de o gramatic de tip 3, adic de o gramatic G=(V
N
,V
T
,S,P), unde regulile din P sunt de forma
:

- 41 -

AaB
sau
Aa
Aici A i B, sunt simboluri neterminale iar a este un simbol terminal.

Vom defini n cele ce urmeaz un sistem analitic pentru limbajele regulate i anume automatele
finite.

Definiia 2.1.1 Un automat finit determinist, notat M=(Q, , , q
0
, F), este format din:
Q - o mulime finit nevid (mulimea strilor);
- un alfabet finit de intrare;
o - o aplicaie numit funcie de tranziie, care ataeaz fiecrei combinaii <stare,
simbol de intrare> o nou stare
Q Q : ;
Q q
0
e starea iniial;
Q F_ mulimea strilor finale.

Din punct de vedere practic un automat finit este format dintr-un control finit, care se poate
afla ntr-una din strile mulimii Q, dintr-o band de intrare mprit n celule n care sunt
scrise un numr finit de simboluri din , i un cap de citire care se mic pe banda de intrare
secvenial de la stnga la dreapta (de fapt banda de intrare se mic n dreptul capului de citire
de la dreapta la stnga ).

Iniial controlul finit se afl n starea q
0
iar capul de citire analizeaz cel mai din stnga
simbol scris pe banda de intrare. Interpretarea lui p a) (q, = pentru q,pQ i a, este aceea
c automatul M, aflat n starea q i analiznd simbolul a pe banda de intrare, i schimb starea
n p i i mut capul de citire cu o celul la dreapta.
S-ar putea ca funcia de tranziie s nu fie peste tot definit, adic s existe pe P i
aeE astfel nct (p,a)=u. n cazul n care automatul se afl n aceast stare p i capul de citire
vizeaz simbolul a pe banda de intrare se spune c automatul se blocheaz fiindca nu este
definit micarea urmtoare.
Aplicaia se poate extinde la
*
Q , prin

e e =
=
, a , x a) x), (q,

( xa) (q,

q ) (q,

*

a
0
a
1
a
i
a
n





Figura 2.1.1

CONTROL
FINIT
- 42 -

unde p x) (q,

= nseamn c M, pornind s analizeze secvena x din starea q, ajunge n starea


p n momentul n care capul de citire depete secvena x.
Observaia 2.1.1 n continuare vom folosi notaia i pentru o

.
Definiia 2.1.2 Un cuvnt x este acceptat sau recunoscut de un automat finit M, dac,
p x) , (q
0
= pentru F pe .
Limbajul acceptat de automatul M se noteaz
{ } F x) , (q x T(M)
0
e = .
Un automat finit determinist se poate defini n termenii unui sistem de rescriere SR=(V,
P), unde :
C = E = Q unde , Q V
Q q
0
e starea iniial
Q F_ mulimea strilor finale
i P: E e e
k j i j k i
a i Q q , q unde , q a q
i n plus pentru fiecare q
i
a
k
exist exact o regul n P.
Atunci
)
`

e E e =
-
-
F p p, x q x T(M)
0
.
Definiia 2.1.3 Numim configuraie instantanee perechea (q,x), format din starea Q qe n
care se afl automatul finit i irul de caractere
*
e x rmas necitit pe banda de intrare, unde
capul de citire vizeaz cel mai din stnga simbol al lui x.
Dac automatul finit folosete tranziia p a) (q, = , atunci vom nota modificarea
configuraiei astfel: ) a (q, o ) , p ( o .
Specificarea unui automat finit M se poate face prin definirea funciei (ntr-un tabel) sau
printr-o diagram de stare sau de tranziie. Diagrama de tranziie este un graf orientat n care
nodurile sunt strile automatului iar arcele (q,p) sunt etichetate cu a dac (q,a)=p este o
tranziie din automatul M.


Exemplul 1
Fie, de exemplu, automatul finit
} {q F , } q , q , q , {q Q , } 1 , 0 {
F) , q , , (Q, M
0 3 2 1 0
0
= = = E
=





0 1
Q
q
0
q
1
q
2
q
1
q
0
q
3
q
2
q
3
q
0
q
3
q
2
q
1
- 43 -

Fie irul de intrare 10110010; atunci putem urmri execuia automatului astfel:
, F q ,0) (q ,10) (q ,010) (q ,0010) (q
,10010) (q ,110010) (q ,0110010) (q ,10110010) (q
0 1 3 2 3
1 3 2 0
e = = = = =
= = = =

deci 10110010 T(M) e .
n mod echivalent, ntr-un calcul de configuraii se scrie:
(q
0
,10110010) (q
2
,0110010) (q
3
,110010) (q
1
,10010)
(q
3
,0010) (q
2
,010) (q
3
,10) (q
1
,0) (q
0
,) unde q
0
F, e
deci s-a obinut din nou c 10110010 T(M) e .
Se poate demonstra c automatul finit M de mai sus accept irurile cu
numr par de 0 i numr par de 1.
Definiia 2.1.4 Un automat finit nedeterminist, notat M=(Q, , ,q
0
, F), este format din Q, ,
q
0
, F prezentate n definiia 2.1.1, dar funcia de tranziie este aici
Q) ( Q : ' P
.
Deci a) (q, ' este o mulime de stri i nu o singur stare.
i aici se poate extinde la
-
Q astfel:

E e e =
=
e
-
. a , x , a) (p, ' xa) (q, '
{q} ) (q, '
x) (q, ' p


Acum se poate extinde la
-
E Q) ( P astfel:

k
1 i
i k 2 1
x) , (p ' x) }, p ,..., p , ({p '
=
=

Definiia 2.1.5 Un cuvnt x este acceptat sau recunoscut de un automat finit nedeterminist M
dac C = F x) , (q
0
, adic dac M pornind din starea q
0
i analiznd cuvntul x poate
ajunge ntr-o stare final.
n termenii unui sistem de rescriere, definiia este aceeai cu cea pentru un automat finit
determinist fr s existe restricie n cazul unei reguli de forma:
j k i
q a q , de a fi singura
regul cu acest membru stng.
Limbajul acceptat de un automat finit nedeterminist este format din mulimea
cuvintelor acceptate T(M) pentru care exist o secven care conduce la acceptare:
T(M) = {w eE | o(q,w) F =u}


Exemplul 2 Fie automatul finit descris n figura 2.1.2 cu ajutorul diagramei de
tranziie; n acest caz T(M) este mulimea cuvintelor care au sau doi de zero
consecutivi sau doi de unu consecutivi.
- 44 -


S urmrim funcionarea acestui automat pentru cteva situaii diferite:
a) Dac irul de intrare este 0101, automatul va face toate ncercrile de tranziii
posibile, nainte de a trage concluzia c acest cuvnt nu e recunoscut (nu duce
automatul ntr-o stare final):
(q
0
,0101) (q
0
,101) (q
0
,01) (q
0
,1) (q
0
,) , F q
0
e
(q
0
,0101) (q
0
,101) (q
0
,01) (q
0
,1) (q
1
,) , F q
1
e
(q
0
,0101) (q
0
,101) (q
0
,01) (q
3
,1) blocare ( C = ) 1 , (q
3
o )
(q
0
,0101) (q
0
,101) (q
1
,01) blocare ( C = ) 1 , (q
1
o )
(q
0
,0101) (q
3
,101) blocare ( C = ) 1 , (q
3
o )

b) Dac irul de intrare este 0110, automatul va accepta acest cuvnt n momentul
depistrii unui calcul de configuraii ce duce automatul ntr-o stare final
(indiferent cte ncercri nereuite face, automatul accept irul de intrare la
nregistrarea unui succes):
(q
0
,0110) (q
0
,110) (q
0
,10) (q
0
,0) (q
0
,) , F q
0
e
(q
0
,0110) (q
0
,110) (q
0
,10) (q
0
,0) (q
3
,) , F q
3
e
(q
0
,0110) (q
0
,110) (q
0
,10) (q
1
,0) blocare ( C = ) 1 , (q
1
o )
(q
0
,0110) (q
0
,110) (q
1
,10) (q
2
,0) (q
2
,) , F q
2
e succes !
(q
0
,0110) (q
3
,110) blocare ( C = ) 1 , (q
3
o )

c) Configuraiile instantanee ce determin acceptarea n cazul cuvntului de
intrare 010011 sunt:
(q
0
,010011) (q
0
,10011) (q
0
,0011) (q
3
,011) (q
4
,11) (q
4
,1) (q
4
,)
i
(q
0
,010011) (q
0
,10011) (q
0
,0011) (q
0
,011) (q
0
,11) (q
1
,1) (q
2
,)

Ambele arat faptul c irul de intrare poate fi citit de pe band ajungnd ntr-o
- 45 -

stare final (q
2
sau q
4
), fiind deci recunoscut. Este suficient gsirea uneia dintre
ele, cnd se stabilete acceptarea cuvntului de ctre automat.

Pentru aceeai intrare propus anterior, pot fi ncercate i alte posibile
transformri de configuraii, dar care nu termin citirea ntr-o stare final sau nici
mcar nu permit finalizarea citirii benzii (ajung la blocare, cnd simbolul de pe
band i starea automatului finit nu sunt compatibile d.p.d.v. al funciei de
tranziie, cum ar fi cazul citirii simbolului 0 ntr-un moment n care automatul se
afl n starea q
1
, deoarece se observ c C = ,0) (q
1
).


M2.U2.3 Legtura dintre gramaticile regulate i automatele finite

Vom demonstra n cele ce urmeaz c limbajele de tip 3 sunt echivalente cu limbajele
recunoscute de automatele finite (numite i mulimi regulate).

Teorema 2.2.1
Fie L o mulime de cuvinte acceptate de un automat finit nedeterminist. Atunci exist
un automat finit determinist care accept L.
Demonstraie:
Fie F) , q , , (Q, M
0
= un automat finit nedeterminist care accept L, adic
L=T(M).
Definim ) F' , q' , ' , , (Q' M'
0
= un automat finit determinist dup cum urmeaz:
Q' P(Q) noile stri (M pstreaz urma strilor n care poate fi M la un moment dat)
{ } card(Q) k 0 Q, q ] q ,..., q , [q Q'
i k 2 1
s s e =
;
] q [ q
0 0
= ' ;

, F' , Q' F' C = _
conine cel puin o stare final din F;
i definim tranziiile:

} p ,..., p , p { a) }, q ,..., q , ({q ] p ,..., p , p [ a) ], q ,..., q , ([q
j 2 1 t 2 1 j 1 t 2 1
= = '

Deci dac este aplicat unui element Z=[q
1
, q
2
,....,q
k
] din Q', rezultatul este calculat
prin aplicarea lui la fiecare stare a lui Q din Z=[q
1
,q
2
,. . . ,q
k
]:
j 1, l , a) , (q p
] p ,..., p , p [ a) ], q ,..., q , ([q
k
1 i
i l
j 2 1 k 2 1
= e
= '
=


Se arat prin inducie asupra lungimii irului de intrare x c :
(2.2.1) } q ,..., q , {q x) , (q ] q ,..., q , [q x) , q (
i 2 1 0 i 2 1 0
= = ' '

- pentru |x|=0, = ' ] q [ q
0 0
afirmaia (2.2.1) este adevrat;
- presupunem c (2.2.1) este adevrat pentru |x| t s ; s studiem atunci intrarea xa, unde
a e i deci |xa| s t+1 :
a) x), , q ( ( xa) , q (
0 0
' ' ' = ' '

Conform ipotezei induciei,
} p ,..., p , {p x) , (q ] p ,..., p , [p x) , q (
j 2 1 0 j 2 1 0
= = ' '

- 46 -

Prin definiie,
} r ,..., r , r { a) }, p ,..., p , ({p ] r ,..., r , [r a) ], p ,..., p , ([p
k 2 1 j 2 1 k 2 1 j 2 1
= = '
Astfel,
} r ,..., r , r { xa) , (q ] r ,..., r , [r xa) , q (
k 2 1 0 k 2 1 0
= = ' '
Pentru a completa demonstraia mai avem de adugat c F x) , q (
0
' e ' ' exact cnd
x) , (q
0
conine o stare a lui Q care este n F.
Aadar T(M)=T(M).


Exemplul 1 Considerm automatul finit:
}) {q , q , {0,1}, }, q , ({q M
1 0 1 0
=
,

=
C =
=
=
} q , {q ,1) (q
,0) (q
} {q ,1) (q
} q , {q ,0) (q
1 0 1
1
1 0
1 0 0

S se construiasc automatul finit determinist M, echivalent cu M.

S reprezentm automatul M sub form de diagram de tranziie:

Construim M conform Teoremei 2.2.1 :
) ]} q , [q ], {[q , ] [q , , {0,1} , ]} q , [q ], [q ], {[q ( M
1 0 1 0 1 0 1 0
' = '

= '
= '
= '
= '
= '
= '
] q , [q ],1) q , ([q
] q , [q ],0) q , ([q
] q , [q ],1) ([q
],0) ([q
] [q ],1) ([q
] q , [q ],0) ([q
1 0 1 0
1 0 1 0
1 0 1
1
1 0
1 0 0


Deci automatul M va avea diagrama tranziiilor ca n figura 2.2.2:


- 47 -


Teorema 2.2.2
Fie G=(V
N
, V
T
, S, P) o gramatic de tip 3. Atunci exist un automat finit nedeterminist
F) , q , , (Q, M
0
= cu T(M)=L(G).

Demonstraie:
Construim
N N
V T {T}, V Q e = ;
S q
0
=
;
Dac P S e , atunci T} {S, F = i S nu apare la dreapta nici unei
reguli; dac P S e , atunci
{T} F =
;
T
V a , a) (T, e C = ;
Dac
a) (B, T atunci
V B , V a
P a B
N T
e

)
`

e e
e
;
Dac a) (B, C atunci
V C B, , V a
P aC B
N T
e

)
`

e e
e
;
Dac exist
N
V Be care nu apare n membrul stng al nici unei reguli din P,
atunci
T
V a , a) (B, e C = .
Atunci M simuleaz derivaiile n G. S artm c, ntr-adevr, T(M)=L(G):

a) Fie L(G) ...a a a x
n 2 1
e = , 1 > n . Atunci:
n 1 n 2 1 1 n 1 n 2 1 1 1
a ...a a a A ...a a a ... A a S


pentru anumite variabile A
i
din V
N
. Din construcia automatului M avem:

) a (S, A
1 1
e
) a , (A A
2 1 2
e











Figura 2.2.2
[q
0
] [q
1
]
[q
0
,q
1
]
Star
t
0,1
1
0 1
- 48 -


) a , (A A
n 1 - n
e

Aadar:
(S, a
1
a
2
a
n
) (A
1
, a
2
a
n
) (A
n-1
, a
n
) (A,)

Adic cuvntul
T(M) ...a a a
n 2 1
e = x
.
Pentru c x a fost din L(G)

T(M) L(G) _

b) Fie T(M) xe ,
1 | | > x
exist strile S,A
1
,,A
n-1
,T astfel nct:

e
e
e

) a , (A T
...
) a , (A A
) a (S, A
n 1 n
2 1 2
1 1

e
e
e

P a A
...
P A a A
P A a S

1 n
2 2 1
1 1

deci are loc derivaia:

n 1 n 2 1 1 n 1 n 2 1 2 2 1 1 1
a ...a a a A ...a a a ... A a a A a S



De aici L(G) T(M) L(G) x _ e

Din (a) i (b)
L(G) T(M) =
.


Teorema 2.2.3
Fiind dat un automat finit determinist M, exist o gramatic G de tip 3 astfel nct
L(G)=T(M).

Demonstraie:
Presupunem F) , q , , (Q, M
0
= - automat finit determinist.
Definim o gramatic de tip 3, P) , q , (Q, G
0
= astfel nct:
(i) q ap o(q,a) = p
(ii) q a o(q,a) = p e F
Demonstraia este similar cu cea din Teorema 2.2.2.
n plus dac T(M) e atunci F q
0
e i q este o regul n G.




- 49 -

Teorema 2.2.4
Clasa limbajelor de tip 3 este echivalent cu clasa limbajelor acceptate de automatele
finite.

Demonstraia este evident din Teoremele 2.2.1, 2.2.2 i 2.2.3 .

Observaia 2.2.1 Dup unii autori clasa limbajelor acceptate de automatele finite se numete
clasa limbajelor regulate. Datorit teoremei anterioare (2.2.4), clasa limbajelor de tip 3 se
numete i clasa mulimilor regulate.


Exemplul 2 Fie G=({S,B}, {0,1}, S, P) unde

P:

0 B
1S B
0B B
0B S


a) S se construiasc automatul finit, M, care s recunoasc L(G);
b) Pornind de la M s se construiasc automatul finit determinist, M
1
,
echivalent cu M:
c) S se construiasc gramatica G care s genereze T(M
1
).

Construcie:
a) Conform Teoremei 2.2.2, construim automatul finit care s recunoasc
limbalul L(G), M =({S,B,A}, {0,1}, , S, {A}), unde:
C = = C =
C = = =
(A,1) {S} (B,1) (S,1)
(A,0) B} {A, (B,0) {B} (S,0)

S reprezentm n figura urmtore diagrama tranziiilor din automatul

M =({S,B,A}, {0,1}, , S, {A}):



Start






Figura 2.2.3
S
B
A
0
1
0
0
- 50 -

Este uor de verificat c T(M)=L(G) este limbajul cuvintelor peste alfabetul
{0,1} care ncep i se termin cu o succesiune de cel puin doi 0 i orice apariie a
simbolului 1 este urmt de succesiuni de 0.

b) Pornind de la M, s construim conform Teoremei 2.2.1, un automat finit
determinist, M
1
, echivalent cu M:
) {[A]} [S], , {0,1}, Q, ( M
1
' =
B]} [A, [A], [B], {[S], Q = (n Q nu sunt necesare i strile
B] A, [S, B], [S, A], [S, )

[S] B],1) ([A,
A] [B, B],0) ([A,
([A],1) ([A],0)
[S] ([B],1)
A] [B, ([B],0)
([S],1)
[B] ([S],0)
= '
= '
= ' = '
= '
= '
= '
= '


c) Pornind de la M
1
, construim G dup cum urmeaz (Teorema 2.2.3):
G=( { S],[B],[A],[A,B]}, {0,1}, [S], P )

0 B] [A, , 1[S] B] [A, , B] 0[A, B] [A,


0 [B] , 1[S] [B] , B] 0[A, [B]
0[B] [S]
: P



Observaia 2.2.2 Gramatica G este mult mai complicat dect gramatica G iniial, dei ele
sunt echivalente i evident c dac pornim de la ea se poate construi un automat finit i mai
complicat, echivalent cu automatele de mai sus.

Se pune atunci problema dac pornind de la un automat finit nu putem micora numrul de
stri sau dac atunci cnd se implementeaz un automat finit nedeterminist se poate obine o
reprezentare n memorie optimal. Aceast ultim problem este de mare importana in
construcia compilatoarelor i este abordat n [12], [14]. n continuare nu vom ocupa de prima
dintre aceste probleme, i anume de micorarea numrului de stri ale unui automat finit
determinist.



1. Descriei un automat finit determinist pentru L = {w | we{0,1}*, w are
un numr par de 0 i un numr impar de 1}
2. S se construiasc automatul finit care accept limbajul:

- 51 -

L = {0
n
1
m
| n0, m1}{1
n
0
m
| n0, m1}

3. Scriei un automat finit determinist, echivalent cu automatul finit
nedeterminist din figura de mai jos:


4. Fie automatul finit nedeterminist de mai jos:


S se transforme ntr-un automat finit determinist.


S ne reamintim...
Un automat finit determinist, notat M=(Q, , , q
0
, F), este format din:
Q - o mulime finit nevid (mulimea strilor);
- un alfabet finit de intrare;
o - o aplicaie numit funcie de tranziie, care ataeaz fiecrei combinaii
<stare, simbol de intrare> o nou stare
Q Q : ;
Q q
0
e starea iniial;
Q F_ mulimea strilor finale.

Un automat finit nedeterminist, notat M=(Q, , ,q
0
, F), este format din Q, ,
q
0
, F prezentate n definiia 2.1.1, dar funcia de tranziie este aici
Q) ( Q : ' P
.
Deci a) (q, ' este o mulime de stri i nu o singur stare.


Test de evaluare a cunotinelor
I. ntrebri.
1. Care este diferena esenial dintre un automat finit determinist i unul
nedeterminist?
2. Prezentai legatura dintre automate finite i gramatici.
II. Exerciii propuse.
1. Fie automatul nedeterminist de mai jos:
- 52 -


S se construiasc un automat finit determinist, A, echivalent cu
automatul dat i s se construiasc apoi o gramatic care s genereze
T(A).
2. Fie gramatica G=({A,B},{a,b},A, P), unde P = {AAa|aB, BBb|b}.
S se determine automatul finit (determinist sau nu) echivalent cu
gramatica G.



M2.U1.5 Rezumat
Unitatea de nvare prezint automatele finite deterministe i nedeterministe i la
legatura cu limbajele de tip3, numite i limbaje regulate. S-au prezintat echivalena
dintre automatele finite deterministe i cele nedeterministe precum i un algoritm de
trecere de la un automat nedeterminist la unul determinist echivalent.

- 53 -


Unitatea de nvare M2.U2. Minimizarea automatului finit

Cuprins
M2.U2.1. Introducere............................................................................................ 53
M2.U2.2. Obiectivele unitii de nvare .............................................................. 53
M2.U2.3. Minimizarea automatului finit ............................................................... 53
M2.U2.4. Algoritmi pentru minimizarea automatului finit .................................... 57
M2.U2.5. Rezumat.....................................................................................................61



M2.U2.1. Introducere
Prin trecerea de la un automat finit la o gramatic i apoi de la gramatic la un
automat finit se obin n final automate echivalente, adic automate care recunosc
acelai limbaj.
Problema care se pune este de a vedea dac n mulimea automatelor echivalente
exist un cel mai mic automat, relative la numrul de stri. Respunsul este
afirmativ i este dat n aceast unitate de nvare, n care se prezint fundamental
theoretic al acestei minimizri i doi algoritmi de minimizare ai unui automat finit.
.



M2.U2.2. Obiectivele unitii de nvare
Aceast unitate de nvare i propune ca obiectiv aplicarea unor rezultate din
algebra abstract n teoria automatelor.
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice mecanismul de minimizare;
- construiasc un automat finit pornind de la un automat dat;
- programeze un algoritm minimizare ntr-un limbaj oarecare..



Durata medie de parcurgere a unitii de nvare este de 3 ore.
M2.U2.3 Minimizarea automatului finit
Definiia 2.3.1 O relaie binar R pe mulimea S se numete relaie de echivalen dac ea
este:
1) Reflexiv S) x (xRx, e
2) Simetric yRx) (xRy
3) Tranzitiv xRz) yRz (xRy,

- 54 -

O relaie de echivalen peste S mparte mulimea S n clase de echivalen, submulimi
disjuncte S
i
astfel nct

=
e

i
i
i
S S
xRy S y x,
.
Definiia 2.3.2 O relaie de echivalen R peste S se numete de indice finit dac numrul de
clase de echivalen este finit.
Definiia 2.3.3 O relaie de echivalen, R, se numete invariant la dreapta dac
S z xzRyz xRy e .

Vom arta n cele ce urmeaz c orice automat finit induce o relaie de echivalen
invariant la dreapta de indice finit pe mulimea irurilor de intrare.

Teorema 2.3.1 (Teorema Myhill- Nerode)
Fie L un limbaj. Urmtoarele afirmaii sunt echivalente :
(1) Limbajul L este acceptat de un automat finit.
(2) L este reuniunea unor clase de echivalen invariante la dreapta de indice finit.
(3) Relaia de echivalen R definit de:
( ) L yz L xz , z xRy e e e
-

este de indice finit.
Demonstraie:
a) Artm c ) 2 ( ) 1 ( :
Fie L=T(M), F) , q , , (Q, M
0
= . Fie R o relaie de echivalen definit de
p y) , (q x) , (q y xR'
0 0
= = .
Demonstrm c relaia R este invariant la dreapta de indice finit:
- yz) , (q xz) , (q evident
z) (p, yz) , (q
z) (p, xz) , (q
, z
0 0
0
0 *
=
)
`

=
=
e
deci R este invariant la dreapta
- R este de indice finit pentru c numrul claselor de echivalen nu poate
depi numrul strilor (care e finit). L este reuniunea claselor de
echivalen de indice card( F) pentru c F x) , (q L x
0
e e .
b) Artm c ) 3 ( ) 2 ( :
Fie R o relaie de echivalen invariant la dreapta de indice finit peste L. Deoarece L
este reuniunea claselor de echivalen din R,
yz xzR' : L z y xR' : L y x, e e
( ) xRy L xz L yz yz xzR' y xR' e e
Dac R este de indice finit atunci i R este de indice finit (relaia R este o rafinare a lui R,
deoarece clasele de echivalen al lui R sunt coninute n clasele de echivalen ale lui R).
c) Artm c ) 1 ( ) 3 ( :
Presupunem xRy. Atunci:
L ywz L xwz , z w, fiecare pentru
*
e e E e
xwRyw R invariant la dreapta.
- 55 -

Fie Q mulimea finit a claselor de echivalen induse de R, Q' [x]e coninnd x.
Definim [xa] a) ([x], = ' . Definiia e consistent pentru c R este invariant la
dreapta.
Fie - ] [ q
0
= '
- } L x {[x] F e = '
Automatul finit ) F , q , , , Q ( M
0
' ' ' ' = ' accept L pentru c
[x] x] [ x) , q (
0
= = ' ' .
n concluzie, L x F' [x] ) T(M' x e e e .


Teorema 2.3.2
Automatul finit acceptnd limbajul L este unic relativ la un izomorfism (o redenumire a
strilor ) i este dat de M din Teorema 2.3.1 .

Demonstraie:
Fie M acceptnd L, F) , q , , (Q, M
0
= i relaia de echivalen R definit de
Teorema 2.3.1(3) .
Conform teoremei 2.3.1, orice automat finit determin o relaie de echivalen R care
este o rafinare a lui R. Deci numrul claselor de echivalen induse de R este cel puin ct cel
al claselor de echivalen induse de R. Rezult c numrul de stri ale automatului M este
indicele relaiei R, i este mai mare sau cel mult egal cu numrul strilor lui M din Teorema
2.3.1 .
Aadar, fie Q qe o stare din M; x
-
e - astfel nct q x) , (q
0
= . Dar q poate
fi scos din Q i gsit un automat mai mic identificnd q cu starea x) , q (
0
' '
, din M.
Dac y) , q ( x) , q ( deci xRy atunci q y) , (q x) , (q
0 0 0 0
' ' = ' ' = = ,
ceea ce trebuia demonstrat.


Observaia 2.3.1 Teorema 2.3.1 furnizeaz un mijloc de a demonstra c anumite limbaje
nu sunt regulate.

Observaia 2.3.2 Fie limbajul } I i {a L
i
e = i } N j {i I
j
e = o mulime monoton
cresctoare. Se consider diferena 1,2,... j , i i d
j 1 j j
= =
+

Urmeaz c L este de tip 3
j
d e periodic.
( ) d mod j i Ra a
j i
, unde d=max{d
j
}.

Observaia 2.3.3 Se poate construi un cel mai mic automat care accept un limbaj T(M), prin
eliminarea strilor inaccesibile i comasarea celor redundante.
- 56 -

Strile redundante sunt determinate prin partiionarea strilor automatului n clase de
echivalen astfel nct fiecare clas conine stri care nu se pot distinge ntre ele i este att de
mare ct este posibil.
Definiia 2.3.4 Fie F) , q , , (Q, M
0
= un automat finit determinist i q
1
,q
2
dou stri
distincte. Spunem c
-
e x distinge q
1
de q
2
dac:
x) , (q
1

*
) , (q
3

x) , (q
2

*
) , (q
4

i una i numai una dintre strile q
3
i q
4
este stare final adic:
q
3
eF q
4
eF
i q
4
eF q
3
eF.
Definiia 2.3.5 Spunem c q
1
i q
2
sunt k-nedistinctibile (
2
k
1
q q ) dac i numai dac nu
exist x, cu |x|s k, astfel nct x distinge q
1
de q
2
.

Definiia 2.3.6 Spunem c q
1
si q
2
sunt nedistinctibile ( q
1
q
2
) dac sunt k-nedistinctibile
pentru k>0.

Definiia 2.3.7 O stare q este inaccesibil dac nu exist x astfel nct x) , (q
0
) (q, .

Definiia 2.3.8 M este un automat redus dac nici o stare nu este inaccesibil i nu exist dou
stri nedistinctibile.

Teorema 2.3.3
Fie F) , q , , (Q, M
0
= un automat finit determinist cu n stri. Strile q
1
i q
2
sunt
nedistinctibile dac i numai dac sunt (n-2)-nedistinctibile.

Demonstraie:
Implicaia direct ) " (" este evident; s demonstrm implicaia invers ) " (": :
a) Dac F are 0 sau n stri demonstraia este imediat.
b) Presupunem c 0 < card(F) < n.
Vom demonstra c
0 1 3 n 2 n
... _ _ _ _

.
Observm c pentru q
1
,q
2
eQ avem:
( )

|
.
|

\
|
E e .
e e e
a) , (q a) , (q , a q q q q (2)
F respectiv, sau, F q , q F \ Q sau F ) , (q ), , (q q q (1)
2
1 - k
1 2
1 - k
1
k
1
2 1 2 1
0
1

Relaia
0
partiioneaz Q n dou clase de echivalen: F i K\F.
Dac
( ) ( ) k 1 k
=
+
atunci
( ) 1 +

k
este o rafinare a lui
( ) k
i conine cel puin o clas de
echivalen n plus.
- 57 -

Pentru c sunt cel mult n-1 stri n F sau Q\F , - cel mult n-2 rafinri a lui
0
.
Aadar, este prima relaie
( ) k
pentru care
( ) ( ) k 1 k
=
+
.

Observaia 2.3.4 Dou stri sunt distinctibile dac ele se pot distinge pe un ir de intrare de
lungime mai mic dect numrul strilor.

M2.U2.3 Algoritmi pentru minimizarea automatului finit
(A) Algoritm de minimizare[1]

Fie M=(Q,,o,q
0
,F). Se construiete M redus parcurgnd urmtorii trei pai:


A.1 Se elimin nti nodurile inaccesibile (conform algoritmului (B))
A.2 Se construiesc relaiile de echivalen ,... ,
1 0
pn cnd relaia se stabilizeaz adic
( ) ( ) 1 k k +
= .
Alegem
( ) k
= .
A.3 Se construiete M=(Q, , o, q
0
, F) unde Q e mulimea claselor de echivalen ale
lui Q, astfel:
o([q],a)=[p] dac o(q,a)=p
q
0

=[q
0
]
F={ [q] | qeF }

(B) Algoritm de eliminare a strilor inaccesibile. Pentru eliminarea strilor inaccesibile se
poate folosi orice algoritm din teoria grafurilor de eliminare a nodurilor inaccesibiel din nodul
reprezentnd starea iniial, unde avem:
Intrare - Graful (Q,I) cu I(q,p)=a o(q,a)=p
- q
0
eQ
Ieire Mulimea de noduri Q_Q astfel nct exist un drum de la q
0
la peQ.
Algoritmul marcheaz succesiv nodurile accesibile din q
0
printr-un drum. Astfel,
gsete nodurile accesibile i le elimin pe celelalte. Prezentm n continuare dou variante ale
acestui algoritm:

Varianta I
B
I
.1 Iniializeaz Q={q
0
} i marcheaz q
0
cu 0.
B
I
.2 Pentru qeQ caut peQ astfel nct exist un arc (q,p)eI; marcheaz p cu 1+ marca
lui q (dac p nu e marcat) i adaug pe q la Q; reia pasul B
I
2.
Dac qeQ i p astfel nct (q,p)eI, p este marcat atunci stop.

Sau:
- 58 -


Varianta a II-a
B
II
.1 Iniializeaz L={q
0
}, marcheaz q
0
.
B
II
.2 Dac L e vid stop .
Dac nu, alege primul element q din L i l scoate din L.
B
II
.3 Pentru peQ astfel nct (q,p)eI, dac p nu e marcat, marcheaz p i adaug p n
capul listei L. Salt la pasul B
II
2.
Vom arta n continuare c automatul obinut prin algoritmul de minimizare este
automatul cu numr minim de stri.

Teorema 2.4.1
Automatul M definit de algoritmul de minimizare (A) este automatul cu cel mai mic
numr de stri acceptnd L(M).
Demonstraie:
Presupunem c exist un automat M, care are mai puine stri dect M i c
L(M)=L(M).
Pentru c fiecare clas de echivalen indus de relaia de echivalen
nedistinctibilitatea, , este nevid, rezult c fiecare stare din M este accesibil.
Pentru c M are mai puine stri dect M rezult c -w,x dou cuvinte astfel nct:
w) , q (
0
' '
*
M
) (q,
x) , q (
0
' '
*
M
) (q,
unde
0
q ' ' este starea iniial a lui M.
Dar w i x conduc M n stri diferite, deci w i x conduc M n stri diferite, i atunci:
w) , (q
0

*
M
) (p,
x) , (q
0

*
M
) (r, stri care sunt distinctibile, adic
-ye* astfel nct o(p,y)eF i o(r,y) e F

o(q
0
,wy)eF i o(q
0
,xy)eF

wyeT(M) iar xyeT(M), pe cnd o(q
0
,wy)=o(q
0
,xy)

deci wy i xy sunt deodat n T(M)=T(M) contradicie.


- 59 -


Exemplul 2 S minimizm automatul definit de urmtorul tabel al funciei de
tranzitie, unde strile finale sunt 1, 2, i 5:

a b
0 1 2
1 3 4
2 4 3
3 5 5
4 5 5
5 5 5

C1. Toate nodurile sunt accesibile deci trecem la :
C2. Tabelul iniial este cu toate perechile nemarcate.

0
_
1
_ _
2
_ _ _
3
_ _ _ _
4
_ _ _ _ _
5

C3. Marchez perechile: (stare final, stare nefinal).
0
X 1
X
_
2
_
X X 3
_
X X
_
4
X
_

_
X X 5
C4. (i) Alegem acum o pereche nemarcat, (0,3). Pentru intrarea a, 0 i 3 trimit
automatul n 1 i 5, notat (0,3) (1,5). Deoarece perechea (1,5) nu este
marcat, nu vom marca nici (0,3). Cu intrarea b, avem (0,3) (2,5), care tot
nemarcat estedeci nu vom marca perechea (0,3) nici acum. Continuam s
verificm perechile i observm c pentru perechea (1,5) simbolul a realizeaz
(1,5) (3,5), unde perechea (3,5) este marcat., deci marcm perechea (1,5).

Verificnd toate perechile nemarcate se obine tabelul urmtor:


0
X 1
X
_
2
_
X X 3
_
X X
_
4
X X X X X 5

(ii) Acum mai facem o trecere prin tabel fiindc s-a modificat linia strii 5.
- 60 -

Vom obine:

0
X 1
X
_
2
X X X 3
X X X
_
4
X X X X X 5

Tabel care nu se mai modific.
C5. Strile echivalente sunt date de perechile nemarcate: (1,2) i (3,4), deci
automatul redus va fi:


a b
0 1 1
1 3 3
3 5 5
5 5 5

S ne reamintim...

Algoritmul de minimizare a unui automat finit se bazeaz pe partiia
mulimii starilor automatului n clase de echivalen.

Algoritmul se aplic unui automat finit determinist dup eliminarea strilor
inaccesibile din starea iniial.

Algoritmul se oprete cnd relaia s-a stabilizat sau cnd fiecare clas de
echivalen cunine un singur element.



Test de evaluare a cunotinelor
I. ntrebri.
1. De la ce tip de automat fint pornete algoritmul de minimizare i
cum se poate obine acesta?
II. Exerciii propuse.
1. S se transforme urmtorul automat nedeterminist ntr-unul
determinist i apoi s se minimizeze:
- 61 -





M2.U2.5 Rezumat

Unitatea de nvare prezint fundamentul teoretic al minimizrii unui
automat finit determinist, doi algoritmi de minimizare i exemple de utilizare
ai acestor algoritmi. In plus se mai prezint i algoritmi de eliminare astrilor
inaccesibile din starea iniial, algoritmi specifici algoritmicii grafurilor.

- 62 -

Unitatea de nvare M2.U3. Gramatici regulate i expresii
regulate

Cuprins
M2.U3.1. Introducere .............................................................................................. 62
M2.U3.2. Obiectivele unitii de nvare ................................................................ 62
M2.U3.3. Gramatici de tip 3 i expresii regulate ...................................................... 62
M2.U3.4. Algoritm de transformare a gramaticii regulate ntr-o expresie regulat ... 65
M2.U3.5. Rezumat.......................................................................................................70



M2.U3.1. Introducere

Limbajele de tip 3 pot fi recunoscute de automate finite sau generate de gramatici
de tip 3. Vom prezenta, n aceast unitate de nvare, un nou mod de reprezentare,
cel mai compact, al limbajelor de tip 3 i anume expresiile regulate.

In prima parte se definesc expresiile regulate i proprietile operatorilor folosii
iar apoi se face legatura cu limbajele de tip 3 printr-un algoritm de construcie a
unei expresii regulate pornind de la o gramatic de tip3. .



M2.U3.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice gramaticile generative;
- construiasc propriile expresii regulate care s reprezinte un limbaj anume;
- construiasc expresii regulate pornind de la o gramatic de tip 3;
- programeze un algoritm de transformare a unie gramatici intr-o expresie
regulat.



Durata medie de parcurgere a unitii de nvare este de 3 ore.
M2.U3.3 Gramatici regulate i automate finite

S considerm urmtorul exemplu n care folosim operaiile cu limbaje definite n Modulul 1:


Exemplul 1 Fie urmtoarele dou alfabete:
L={A,B,,Z,a,b,,z}, alfabetul literelor mari i mici
C={0,1,,9}, alfabetul cifrelor din baza 10.

Cu aceste alfabete, pe care le putem chiar considera limbaje formate din cuvinte

- 63 -

de lungime 1, putem construi numeroase alte limbaje, cum ar fi:
(a)
C L
= mulimea literelor i a cifrelor;
(b) LC = mulimea cuvintelor de lungime 2, formate din o liter urmat de o
cifr;
(c) L
4
= mulimea cuvintelor formate din exact patru litere;
(d) L
*
= mulimea cuvintelor formate din oricte litere (inclusiv cuvntul
vid);
(e) L(
C L
)
*
= mulimea cuvintelor de lungime cel puin 1, formate din
litere i cifre, primul caracter fiind obligatoriu o liter;
(f) C
+
= mulimea irurilor numerice formate din cel puin o cifr.

Modul de reprezentare al limbajelor de mai sus sugereaz un alt mod de descriere al limbajelor
de tip 3 i anume cu ajutorul expresiilor regulate.

Definiia 2.7.1 Se numete expresie regulat o expresie care poate fi construit cu
urmtoarele reguli:
1. C este o expresie regulat indicnd mulimea vid.
2. este o expresie regulat indicnd limbajul format doar din cuvntul vid, {}.
3. Dac
T
V a e , atunci a este o expresie regulat indicnd limbajul format dintr-un cuvnt
de lungime 1, construit cu simbolul a i anume limbajul {a}.
4. Dac e
1
i e
2
sunt expresii regulate indicnd limbajele L
1
i L
2
, atunci urmtoarele
expresii sunt regulate:
a) Alternarea (e
1
)|(e
2
), indicnd
2 1
L L ;
b) Concatenarea (e
1
)(e
2
), indicnd
2 1
L L ;
c) nchiderea Kleene (e
1
*), indicnd
-
1
L .
Observaia 2.6.1 Parantezele ( ) pot fi eliminate n urmtoarele cazuri:
({ }) = { }
( | ) = |
(( )) = ( )
Observaia 2.6.2
a) Operaiile de alternare, |, concatenare, ., i nchidere, *, au precedena descrescnd de la cea
mai mare , -, la cea mai mic , | .
b) Toate operaiile sunt asociative iar alternarea este i comutativ.

Exist un numr de reguli algebrice pentru expresii regulate care pot fi folosite pentru a le
transforma n alte expresii echivalente, conform tabelului urmtor.
Tabelul 2.6.1
Regul Descriere
r|s=s|r Alternarea este comutativ
r|(s|t)=(r|s)|t Alternarea este asociativ
(rs)t=r(st) Concatenarea este asociativ
r(s|t)=(rs)|(rt)
(s|t)r=(sr)|(tr)
Concatenarea este distributiv la stnga
i la dreapta fa de alternare
- 64 -

r=r
r=r
Cuvntul vid este element neutru pentru concatenare
r
*
=(r|)
*

r
**
=r
*
Idempotena nchiderii (produs Kleene)
Operatorii folosii pentru scrierea expresiilor regulate sunt analogi cu forma BNF de descriere
a limbajelor (sunt simboluri ale metalimbajului).



Exemplul 2 Exemple de expresii regulate:
a) Expresia 110 reprezint limbajul format dintr-un singur cuvnt {110}.
b) Expresia 0|1 reprezint limbajul {0,1}.
c) Expresia 1
*
reprezint limbajul {1
i
| i=0,1,2,}.
d) a*b* reprezint limbajul { } 0 n m, b a
n m
> ;
e) (ab)* reprezint limbajul { } 0 m (ab)
m
> ;
f) (aa|ab|ba|bb)* reprezint mulimea irurilor peste {a,b} de lungime par.

Vom defini n continuare egalitatea a dou expresii regulate.

Definiia 2.6.3 Dou expresii regulate sunt egale (=) sau echivalente dac ele reprezint
acelai limbaj.



Exemplul 3 00* = 000*|0 (ele reprezint acelai limbaj, al irurilor peste
alfabetul {0} formate din cel puin un simbol 0).



Exemplul 4 Elementele unui limbaj de programare pot fi definite att n termenii
gramaticilor regulate ct i n cei ai expresiilor regulate. Spre exemplu, un
identificator format din litere mici i cifre, ncepnd cu o liter, poate fi descris de
gramatica regulat ale crei reguli sunt:

9 | ... | 1 | 0 | z | ... | c | b | a | 9A | ... | 1A | 0A | zA | ... | cA | bA | aA A


z | ... | c | b | a | zA | ... | cA | bA | aA S

i de expresia regulat:

(a|b|c| . . . |z) (a|b|c| . . . |z|0|1| . . . |9)*

Putem folosi <liter> pentru a scurta reprezentarea lui z | ... | c | b | a i
<cifr> pentru 9 | ... | 1 | 0 , expresia putnd fi scris n acest caz astfel:

<liter>(<liter>|<cifr>* .


- 65 -


M2.U3.4. Algoritm de transformare a unei gramatici regulate ntr-o expresie regulat

Expresiile regulate pot fi utilizate n ecuaii i deci pot fi evaluate. De exemplu, A=aA|a este o
ecuaie cu o expresie regulat valid.

Pentru a prezenta o metod de a converti o gramatic regulat ntr-o expresie regulat,
considerm gramatica regulat care genereaz limbajul
{ } 1 m n, ba a
n m
>
:

a C
aC C
bC B
aB S
aS S

nlocuind operatorul de rescriere " " cu unul de echivalen (=) i combinnd toate
regulile care au acelai membru stng ntr-o singur expresie prin folosirea operatorului de
alternare, gramatica poate fi scris ca o mulime de ecuaii:

=
=
=
a | aC C
bC B
aB | aS S

Prin rezolvarea acestui sistem de ecuaii, se obine o expresie regulat cu un singur simbol
terminal, care reprezint acelai limbaj ca i cel generat de gramatica regulat.

S rezolvm mai nti ecuaiile definite doar prin ele nsele. n acest sistem, ecuaia pentru C
are soluia:
C= a*a
Verificm prin nlocuirea acestei soluii n ecuaia pentru C. Se obine

a*a = a a*a | a,
sau altfel scris
a*a = (a a* | ) a,

dar a a* | = a* i deci se verific

a*a = a*a.

Soluia pentru C poate fi nlocuit n a doua ecuaie, obinnd sistemul:

=
=
a * ba B
B) | a(S S

Apoi B poate fi nlocuit n prima ecuaie

a) * ba | a(S S =

sau expresia echivalent:
S = aS | aba*a
i se vede imediat c o soluie a acestei ecuaii este:
S= a*aba*a
- 66 -

care este o expresie regulat reprezentnd acelai limbaj ca i limbajul generat de gramatica
regulat iniial.

Prezentm n continuare algoritmul de trecere de la o gramatic regulat la o expresie regulat.
Algoritm de transformare [EXPRESII REGULATE]

Intrare O gramatic regulat G, avnd regulile a} , {aX , X
j i
e , cu X
1
, simbol
iniial.
Ieire Expresia regulat echivalent cu G.
Pas 1. Transformarea n ecuaii regulate:
- Pentru fiecare regul X
i
a lui G,
Execut:
- Dac ecuaia X
i
nu a fost iniializat
Atunci definete X
i
=
Altfel schimb | X prin X
i i
= = , unde este
partea definit anterior a lui X
i
)

Pas 2. Aducerea n form intermediar a sistemului de ecuaii:
- Pentru fiecare i=1,2,,n-1
Execut:
- Transform ecuaia X
i
n forma
i i i i
| X X = , unde
i
este de forma

n i n, 1 i i 1, i i 0,
X | ... | X |
+ +
iar
i
i fiecare
j,i
sunt expresii regulate peste V
T
.
- Pentru fiecare j=i+1,i+2,,n
Execut:
- nlocuiete X
i
cu ( )
i i
* o n ecuaia pentru X
j
.


Pas 3. Rezolvarea ecuaiilor:
- Pentru fiecare i=n,n-1,,2,1
Execut:
- Transform ecuaia X
i
din forma
i i i i
| X X ' = , unde
i
'
este o expresie
regulat peste V
T
, n
( )
i i
* X ' =
i
o
.
- Pentru fiecare j=i-1,i-2,,2,1
Execut:
- nlocuiete soluia
( )
i
* '
i
o
a lui X
i
n ecuaia pentru X
j
.



Pas 4. Stabilirea soluiei:
- Soluia este ( )
1 1
* ' o
- 67 -

Observaia 2.7.1
a) Primul pas al algoritmului transform gramatica regulat ntr-o mulime de ecuaii de
forma:

l l k k j j m 2 1 i
X | ... | X | X | | ... | | X = ,
unde fiecare
T i i
V , e .

b) Pasul al doilea al algoritmului transform fiecare ecuaie n forma:
n i n, 1 i i 1, i i 0, i i i
X | ... | X | | X X
+ +
= ,
lucru posibil efectund o serie de transformri algebrice.

c) n pasul al treilea se face substituia napoi pentru a rezolva mulimea de ecuaii. Soluia
pentru X
n
este uor de gsit pentru c aceast ecuaie este de forma
n 0, n n n
| X X = i
deci soluia este
n 0, n n
* X = . Aceast soluie se poate nlocui apoi n fiecare din ecuaiile
precedente din sistem, acolo unde apare X
n
. n general, ndat ce ecuaia pentru X
i
a fost
rezolvat i nlocuit n ecuaiile precedente rezult c este rezolvat i ecuaia pentru X
i-1
,
care are numai variabilele X
i
i X
i-1
n membrul drept, iar X
i
a fost nlocuit.


Exemplul 1 Folosind algoritmul [EXPRESII REGULATE], s transformm n
expresie regulat gramatica definit mai jos:
{ }{ } ( ) P S, , c b, a, , B A, S, G =
, unde P este format din regulile:

c B
bB B
a A
bB A
aA A
a S
aA S


Pas 1.

=
=
=
c | bB B
a | bB | aA A
a | aA S

Pas 2. Nu este necesar

Pas 3.
c * b B 3 i = =

{a}a | c * {a}bb A
a | c * bb | aA A
2 i
=
=
=

a | a * aa | c * bb * aa S
a | a) * a | c * bb * a(a S
1 i
=
=
=
Pas 4. Soluie: S= aa*bb*c | aa*. Limbajul reprezentat de aceast expresie
regulat este { } { } 1 n | a 1 m n, | c b a
n m n
> > .

- 68 -




Exemplul 2 Folosind algoritmul [EXPRESII REGULATE], s transformm
n expresie regulat gramatica { }{ } ( ) P S, , c b, a, , C B, A, S, G = , unde P este
format din regulile:

c C
cB C
bC B
aB A
aA A
aA S


Pas 1.

=
=
=
=
c | cB C
bC B
aB | aA A
aA S

Singura ecuaie care nu este n form intermediar este ecuaia pentru
variabila C i anume C = cB|c. Este necesar atunci pasul 2 pentru
transfomarea n form intermediar:
Pas 2.

=
=
=
=
c | cbC C
bC B
aB | aA A
aA S

Pas 3.
( ) c * cb C
c | cbC C
4 i
=
=
=

( ) c * cb b B 3 i = =
c * ab(cb) * a A
{a}aB A
2 i
=
=
=
c * ab(cb) * aa S
aA S
1 i
=
=
=
Pas 4. Soluie: S = aaa*b(cb)*c sau, echivalent, S = aaa*bc(bc)*. Limbajul
reprezentat de aceast expresie regulat este { } 1 m 2, n | (bc) a
m n
> > .




1. Pentru expresiile regulate de mai jos, s se precizeze limbajele asociate:
a. E
1
=(0|1)*00(0|1)*;
- 69 -

b. E
2
=(1|(10))*;
c. E
3
=(0|1)*011.
2. Se d gramatica G=({P,Q,R},{0,1},P, W), unde mulimea de reguli W =
{P0Q|1P, Q0R|1P, R 0R|1R|0}. S se gseasc expresia regulat
corespunztoare acestei gramatici.
3. Precizai o expresie regulat pentru urmtoarele:
a. mulimea cuvintelor peste {0,1}* unde exist cel puin o pereche de
zerouri consecutive;
b. mulimea cuvintelor peste {0,1}* unde nu exist nici o pereche de
zerouri consecutive.
4. S se construiasc cte o expresie regulat peste alfabetul {0,1} pentru
fiecare dintre limbajele urmtoare:
a. mulimea cuvintelor care conin trei de 0 separai de un numr impar
de 1;
b. mulimea cuvintelor pentru care fiecare apariie a lui 1 este urmat de
cel puin dou apariii ale lui 0;
c. mulimea cuvintelor care se termin n 111.



S ne reamintim...

Expresie regulat este o expresie ce se poate construi cu urmtoarele reguli:
- C este o expresie regulat indicnd mulimea vid.
- este o expresie regulat indicnd limbajul format doar din cuvntul
vid, {}.
- Dac
T
V a e , atunci a este o expresie regulat indicnd limbajul
format dintr-un cuvnt de lungime 1, construit cu simbolul a i
anume limbajul {a}.
- Dac e
1
i e
2
sunt expresii regulate indicnd limbajele L
1
i L
2
, atunci
urmtoarele expresii sunt regulate:
1. Alternarea (e
1
)|(e
2
), indicnd
2 1
L L
;
2. Concatenarea (e
1
)(e
2
), indicnd
2 1
L L ;
3. nchiderea Kleene (e
1
*), indicnd
-
1
L .
Algoritmul Expresii Regulate
Intrare Gramatica G, cu regulile, a} , {aX , X
j i
e , X
1
, simbol iniial.
Ieire Expresia regulat echivalent cu G.
Pas 1. Transformarea n ecuaii regulate
- 70 -

Pas 2. Aducerea n form intermediar a sistemului de ecuaii:
Pas 3. Rezolvarea ecuaiilor
Pas 4. Stabilirea soluiei





Test de evaluare a cunotinelor
I. ntrebri.
1. Ce sunt expresiile regulate i care este precedena operatorilor?
II. Exerciii propuse.
1. S se construiasc expresii regulate pentru fiecare dintre limbajele:
a. toate cuvintele peste {0,1}* care nu conin aa;
b. toate cuvintele peste {0,1}* care au numr par de a i de b;
c. toate cuvintele peste {0,1}* care conin cel puin un a i un b.
2. S se construiasc o expresie regulat care s reprezinte limbajul
generat de gramatica:
S aA
S bB
A aA
A aB
B bA
B b




M2.U3.5. Rezumat. Aceast unitate de nvare i-a propus ca obiectiv familiarizarea
studenilor cu expresiile regulate, care se folosesc att n construcia compilatoarelor, ct
i n sistemele de operare, n realizarea unor editoare de texte i n multe alte domenii
conexe informaticii.

Legatura dintre gramaticile de tip 3 i expresiile regulate a fost realizat printr-un
algoritm de transformare i, datorit acestei legturi, limbajele de tip 3 se mai numesc i
limbaje regulate.


- 71 -


Unitatea de nvare M2.U4. Expresii regulate i automate finite

Cuprins
M2.U4.1. Introducere ....................................................................................................... 71
M2.U4.2. Obiectivele unitii de nvare ........................................................................ ..71
M2.U4.3. Algoritm de construcie a automatului finit pornind de la o expresie regulat.....71
M2.U4.4. Rezumat.................................................................................................................76



M2.U4.1. Introducere

Expresiile regulate sunt importante pentru construirea unui generator de analizor
lexical, care folosete ca intrare expresii regulate.

Vom prezenta n cele ce urmeaz metode de generare a unui acceptor cu numr
finit de stri dintr-o expresie regulat sau generarea unei expresii regulate dintr-un
automat finit nedeterminist. Vom arta deci c expresiile regulate i mulimile
acceptate de automate finite nedeterministe sunt echivalente, deci c mulimile
regulate i expresiile regulate reprezint aceleai mulimi.




M2.U4.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice relaia dintre expresiile regulate i limbajele de tip 3;
- construiasc propriile automate finite pornind de la o expresie regult;
- programeze un algoritm de trecere de la o expresie regult, sub forma unui
arbore sintactic, la un automat finit nedeterminist..




Durata medie de parcurgere a unitii de nvare este de 3 ore.
M2.U4.3. Algoritm de construcie a unui automat finit pornind de la o expresie regulat

Pentru construciile ce vor urma, este necesar urmtoarea definiie.

Definiia 2.9.1 Un automat finit nedeterminist cu -tranziii este un ansamblu M=(Q, , , q
0
,
F) ale crui componente au aceleai semnificaii ca la un automat finit oarecare, doar c funcia
de tranziie este definit astfel:


- 72 -

{ } ( ) Q) ( P Q : .

Avem o -tranziie ntre dou configuraii w) (p, w) (q, dac i numai dac
) (p, qe ,
-
e e w Q, p . n reprezentarea grafic, o astfel de tranziie, practic fr citirea
benzii de intrare la acel pas, arat astfel:
Teorema 2.8.1.
Mulimea cuvintelor recunoscute de automatele finite cu -tranziii este aceiai cu
mulimea cuvintelor recunoscute de automatele finite nedeterministe.

Demonstratie
Se arat n [5] c automatele finite nedeterministe cu -tranziii sunt echivalente cu cele
fr -tranziii.

Vom da aici un exemplu de utilizare a homomorfismului pentru a da o alt
demonstraie [6] a acestei afirmaii.
Fie automatul finit cu -tranziii M = (Q, , , q
0
, F), unde considerm un simbol care
nu este n . Considerm acum automatul finit nedeterminist M, peste alfabetul {}:

M = (Q, {}, , q
0
, F) ,

Definim acum acceptarea pentru automatul cu cu -tranziii dup cum urmeaz: pentru
orice x din *, automatul M accept x dac exist y n ({})* astfel nct:
- M accept y relativ la definiia acceptrii unui automat finit nedeterminist;
- x este obinut din y prin tergerea tuturor apariiilor simbolului ; atunci x =
h(y), unde:
h: ({})* *,
este homomorfismul definit de :
h(a) = a pentru a e E
h() = .

n acest fel L(M) = h(L(M)). Dar mulimea L(M) este regulat i conform teoremei
2.9.11 va rezulta c i L(M) este o muime regulat.

Algoritmul de conversie a unei expresii regulate ntr-un AFN este urmtorul:
Algoritmul 2.8.1. Construcia unui automat finit nedeterminist cu -tranziii pentru o
expresie regulat.

Intrare: o expresie regulat r peste un alfabet , sub forma unui arbore sintactic.
Ieire: un AFN, N pentru limbajul L(r)



Figura 2.9.1
p q

- 73 -

Metod: construim N, parcurgnd arborele sintactic de jos n sus, aplicnd regulile (1) i
(2) i combinnd automatele obinute la fiecare nod, cu ajutorul regulei (3) unde:
pentru , construim automatul



cu i noua stare iniial i f noua stare final. Automatul va recunoate limbajul {}.
2. pentru ae, construim automatul



cu i noua stare iniial i f noua stare final. Automatul va recunoate limbajul {a}.
3. dac N(s) i N(t) sunt AFN pentru expresiile regulate s i t atunci:
a) Pentru expresia regulat s|t construim urmtorul automat N(s|t)









cu i noua stare iniial a lui N(s|t) i f noua stare final. Avem _tranziii de la i la fostele stri
iniiale ale lui N(s) i N(t) i _tranziii de la fostele stri finale ale lui N(s) i N(t) la f. Astfel,
automatul N(s|t) recunoate L(s) U L(t).
b) Pentru expresia regulat st construim urmtorul automat N(st)






unde i, starea iniial pentru N(s) a devenit starea iniial pentru N(st) i f starea final pentru
N(t) a devenit starea final pentru N(st). Starea final pentru N(s) este identificat cu starea
iniial pentru N(t) i noua stare creat n N(st) i pierde statutul de stare iniial sau final.
Astfel, automatul N(st) recunoate limbajul L(s)L(t).
c) Pentru expresia regulat s* construim automatul N(s*)










start



N(t)
N(s)

start
i f
a start
i f
start
i f
i
N(s) N(t)
f
start
i
N(s) f
- 74 -

cu i noua stare iniial i f noua stare final pentru N(s*). Strile iniial i final pentru N(s) i
pierd acest statut. Astfel automatul N(s*) recunoate limbajul L(s)*.


Exemplul 1 S folosim algoritmul 2.3. pentru a construi AFN N(r) din expresia
regulat r=(a|b)*abb. Arborele sintactic al expresiei regulate date este:

Parcurgnd acum arborele vom avea:

Pentru simbolul a avem:

Pentru simbolul b avem:
Pentru a|b avem:









Continnd acest proces, n final vom obine automatul urmtor:














a start
2
3
b
start
4
5




a
2 3
b
4 5
1
6 7
start
0
b
a

b



b
a
start
0 1
2
10
3
4 5
6
7 8
9




- 75 -

Toate automatele construite astfel sunt nedeterministe cu -tranziii.

Teorema 2.8.1
Fiind dat o expresie regulat R, exist un automat F cu numr finit de stri,
nedeterminist i cu -tranziii, care accept limbajul generat de R.
Demonstraie:
- se face prin inducie n raport cu fiecare din cele trei operaii ale expresiilor regulate.
Construcia formal se deduce din diagramele de stare definite mai sus.


Teorema 2.8.2
Fiind dat un automat cu numr finit de stri, determinist, care accept limbajul L, exist
o expresie regulat care reprezint limbajul L.

Demonstraie:
- se aplic algoritmul de transformare a automatului finit determinist ntr-o gramatic de tip
3, dup care se aplic acesteia algoritmul de determinare a expresiei regulate echivalente.



1. S se construiasc cte un automat finit pentru fiecare dintre limbajele
descrise de urmtoarele expresii regulate:
a. (11|0)*(00|1)*;
b. (1|01|001)*(0|00)*.


S ne reamintim...

Un automat finit nedeterminist cu -tranziii este un ansamblu M=(Q, , ,
q
0
, F) ale crui componente au aceleai semnificaii ca la un automat finit
oarecare, doar c funcia de tranziie este definit astfel:
{ } ( ) Q) ( P Q :
.
Teorema 2.8.1.
Mulimea cuvintelor recunoscute de automatele finite cu -tranziii
este aceiai cu mulimea cuvintelor recunoscute de automatele finite
nedeterministe.
Teorema 2.8.1
Fiind dat o expresie regulat R, exist un automat F cu numr finit de
stri, nedeterminist i cu -tranziii, care accept limbajul generat de R.
Teorema 2.8.2
Fiind dat un automat cu numr finit de stri, determinist, care accept
limbajul L, exist o expresie regulat care reprezint limbajul L.

- 76 -


Test de evaluare a cunotinelor
I. ntrebri.
1. Ce legtur exist ntre automatele finite i expresiile regulate?
2. De la ce pornete un algoritm de construcie a automatului finit
pornind de la o expresie regulat i ce tip de automate finite se
folosesc?

II. Exerciii propuse.
1. Se d expresia (00|11)00(0|1)*. S se construiasc AFN-ul
corespunzator.




M2.U4.4. Rezumat. n unitatea de nvare M2.U3. am prezentat trecerea de la o
gramatic de tip 3 la o expresie regulat. Asta ns nu demonstreaz echivalena
dintre expresii regulate i limbajele de tip 3.

Aceast unitate de nvare ntregete imaginea asupra expresiilor regulate fcnd
legatura dintre expresii regulate i automatele finite cu -tranziii, automate
echivalente cu automatele nedeterministe si deci cu cele deterministe. Algoritmul
prezentat pornete de la o expresie regulat sub forma unui arbore sintactic,
descompunere care este specific fazei de analiz sintactic a procesului de
compilare i care va fi tratat n cursul de tehnici de compilare.


- 77 -


Modulul 3. Proprieti ale limbajelor regulate
Cuprins
Introducere ........................................................................................................... .....77
Competene .......................................................................................................... .....77
U1. Proprieti de nchidere pentru limbaje regulate ............................................ .....78
U2. Lema de pompare pentru limbaje regulate.............................................................86


Introducere
Acest modul se refer la proprieti ale familiei limbajelor regulate care permit att
construcia de noi limbaje, gramatici, automate finite i expresii regulate at i
demonstrarea unui rezultat foarte interesant enunat n modulul 1 i anume: clasa
limbajele de tip 3 nu este egal cu clasa limbajelor independente de context.

Datorit rezultatelor prezentate n modulul 2 de unde rezult c limbajele regulate
pot fi private ca limbaje generate de gramatici de tip 3, recunoscute de automatele
finite sau reprezentate de expresii regulate, In demonstraii se poate folosi oricare
dintre aceste reprezentri.



Competene
La sfritul acestui modul studenii vor fi capabili s:
- Construiasc automate finite deterministe i nedeterministe pentru limbaje
compuse din mai multe alte limbaje;
- Construiasc gramatici generative de tip 3 nedeterministe pentru limbaje
compuse din mai multe alte limbaje;
- Construiasc expresii regulate nedeterministe pentru limbaje compuse din
mai multe alte limbaje;
- Implementeze algoritmii prezentai ntr-un limbaj de programare general

- 78 -


Unitatea de nvare M3.U1. Proprieti de nchidere pentru
limbaje regulate
Cuprins
M3.U1.1. Introducere ................................................................................................ 78
M3.U1.2. Obiectivele unitii de nvare .................................................................. 78
M3.U1.3. Proprieti de nchidere ale limbajelor regulate ..................................... .....78
M3.U1.4. Rezumat .................................................................................................... 85



M3.U1.1. Introducere
Vom studia o serie de proprieti ale limbajelor regulate dintre care o parte
important o formeaz propritile de nchidere ale familiei limbajelor regulate la
operaiile cu limbaje introduse n modulul 1. Pentru c limbajele de tip 3 pot fi
generate de gramatici de tip 3, recunoscute de automatele finite sau reprezentate de
expresii regulate, n demonstraii vom folosi oricare dintre aceste reprezentri.




M3.U1.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- Ineleag i s explice algoritmii de construie a unor gramatici, automate
finite sau expresii regulate pormind de la alte gramatici, automate finite sau
expresii regulate;
- Construiasc gramatici, automate finite sau expresii regulate pormind de la
alte gramatici, automate finite sau expresii regulate;;
- Foloseasc propritile n contruire de noi limbaje;
- Implementeze algoritmii prezentai ntr-un limbaj de programare general



Durata medie de parcurgere a unitii de nvare este de 3 ore.
M3.U1.3 Proprieti de nchidere pentru limbaje regulate

Teorema 2.9.1
Clasa limbajelor de tip 3 este nchis n raport cu reuniunea.

Demonstraie:
- 79 -

Demonstraia se poate face folosind automate finite nedeterministe sau folosind
gramaticile generative de tip 3. Alegem cea de a doua variant (prima poate constitui un
exerciiu).
Fie L
1
, L
2
dou limbaje de tip 3 generate de gramaticile G
1
, G
2
:

=
=
) P , S , V , (V G
) P , S , V , (V G
2 2
(2)
T
(2)
N 2
1 1
(1)
T
(1)
N 1
, unde
{ }
{ }

=
=
\ L ) L(G
\ L ) L(G
2 2
1 1

Presupunem c C =
(2)
N
(1)
N
V V (n caz contrar, se poate face o redenumire a variabilelor
astfel nct condiia s fie ndeplinit fiindc variabilele nu apar n cuvintele limbajului) i
construim:
{ } ) P , S , V V , S V (V G
3 3
(2)
T
(1)
T 3
(2)
N
(1)
N 3
= ,
unde
{ }

e e =
e
2 2 1 1 3 2 1 3
(2)
N
(1)
N 3
P S sau P S S P P P
V V S


Dac
2 1
L L e atunci la mulimea regulilor se adaug S
3
(adic dac
2 2 1 1
P S sau P S e e ).
Fie
1
L we . Atunci:
( )
|
.
|

\
|
e
|
.
|

\
|
e
3 3
*
G
*
G G
1 1
P S , w w S L w
3 1 1
.
Similar pentru
2
L we .
Dac w
*
G
3
,
3
S e , atunci w
*
G
1
sau w
*
G
2
dup cum ( )
*
(1)
T
(1)
N
V V e sau
( )
*
(2)
T
(2)
N
V V e .


Teorema 2.9.2
Clasa limbajelor de tip 3 este nchis n raport cu complementarea.

Demonstraie:
S artm aceast proprietate folosind automate finite deterministe.
Fie F) , q , , (Q, M
0
= un automat finit determinist, astfel nct T(M)=L.
Fie
1
_ i s o nou stare ( Q se ).
Construim {s}) F) \ (Q , q , , {s}, (Q M
0 1 1 1
= , unde:

e =
e e =
e e =
1 1
1 1
1
a pentru s, a) (s,
\ a Q, q pentru s, a) (q,
a Q, q pentru a), (q, a) (q,


- 80 -

M
1
este construit adugnd o stare capcan la mulimea strilor, stare n care automatul
intr pentru orice simbol care nu e n i rmne n ea indifferent de simbolul de intrare citit, iar
apoi schimbnd strile finale cu cele nefinale.
Un cuvnt din T(M) \
*
1
este sau un cuvnt din
*
de la care M nu ajunge n stare
final, deci care nu e acceptat de M, adic F \ Q x) , (q
0
e , sau este un cuvnt care conine
simboluri din \
1
i n momentul depistrii unui astfel de simbol M
1
intr n starea s n care
rmne pn analizeaz tot cuvntul.


Teorema 2.9.3
Clasa limbajelor de tip 3 este nchis n raport cu intersecia.

Demonstraie:
Varianta 1.
Folosim pentru aceast demonstraie una dintre relaiile lui DeMorgan, din teoria
mulimilor:
2 1
2 1
L L L L = ,
unde L reprezint complementara lui L.
Din teoremele 2.6.1 i 2.6.2 rezult deci c dac L
1
i L
2
sunt limbaje regulate, atunci i
limbajul
2 1
L L este regulat.
Sigur ca aceasta este o demonstraie elegant a teoremei dar ea nun e furnizeaz nici un
mijloc de a construe gramatica sau automatul pentru
2 1
L L cnd cunoatem gramaticile,
respectiv automatele, pentru L
1
i L
2
. Prezentm in continuare o astfel de demonstraie, care se
poate face construind un automat finit care s simuleze n paralel cele dou automate M
1
si M
2

astfel:

Varianta 2.
Fie ) F , q , , , (Q M
1 1 1 1 1 1
= i ) F , q , , , (Q M
2 2 2 2 2 2
= dou automate finite
deterministe. Ele accept mulimile regulate T(M
1
) = L
1
, respectiv T(M
2
) = L
2
.
Presupunem c C =
2 1
Q Q (dac nu, se face o simpl redenumire a strilor fiecruia
dintre ele, de exemplu prin renumerotare).
Putem presupune c
2 1
= = (dac nu, crem
2 1
= ).
Construim automatul finit nedeterminist M
3
care accept intersecia
2 1
L L , dup cum
urmeaz:
M
3
= (Q
1
x Q
2
, E, o
3
, [q
0
,q
1
], F
1
x F
2
), unde o
3
este

definit de :

o
3
([q,p], a) = [r,t] o
1
(p,a) = r i o
2
(q,a) = t

Evident c automatul M
3
intr ntr-o sare final din F
1
x F
2
dac i M
1
intr intr-o stare final din
F
1
i M
2
intr intr-o stare final din F
2
.


- 81 -

Din teoremele 2.6.1, 2.6.2 i 2.6.3 rezult c:


Teorema 2.9.4
Clasa mulimilor regulate este o algebr boolean.

Teorema 2.9.5
Clasa mulimilor regulate este nchis n raport cu operaia de oglindire.

Demonstraie:
Fie un automat finit F) , q , , (Q, M
0
= . Considerm mulimea regulat L=T(M).
Definim automatul finit nedeterminist M astfel nct s funcioneze invers fa de M:
) F , q , , }, q { (Q M
0 0
' ' ' ' = '
, unde:
} {q F
0
= ' dac T(M) e
sau } q , {q F
0 0
' = ' dac T(M) e
avnd tranziiile:

= ' e
e ' ' e
q a) (p, dac a) (q, p
F a) (p, dac a) , q ( p
0

Este uor de demonstrat acum c L
~
) M T( = ' (vezi i definiia oglindirii unui limbaj, n
capitolul I, paragraful 1.3).


Teorema 2.9.6
Clasa mulimilor regulate este nchis n raport cu operaia de concatenare.

Demonstraie:
Fie ) F , q , , , (Q M
1 1 1 1 1 1
= i ) F , q , , , (Q M
2 2 2 2 2 2
= dou automate finite
deterministe. Ele accept mulimile regulate T(M
1
), respectiv T(M
2
).
Presupunem c C =
2 1
Q Q (dac nu, se face o simpl redenumire a strilor fiecruia
dintre ele, de exemplu prin renumerotare).
Putem presupune c
2 1
= = (dac nu, crem
2 1
= ).
Construim automatul finit nedeterminist M
3
care accept concatenarea ) )T(M T(M
2 1
dup cum
urmeaz:
) F , q , , , Q (Q M
3 1 3 2 1 3
=
cu

= e e
= e e _
= e e e
p a) (q, i Q p q, dac , a) (q, p
p a) (q, i F p , Q q dac , a) (q, p} , {q
p a) (q, i F \ Q p , Q q dac , a) (q, p
2 2 3
1 1 1 3 2
1 1 1 1 3

- 82 -

i

e
e
=
2 1 2
2 2
3
L dac , F F
L dac , F
F


Automatul finit M
3
astfel construit va simula pe M
1
pn cnd acesta va intra ntr-o stare
final, moment n care M
3
poate intra n starea iniial a lui M
2
sau poate continua s simuleze
M
1
. Atunci cnd M
3
ajunge n starea iniial a lui M
2
, l va simula pe acesta din urm pn la
oprire.
Se demonstreaz uor c ) T(M ) T(M ) T(M
2 1 3
= .


Teorema 2.9.7
Clasa mulimilor regulate este nchis n raport cu nchiderea Kleene.
Demonstraie:

Fie F) , q , , (Q, M
0
= un automat finit determinist acceptnd limbajul regulat
L=T(M).
Construim automatul finit nedeterminist:
}) q { F , q , , }, q { (Q M
0 0 0
' ' ' ' = '

= ' e =
= ' e =
= ' ' e =
= ' ' e =
{p} a) (q, atunci F, p a) (q, Dac
} q {p, a) (q, atunci F, p a) (q, Dac
{p} a) , q ( atunci F, p a) , (q Dac
} q {p, a) , q ( atunci F, p a) , (q Dac
0
0 0
0 0 0

Se adaug astfel o nou stare iniial
0
q'
pentru c, dac trebuie s aparin lui T(M)
*
,
nu putem fora q
0
s aparin lui F
3
cci M ar putea intra n q
0
i pe parcursul acceptrii unui
cuvnt cnd F q
0
e .
a) Dac
*
L x e atunci:
x = i
3 0 0
F q ) , q ( e ' = '

sau
x=x
1
x
2
x
n
cu L x
i
e , iar n acest caz sunt posibile situaiile:
a.1) (
0
q'
,x
1
x
2
x
n
)
*
(p, x
2
x
n
), F pe (pentru c L x
1
e ) dar n continuare nu e sigur
c automatul va conduce la acceptare (pornind din starea p cu irul rmas).
Alegem atunci a doua variant:

a.2) (
0
q'
,x
1
x
2
x
n
)
*
(q
0
,x
2
x
n
)
*
(q
0
,x
3
x
n
)
*

*
(q
0
,x
n
) (r,) unde F r e .
Aadar ) M T( x ' e .

b) Dac ) M T( x ' e i x=a
1
a
2
a
m
, atunci exist strile q
1
,q
2
,,q
m
astfel nct:
- 83 -

e
e
' ' e
' ' e
+ +
Q q ,..., q , q i
F q
) a , q ( q
) a , q ( q
m 2 1
m
1 i i 1 i
1 0 1

Atunci, pentru un anume i avem:
sau

e
=
+
+
F ) a , (q
q q
1 i i
0 1 i
sau
1 i 1 i i
q ) a , (q
+ +
= .

Deci x poate fi scris n forma x=x
1
x
2
x
n
, unde L x
j
e ( F ) x , (q
j 0
e ).


Teorema 2.9.8
Clasa mulimilor regulate este nchis relativ la substituia cu mulimi regulate.

Demonstraie:
Fie
-
_ R o mulime regulat i pentru fiecare a e fie
-
_ R
a
o mulime
regulat.
Fie
-
: f o substituie regulat, f(a)=R
a
.
Pentru ca R i R
a
, pentru fiecare a din R, sunt mulimi regulate rezult c exist cte o
expresie regulat care s le reprezinte, expresii care conin un numr finit de opratori *, . ,sau |.
Se observ ca substituia unei reuniuni, a unei concatenri sau a unui produs Kleene este
reuniunea, concatenarea, respectiv produsul Kleene al substituiilor:

=
=
=
- -
) f(R f(R)
) f(R ) f(R ) R f(R
) f(R ) f(R ) R f(R
2 1 2 1
2 1 2 1


Dar reuniunea concatenarea i respectiv produsul Kleene sunt reprezentate de cei trei operatori
ai unei expresii regulate: *, . , | . Deci i pentru dou expresii regulate e
1
si e
2
vom avea:

=
=
=
- -
) f(e f(e)
) f(e ) f(e ) e f(e
) f(e | ) f(e ) e | f(e
2 1 2 1
2 1 2 1

Folosind inducia relativ la numrul de operatori folosii de expresia regulat rezult c: dac r
este o expresie regulat atunci f(r) este tot o expresie regulat, ceea ce trebuia demonstrat.


n modulul 1 s-a definit operaia de homomorfism. S introducem i inversa acesteia:

Definiia 2.9.9 Definim homomorfismul invers astfel:

- 84 -

{ }
{ }
1 h(a)
w h(x) x (w) h
w h(x) x (w) h
L h(x) x (L) h
1
1
1
=
= =
= =
e =



Teorema 2.9.10
Clasa mulimilor regulate este nchis n raport cu homomorfismul i cu homomorfismul
invers.

Demonstraie:
Deoarece h(a) e un caz particular de substituie, Teorema 2.9.10 justific prima cerin a
acestei teoreme.
Fie L un limbaj de tip 3 i M automatul finit care recunoate L = T(M).
Construim un automat finit M pentru h
-1
(L) care simuleaz n controlul su finit
funcionarea lui M corespunztor cu Fig.2.9.1.


Automatul M va fi un automat cu -tranziii care citete cte un simbol a
i
de pe banda de
intrare i genereaz pentru simbolul de intrare citi cuvntul h(a
i
) ntr-o zon de memorie din
controlul su finit. Apoi efectueaz o serie de -tranziii n irul de intrare, adic nu mai citete
nici un simbol de intrare, i n acest timp simuleaz aciunea automatului M n controlul su finit.
Cnd M termin de citit h(a
i
) i starea sa este o stare final (adic M accept h(a
i
)) atunci M ii
golete zona sa de memorie n care reprezenta h(a
i
) i citete un nou simbol de intrare(aceast
gilire se poate face i pe parcurs reinnd n zona de memorie numai partea necitit din h(a
i
)). M
continu de aceast manier pn cnd nu mai are nici un simbol de intrare de citit i zona sa de
memorie este goal. Evident M termin de citit irul su de intrare numai dac M a acceptat
fiecare h(a
i
) pentru i de la 1 la n.
a
0
a
1
a
i
a
n







Fig.2.9.1

CF pt.M
h(a
i
)
- 85 -

Pentru formalizare vom considera fiecare stare a lui M de forma [,q]unde este partea
necitit din h(a
i
) iar q este o stare a lui M. Funcia de tranziie, o, a lui M se definete astfel:
o([,q],a) = [h(a),q] M genereaz h(a), n memoria lui
o([b,q], ) = [, o(b,q)] M simulez, funcionarea lui M pe un sufix al lui h(a), n
controlul su finit.


S ne reamintim...

Limbajele regule formeaz o familie de limbaje care este nchis la
urmtoarele operaii:
- Reuniune,
- Complementar,
- Intersecie,
- Produs Kleene,
- Oglindire,
- Substituie,
- Homomorfism,
- Homohorfism invers.



Test de evaluare a cunotinelor
I. ntrebri.
1. Precizai 4 dintre proprietile limbajelor de tip 3 i demonstrai 2
dintre ele.
II. Exerciii propuse.
1. Artai c urmtoarele limbaje sunt regulate:
L
1
= {awa | we{a,b}*};
L
2
= {aw
1
aaw
2
a | w
1
,w
2
e{a,b}*};




M3.U1.4 Rezumat
Unitatea de nvare prezint proprietile de nchidere ale familiei limbajelor
regulate. . Pentru c limbajele de tip 3 pot fi generate de gramatici de tip 3,
recunoscute de automatele finite sau reprezentate de expresii regulate, n
demonstraii s-au folosit una sau alta dintre aceste reprezentri.

- 86 -

Unitatea de nvare M3.U2. Lema de pompare pentru limbaje
regulate
Cuprins
M3.U2.1. Introducere ............................................................................................. 86
M3.U2.2. Obiectivele unitii de nvare ............................................................... 86
M3.U2.3. Proprieti ale limbajelor regulate ........................................................... 86
M3.U2.4. Lema de pompare ................................................................................... 88
M3.U2.5. Rezumat......................................................................................................90




M3.U2.1. Introducere

Aceast unitate de nvare prezint cteva dintre proprietile limbajelor regulate,
care nu sunt propriti de nchidere. Una dintre cele mai importante este lema de
pompare, care d o caracterizare a mulimilor regulate i anume fiind dat o
mulime i un cuvnt suficient de lung, se poate gsi un subcuvnt nevid al acestui
cuvnt care se poate repeta de oricte ori astfel nct cuvntul obinut prin repetare
rmne n mulimea regulat dat.




M3.U2.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- recunoasc limbajele de tip 3 folosind proprieti ale acestora;
- neleag i s explice lema de pompare;
- recunoasc i s demonstreze c anumite limbaje nu sunt de tip 3, folosind
lema de pompare;




Durata medie de parcurgere a unitii de nvare este de 3 ore.

M3.U2.3. Proprieti ale limbajelor regulate

Teorema 2.9.5
Toate mulimile finite sunt limbaje de tip 3.

Demonstraie:
- 87 -

Dac L este o mulime finit de cuvinte, atunci } w ,..., {w L
n 1
= .
Artm nti c pentru fiecare cuvnt L w
i
e , exist G
i
o gramatic de tip 3, astfel nct
{ }
i i
w ) L(G = . Fie w
i
= a
1
a
2
. . . a
n
. Atunci mulimea de reguli:
S a
1
A
1

A
1
a
2
A
2

. . . . . . . . . . . . .
A
n-2
a
n-1
A
n-1

A
n-1
a
n
genereaz cuvntul w
i
adic:

i
*
G
w S
3


Deci limbajele { }
n 1, i i
w
=
sunt regulate.
Cum L este un limbaj finit, { }

n
1 i
i
w L
=
= , folosind Teorema 2.6.1 rezult c L este un limbaj de
tip 3.
O demonstraie echivalent se poate face i construind un automat finit M, astfel nct
T(M)=L.


Teorema 2.9.9
Clasa mulimilor regulate este cea mai mic clas coninnd toate mulimile finite i fiind
nchis n raport cu operaiile de reuniune, concatenare i nchidere Kleene.

Demonstraie:
n baza teoremelor anterioare, este suficient acum s demonstrm c cea mai mic clas
M coninnd toate mulimile finite i nchis la reuniune, concatenare i nchidere Kleene
conine clasa mulimilor regulate.
Fie L
1
mulimea acceptat de un anume automat finit,
{ } F) , q , , , q ,..., q ( M
1 n 1
=
Fie
(k)
ij
R mulimea tuturor irurilor x astfel nct
j i
q x) , (q = i dac
) y x, y i (desigur x lui al prefix e nu care y pentru q y) , (q
l i
= = = , atunci k l s .
Deci
(k)
ij
R este mulimea tuturor irurilor de intrare x care conduc automatul finit din
starea q
i
n starea q
j
fr a trece printr-o stare q
l
cu l mai mare dect k. Se observ c i i j pot fi
mai mari dect k.
Putem defini recursiv aceste mulimi, astfel:

= =
=
} q a) , (q {a R
R R ) (R R R
j i
(0)
ij
1) - (k
ij
1) - (k
kj
* 1) - (k
kk
1) - (k
ik
(k)
ij


n definirea recursiv a lui
(k)
ij
R s-a folosit faptul c intrrile care l fac pe M s treac din q
i

n q
j
fr a trece printr-o stare q
l
cu l > k sunt:
- 88 -

- sau n
1) - (k
ij
R , adic trec automatul M din q
i
n q
j
fr a trece printr-o stare de indice mai
mare dect k-1,
- sau trec din starea i n k fr a trece prin stri de indice mai mare dect k-1 i apoi din
starea k n j fr a trece prin stri de indice mai mare dect k-1.
S artm c ( )
n k 0
(k)
ij
R
s s
este o clas de mulimi inclus n cea mai mic clas care conine
mulimile regulate. Vom face acest lucru prin inducie matematic n raport cu k.
Pentru k=0,
(0)
ij j i
(0)
ij
R } q a) , (q {a R = = este o mulime finit, deci i regulat (v.
Teorema 2.6.5)
M _
(0)
ij
R
.
Presupunnd adevrat afirmaia pentru k (o notm P(k)), verificm P(k+1):

_
=
+
M
(k)
ij
(k)
kj
(k)
kk
(k)
ik
(k)
ij
(k)
kj
* (k)
kk
(k)
ik
1) (k
ij
R , R , R , R
R R ) (R R R


dar M este nchis la produs Kleene, concatenare i reuniune,
M _
(k)
ij
R , deci inducia se ncheie aici.
Revenind la limbajul L
1
considerat iniial, acesta se poate scrie sub forma:
M _ =
e

F q
n
1j 1
j
R L
.
n concluzie, L
1
este inclus n cea mai mic mulime care conine toate mulimile finite i
e nchis la reuniune, concatenare i produs Kleene.
Implicaia invers este evident i deci teorema este demonstrat.


Consecina 2.9.1 Orice expresie format dintr-un ir finit de simboluri peste i un numr finit
de operatori - , , cu paranteze pentru a determina ordinea operaiilor, este o mulime regulat.
n plus, rezult c orice mulime acceptat de un automat finit determinist este de aceast
form. Se obine i de aici un mod convenabil de a nota mulimile regulate i anume prin
intermediul expresiilor regulate.
Astfel urmtoarele mulimi sunt reulate:
a) mulimea cuvintelor care se pot forma cu simbolurile a,b,c se poate scrie sub forma
{ }
-
c b, a,
.
b) mulimea cuvintelor formate din simbolurile 0 i 1, avnd trei 0 consecutivi, se poate scrie sub
forma: { } { }
- -
0,1 00 0 0,1 .

M3.U2.4 Lema de pompare pentru limbaje regulate
Aceast lem d o caracterizare a mulimii regulate i anume fiind dat o mulime i un
cuvnt suficient de lung, se poate gsi un subcuvnt nevid al acestui cuvnt care se poate repeta
de oricte ori astfel nct cuvntul obinut prin repetare rmne n mulimea regulat dat.

Teorema 2.5.1
Fie L o mulime regulat . Atunci exist o constant p , astfel nct dac un cuvnt weL i
|w|>p atunci w poate fi scris w=xyz, unde:
- 89 -

- 0 < |y| sp
- xy
i
zeL, i>0.

Demonstraie:
Fie M=(Q,,o,q
0
,F) un automat finit cu n stri astfel nct T(M)=L.
Fie p=n.
Dac weT(M) i w> n, atunci considerm configuraiile succesive ale lui M, n acceptarea
lui w;
- cel puin n+1 configuraii, deci trebuie s fie cel puin dou stri identice p = q
i
= q
j
astfel
nct:
w) , (q
0

*
) w , (q
i
'

*

z) , (q
j

*
) (r,
De aici rezult c w=xw i w=yz i deci w=xyz.
Fie j cel mai mic indice pentru care q
i
= q
j
de unde i 0 < |y| sn.
Dar atunci :
z) xy , (q
i
0

*
z) y (p,
i

*
z) y (p,
1 - i

*

*
z) (p,
*
) (r,
Deci xy
i
zeT(M), i>0.

Pentru i = 0 :
xz) , (q
0

*
z) (p,
*
) (r, .


Consecina 2.5.1. Clasa limbajelor de tip 3 este o subclas proprie a clasei limbajelor
independente de context.

Demonstraie.
Din ierarhia lui Chomsky rezult ca regulile de tip 3 sunt i de tip 2, deci familia limbajelor
regulate este inclus n familia limbajelor de tip 2 adic independente de context
Pentru ca lema de pompare d o caracterizare a mulimilor regulate ea poate fi folosit i
pentru a demonstra c limbajele care nu respect lema de pompare nu sunt regulate.
Vom arta c limbajul L= { a
i
b
i
| i>1 }, pentru care am artat c exist o gramatic
independent de context care sa-l genereze, nu este o mulime regulat.
Presupunem c -p astfel nct pentru weL : |w|> p, w=xyz, |y|)s p i w=xy
i
zeL.
- dac y=a
j
cu jsi, atunci a
i+j
b
i
eT(M) , ceeace contrazice structura limbajului deci este
imposibil;
- dac y=b
j
, atunci a
i
b
j+i
eT(M) ceeace contrazice din nou structura limbajului deci este
imposibil;
- dac y=a
j
b
k
cu jsi i ksi, atunci a
i
b
k
a
j
b
i
eT(M) din nou imposibil
L={ a
i
b
i
| i>1 } nu e o mulime regulat pentru c nu respect lema de pompare.
Deci exist un limbaj ,L, care nu este de tip 3 dar este de tip 2, deci clasa limbajelor regulate
este o subclas proprie a clasei limbajelor independente de context.


- 90 -


S ne reamintim...

Lema de pompare d o caracterizare a mulimilor regulate i anume
dac intr-o mulime regulat exist un cuvnt suficient de lung
atunci mulimea este infinit.

Toate mulimile finite sunt mulimi regulate.

Clasa mulimilor regulate este cea mai mic clas coninnd toate
mulimile finite i fiind nchis n raport cu operaiile de reuniune,
concatenare i nchidere Kleene.


Test de evaluare a cunotinelor
I. ntrebri.
1. Care este lema de pompare pentru limbajele regulate?
II. Exerciii propuse.
1. S se demonstreze c urmtoarele limbaje nu sunt regulate:
L
1
= {wcw | we{a,b}*};
L
2
= {ww | we{a,b}*}.



M3.U2.5 Rezumat
Aceast unitate de nvare prezint cteva dintre proprietile limbajelor regulate,
care nu sunt proprieti de nchidere. Una dintre cele mai importante este lema de
pompare, care d o caracterizare a mulimilor regulate.
Conform lemei de pompare pentru mulimi regulate, fiind dat o mulime
regulat i un cuvnt suficient de lung, se poate gsi un subcuvnt nevid al acestui
cuvnt care se poate repeta de oricte ori astfel nct cuvntul obinut prin repetare
rmne n mulimea regulat dat.
Aceast proprietate are multe aplicaii printre care i aceea c ne permite s
demonstrm c anumite limbaje nu sunt regulate, prin faptul c nu respect aceast
lem.




- 91 -








Tem de control I
1. S se construiasc o gramatic de tip 3 i un automat finit care s
genereze, respectiv s accepte limbajul:
L = {0
n
1
m
| n0, m1} {1
n
0
m
| n0, m1}
2. Fie automatul nedeterminist de mai jos:

S se construiasc un automat finit determinist, A, echivalent cu
automatul dat i s se construiasc apoi o gramatica care sa
genereze T(A).
3. S se minimizeze automatul M = ({s
1
, s
2
, s
3
, s
4
, s
5
, s
6
},{0,1}, , s
1
,
{s
3
, s
4
, s
5
}), cu urmtoarea tabel de tranziii:


4. Pentru expresia regulat E
1
=(0|1)*00(0|1)* s se precizeze limbajul
asociat:
5. Se d gramatica G=({P,Q,R},{0,1},P, W), unde mulimea de reguli W =
{PaP|bR, RbQ|aP, Q aQ|1Q|0}. S se gseasc expresia regulat
corespunztoare acestei gramatici.
6. S se construiasc o expresie regulat pentru mulimea cuvintelor peste
alfabetul {0,1}, care se termin n 111.
7. S se construiasc un automat finit pentru limbajul descris de urmtoarea
expresie regulat:
(11|0)*(00|1)*;

- 92 -


Modulul 4. Limbaje independente de context
Cuprins
Introducere .............................................................................................................. .92
Competene ............................................................................................................. .92
U1. Arbori de derivaie pentru gramatici independente de context ........................... .93
U2. Simplificarea gramaticilor independente de context.i forme normale ............... .99
U3. Lema de pompare pentru limbaje independente de contex ............................... .115
U4. Automate push-down i legtura lor cu gramaticile independente de context ... .121
U5. Proprieti de nchidere ale familiei limbajelor de tip 2 .................................... .135



Introducere
Modulul 4 este dedicat limbajelor de tip 2 din ierarhia lui Chomsky, numite
limbaje independente de context. Se definete noiunea de arbore de derivaie,
noiune foarte important n teoria compilrii, iar apoi se introduc formele
normale: Chomsky i Greibach, pentru gramaticile independente de context. Se
introduce aici un nou tip de automat, numit automat push-down nedeterminist, i
se demonstreaz c acest automat recunoate limbajele independente de context.

Este prezentat i automatul push-down determinist, care recunoate o subclas
proprie a limbajelor indpendente de context i anume clasa limbajelor
independente de context deterministe.

Se studiaz proprietile limbajelor independente de context printre care i o lem
de pompare pentru limbajele independente de context.


Competene
La sfritul acestui modul studenii vor fi capabili s:
- Foloseasc noiunile definite n descrierea limbajelor formale;
- Construiasc gramatici generative i analitice pentru diferite limbaje;
- Construiasc algoritmi normali n sens Markov cu o intrare i o ieire
fixat.
- implementeze algoritmii prezentai ntr-un limbaj de programare general

- 93 -


Unitatea de nvare M4.U1. Arbori de derivaie pentru gramatici
independente de context
Cuprins
M4.U1.1. Introducere ............................................................................................. 93
M4.U1.2. Obiectivele unitii de nvare ............................................................... 93
M4.U1.3. Arbori de derivaie pentru gramaticile I.D.C. .......................................... 93
M4.U1.5. Rezumat......................................................................................................98




M4.U1.1. Introducere
Limbajele independente de context sunt generate de gramaticile de tip 2 din
ierarhia lui Chomsky, adic gramatici de forma: G = ( V
N
, V
T
, S, P),unde
mulimea regulilor P este de forma: A,, cu A variabil din V
N
, iar un ir
format din variabile i terminale, adic e (V
N
V
T
)*.

Vom prezenta o metod vizual de descriere a oricrei derivaii ntr-o gramatic
I.D.C. sub forma unui arbore de derivaie.




M4.U1.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice algoritmii de construcie ai unui arbore de derivaie
pornind de la o gramatic independent de context;
- transforme un arbore de derivaie n alt arbore de derivaie nlocuind un
subarbore al arborelui iniial prin alt subarbore.



Durata medie de parcurgere a unitii de nvare este de 2 ore.
M4.U1.3 Arbori de derivaie pentru gramaticile I.D.C.

Definiia 3.1.1 Un graf de tip arbore este un graf cu urmtoarele proprieti:
i) exist un nod n care nu intr nici un arc, numit rdcin;
ii) n oricare alt nod intr exact un arc;
iii) exist un drum de la rdcin ctre oricare nod (graf conex);
iv) nodurile din care nu pleac nici un arc se numesc frunze.
Definiia 3.1.2 Fie G= ( V
N
,V
T
,S,P) o gramatic I.D.C. Un arbore de derivaie n G este un
arbore n care:
i) fiecare nod este etichetat cu un simbol din
T N
V V
;
ii) eticheta rdcinii este S;
iii) dac nodul A are cel puin un descendent atunci el are o etichet din V
N
;
- 94 -

iv) dac A
1
, A
2
, A
3
,.,A
k
sunt toi descendenii direci ai lui A n ordine de la stnga
spre dreapta atunci : AA
1
A
2
A
k
este o regul din P.


Exemplul 1 Fie G = ({S,A,B},{a,b},S,P), unde mulimea P conine regulile:

bS B
aS A
b S
bBA S
a S
aAB S









Pentru aceast gramatic, un arbore de derivaie avnd frunzele a,a,b,b i a este
cel din figura 3.1.1.
Definiia 3.1.3 Se numete rezultat al unui arbore cuvntul format din etichetele frunzelor
citite de la stnga spre dreapta.

Conform acestei definiii rezultatul arborelui de derivaie din figura 3.1.1. este cuvntul
aabba.
Vom arta mai trziu c dac este rezultatul unui arbore de derivaie, atunci:
S
*
G
.

Definiia 3.1.4 Se numete subarbore al unui arbore graful format dintr-un nod mpreun cu
toi descendenii si.

Exemplul 2 Fie arborele de derivaie de mai jos. Atunci exist derivaia A
*
G
ab.





AA
1
A
2
A
k

A
A
1
A
2
A
k











Fig. 3.1.1.

Figura 3.1.1.
S
a A B
a S b S
b a
( A
*
G
ab)








Figura 3.1.2.
A
a S
b
- 95 -

Teorema 3.1.1
Fie G =(V
N
,V
T
,A,P ) o gramatic I.D.C. Atunci pentru = , (S
G
-
) exist un
arbore de derivaie n gramatica G al crui rezultat este .
Demonstraie:
Vom demonstra c dac G
A
=(V
N
,V
T
,A,P) atunci pentru orice A n V
N
avem (A
-

A
G
)
dac i numai dac exist un subarbore cu rdcina A al crui rezultat este .
Se observ c regulile din P sunt aceleai pentru orice gramatic G
A
, deci
( A
A
G
-
) (A
B
G
-
)
i, pentru c G = G
S
,

avem
(A
A
G
-
) (A
G
-
).

a) Presupunem c este rezultatul unui arbore de derivare n gramatica G
A
; demonstrm prin
inducie, n raport cu numrul de noduri care nu sunt frunze, c A
-

A
G
:
a
1
) Dac exist un singur nod care nu e frunz atunci arborele arat ca n
figura 3.1.3.
Rezult c =A
1
A
2
A
k
i, din definiia arborelui de derivaie, avem A e P, deci
A
-
.

a
2
) Presupunem c este rezultatul unui arbore A cu n noduri care nu sunt frunze i
c rezultatul anterior este valabil pentru arbori cu cel mult n-1 noduri care nu sunt frunze.
Considerm descendenii direci ai lui A: A
1
,A
2
,,A
k
, deci (AA
1
.A
k
eP).
Dac A
i
nu e o frunz, rezult c A
i
este o variabil, rdcin a unui subarbore cu
rezultatul
i
i cu cel mult n-1 noduri care nu sunt frunze.
Dac A
i
este o frunz, punem A
i
=
i
.
Se observ c dac j < i atunci nodul A
j
i toi descendenii si se afl la stnga lui A
i
i a
tuturor descendenilor si.
Rezult c =
1

k
.
Deoarece din ipoteza induciei
i
este rezultatul unui subarbore cu rdcina A
i
i cu
cel mult n-1 noduri care nu sunt frunze, rezult c (A
i

*
G

i
).










Figura 3.1.3.

A
A
1
A
2
A
k
- 96 -

Deci A
G
A
1
A
2
A
k

-

G
...
k 2 1
= ,
adic (A
*
G
).
b) Presupunem acum c A
A
G
-
. Vom arta c exist un arbore de derivaie cu rezultatul n
G
A
, prin inducie relativ la numrul de pai ai derivaiei.
b
1
) Dac A
A
G
ntr-un singur pas rezult c ( A e P ) i dac =A
1
A
2
A
k

rezult din definiia arborelui de derivaie c exist un arbore cu rezultatul :
b
2
) Presupunem c A
A
G
-
n n pai i c pentru orice derivaie a lui cu numrul de
pai mai mic dect n exist o derivaie cu rezultatul . Fie primul pas al derivaiei A
*
de
forma AA
1
A
2
A
k
. Atunci orice simbol al lui este sau unul dintre A
i
sau derivat dintr-un
A
i
n cel mult n-1 pai. Deci, exist subarborii T
1
,T
2
,..,T
k
de rdcini A
1
,A
2
,,A
k
,

cu rezultatele
k 2 1
,..., , atunci cnd A
i
i
G

A
-
.
Deci dac la arborele din Figura 3.1.4 adugm subarborii T
i
, obinem:
Rezult c arborele din Figura 3.1.5 (n care cte un arbore T
j
poate fi vid, dac A
j
eV
T
) are
rezultatul format din rezultatele subarborilor T
1
, ,T
k
n ordine de la stnga ....
k 2 1
= .



1. Fie gramatica G=({S, A, B},{a, b}, S, P) cu mulimea produciilor P:
S SS








Figura 3.1.4
A
A
1
A
2
A
k
Figura 3.1.5
A
A
1
A
2
A
k
T
1
T
2
T
k

1

2

k


- 97 -

S aSb
S ab
S se construiasc arbori de derivare, dac este posibil, pentru cuvintele:
x1 = a2b2a2b2,
x2 = aababb,
x3 = babab,
x4 = aabbab.
Dac nu este posibil s se justifice de ce.


S ne reamintim...

Fie G= ( V
N
,V
T
,S,P) o gramatic I.D.C. Un arbore de derivaie n G este un
arbore n care:
i) fiecare nod este etichetat cu un simbol din
T N
V V
;
ii) eticheta rdcinii este S;
iii) dac nodul A are cel puin un descendent atunci el are o etichet din
V
N
;
iv) dac A
1
, A
2
, A
3
,.,A
k
sunt toi descendenii direci ai lui A n ordine
de la stnga spre dreapta atunci : AA
1
A
2
A
k
este o regul din P.
Teorema 3.1.1
Fie G =(V
N
,V
T
,A,P ) o gramatic I.D.C. Atunci pentru = ,
(S
G
-
) exist un arbore de derivaie n gramatica G al crui
rezultat este .


Test de evaluare a cunotinelor
I. ntrebri.
1. Ce este un arbore de derivare ntr-o gramatic IDC G?
II. Exerciii propuse.
2. Se consider arborele din figura urmtoare. S se construiasc o
gramatic IDC G, astfel nct arborele din imagine s fie arbore de
derivaie n G.

S
a

a
b
S
S
S


- 98 -


M4.U1.4 Rezumat
Unitatea de nvare prezint un mod vizual de reprezentare al unei derivaii ntr-o
gramatic ndependent de context, arborele de derivaie. Obinerea acestui arbore
de derivaie este rezultatul esenial al fazei de analiz sintactic din construcia
compilatoarelor. n plus arborele de derivaie este folosit pentru de monstrarea
multor rezultate privind limbajele independente de context.

- 99 -

Unitatea de nvare M4.U2. Simplificarea gramaticilor
independente de context i forme normale

Cuprins
M4.U2.1. Introducere ............................................................................................. 99
M4.U2.2. Obiectivele unitii de nvare ............................................................... 99
M4.U2.3. Simplificarea gramaticilor I.D.C. ............................................................ 99
M4.U2.4. Forme normale pentru gramatici I.D.C. . .............................................. 105
M4.U2.5. Rezumat. . ............................................................................................ 114



M4.U2.1. Introducere
Regulile independente de context sunt de forma A,, cu A variabil din V
N
, iar
un ir format din variabile i terminale, adic e (V
N
V
T
)*. Pentru c
membrul drept al regulei de rescriere poate avea orice form este greu de spus
ceva relativ la numrul de pai i lungimea unui cuvnt dintr-o derivaie.

Se pot ns gasi alte forme de gramatici echivalente care pot fi folosite foarte bine
n demonstraii sau n construcii de limbaje independente de context. Astfel de
forme sunt forma normala Chomsky i forma normal Greibach care se obin
printr-o serie de transformri pornind de la o gramatic general independent de
context.



M4.U2.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice algoritmii de simplificare ai gramaticilor
independente de context;
- neleag i s explice algoritmii de de construcie ai formelor normale
pentru gramatici independente de context;
- s foloseasca algoritmii anteriori n construirea unor gramatici n form
normala Chomsky sau Greibach.



Durata medie de parcurgere a unitii de nvare este de 3-4 ore.
M4.U2.3 Simplificarea gramaticilor I.D.C.

Vom arta nti cum se poate verifica dac un limbaj generat de o gramatic I.D.C.
este vid sau nu.

Teorema 3.2.1
Exist un algoritm pentru a determina dac limbajul generat de o gramatic I.D.C. este
vid sau nu.
Demonstraie:
- 100 -

Fie G=(V
N
,V
T
,S,P) o gramatic I.D.C.; presupunem c w S
*
pentru un anume
*
T
V we .
Considerm un arbore de derivaie al lui w n gramatica G. Presupunem c exist un
drum n arbore cu dou noduri n
1
i n
2
cu aceeai etichet A i cu n
2
descendentul lui n
1
; fie w
1

i w
2
rezultatele arborilor n
1
respectiv n
2
.
Astfel, avem derivaiile
1
*
w A i
2
*
w A , iar w
2
este un subcuvnt al lui w
1
.
Rezult c w poate fi descompus n forma w=w
3
w
1
w
4
, unde w
3
sau w
4
pot fi .
Dac nlocuim subarborele n
1
cu n
2
, obinem:
L(G) w w w S
4 2 3
G
*
e .
n aceast derivaie am eliminat cel puin un nod n
1
cu eticheta A. Procesul se poate
repeta, pn cnd n arbore nu mai exist nici un drum cu dou noduri cu aceeai etichet.
Acest proces este finit, deoarece la fiecare pas se elimin cel puin un nod.
Considerm acum ultimul arbore obinut. Dac gramatica G are m variabile, atunci n
arborele de derivaie nu poate exista un drum de lungime mai mare dect m, pentru c n caz
contrar un nod s-ar repeta.
n concluzie, dac gramatica G genereaz vreun cuvnt, atunci exist o derivaie a unui
cuvnt a crui arbore nu conine nici un drum de lungime mai mare dect m. Rezult
urmtorul algoritm:
Formm o mulime M de arbori corespunztori derivaiilor din G, dup cum urmeaz:
arborele format din nodul S aparine mulimii M;
dac arborele AeM, se adaug arborele obinut din A prin aplicarea unei singure reguli
dac sunt respectate urmtoarele dou condiii:
arborele obinut nu este n M;
arborele obinut nu are drumuri de lungime mai mare dect m.
Procedeul acesta este finit, deoarece exist un numr finit de pai (numrul este
dependent doar de numrul variabilelor m i de numrul de reguli din P).
n final, dac M conine vreun arbore al crui rezultat este din
*
T
V , atunci L(G) este
nevid. n caz contrar, C = L(G) .


Observaia 3.2.1 Teorema 3.2.1 este foarte important n simplificarea gramaticilor I.D.C.;
ns acest rezultat nu mai este valabil pentru gramaticile D.C.

Teorema 3.2.2
Fie G=(V
N
,V
T
,S,P) o gramatic I.D.C. Atunci exist o gramatic G
1
, echivalent cu G,
astfel nct
*
T N
V , V A e - e astfel nct A
*
G
A
( adic C = ) L(G
A
).
Demonstraie:
Fie
N
V Ae . Considerm G
A
=(V
N
, V
T
, A, P). Conform teoremei 3.2.1, se poate
determina dac L(G
A
) este vid sau nu.
Dac C = ) L(G
A
, atunci scoatem A din V
N,
adic {A} \ V V
N N
i scoatem din P
toate regulile care l conin pe A (indiferent n ce membru, stng sau drept).
Dup ce eliminm toi neterminalii A pentru care C = ) L(G
A
, obinem gramatica
G
1
=(
1
N
V ,V
T
,S,P
1
). Evident c L(G) ) L(G
1
_ . S artm c C = ) L(G \ L(G)
1
:
- 101 -

Presupunem c exist un cuvnt ) L(G \ L(G) w
1
e . Atunci exist o derivare
w A S
*
2 1
*
, cu
1
N N
V \ V Ae .
Astfel, am obinut dou afirmaii contradictorii:
pe de o parte,
*
T 1
V w e - astfel nct
1
G
*
w A (deci ) L(G w
A 1
e );
pe de alt parte, deoarece
1
N N
V \ V Ae , avem C = ) L(G
A
.
Din contradicia obinut rezult c , V A
N
e C = ) L(G
A
.


n continuare vom elimina simbolurile care nu apar n nici o derivaie.

Definiia 3.2.1 Fie G=(V
N
,V
T
,S,P) o gramatic I.D.C.
i) AeV
N
este un simbol inaccesibil dac nu exist S
2 1
A
-
;
ii) AeV
N
este un simbol neutilizabil dac nu exist nici o derivare de forma:
S e
-
i 2 3 1 2 1
w unde , w w w A V
T
*
.

Teorema 3.2.3
Fie G=(V
N
,V
T
,S,P) o gramatic I.D.C., astfel nct C = L(G) . Atunci exist
gramatica G
1
, echivalent cu G, astfel nct
1
N
V nu conine simboluri neutilizabile,
adic:
1
N
V Ae exist o derivaie
2 3 1
*
2 1
*
w w w Aw w S cu
*
T i
V w e .
Demonstraie:
Presupunem c G este o gramatic deja redus conform Teoremei 3.2.2 (adic
, V A
N
e C = ) L(G
A
}. Construim n continuare gramatica G
1
= ) P S, , V , (V
1 T N
1
.
Mulimea neterminalelor
1
N
V se determin iterativ:
S
1
N
V e
dac A
1
N
V e , atunci adugm n
1
N
V toate variabilele B pentru care exist n P
cte o regul
2 1
B A
Procesul se oprete cnd nici o nou variabil nu mai poate fi adugat.
Fie atunci B
1
N
V e ; n acest caz, exist mcar o derivaie
*
T 3
*
V w B e i exist
A
1
,A
2
,,A
k
astfel nct:

e ' ' '


= e ' ' '
e ' ' '
e ' ' '
+ +
+ + +
P B A
k 1, i P, A A
...
P A A
P A S
1 k 1 k k
1 i 1 i 1 i i
2 2 2 1
1 1 1
i
3
*
w B ,
de unde rezult urmtoarea derivaie:
- 102 -


2 3 1
*
1 k 1 k 1 k 2 1
*
1 2 2 2 1 1 1 1
w w w ... B ... A A S ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
+ +


Deci G
1
satisface condiiile teoremei i este uor de demonstrat c L(G)=L(G
1
), unde
P
1
se obine din P nlturnd toate regulile care conin simboluri din
1
N N
V \ V .


Sintetiznd teoremele anterioare, rezult urmtorii algoritmi cu valoare practic:

Algoritm Eliminare Simboluri Inaccesibile:

Intrare G=(V
N
,V
T
,S,P)
Ieire G
1
=(V
1
N
,V
T
,S,P)

Pas 1 V
0
={S} , i=1
Pas 2 V
i
=V
i-1
{ AeV
N
P A B e - , BeV
i-1
}
Pas 3 Dac V
i
= V
i-1
atunci i=i+1, salt la Pas 2 ;
altfel V
N
1
=V
i
, P
1
={ A AeV
1
N
}

Algoritm Eliminare Simboluri Neutilizabile:

Intrare G=(V
N
,V
T
,S,P)
Ieire G
2
=(
2
N
V ,V
T
,S,P
2
)

Pas 1 V
o
=C , i=1
Pas 2 V
i
=V
i-1
{ A A e P, e ( V
i-1
V
T
)
*
}
Pas 3 Dac V
i
= V
i-1
atunci i=i+1, salt la Pas 2
altfel
2
N
V =V
i ,
P
2
= { A Ae
2
N
V }


Exemplul 7 S se simplifice gramatica G=({S,A,B,C}, {a,b}, S, P), unde
mulimea regulilor este dat de urmtoarele reguli:
P:

b C
AS C
b A
bS A
aB A
Ba B
AB B
B S
A S

Rezolvare:
Eliminm simbolurile inaccesibile:
V
0
={S} , i=1
V
1
={S} {A,B}={S,A,B} , i=2
V
2
={S,A,B} {C} V
1
=V
2

1
N
V ={S,A,B}
- 103 -

P
1
=

b | bS | aB A
Ba | AB B
B | A S

Eliminm i simbolurile neutilizabile:
V
0
=C , i=1
V
1
=C {A}={A} , i=2
V
2
={A} {S} , i=3
V
3
={A,S} C V
3
=V
2

2
N
V ={A,S}
P
2
=

b A
bS A
A S



Definiia 3.2.2 Fie G o gramatic I.D.C. Spunem c o derivaie n G este o derivaie la
stnga dac la fiecare pas al derivaiei se nlocuiete cel mai din stnga neterminal.

Aadar, dac
n 3 2 1
... este o derivaie la stnga, atunci
1} n {1,..., i e
- -
e e e - ) V (V , , V A , V w
T N
i
3
i
2 N T
i
1
astfel nct:

i
2
i
3
i
1 1 i
i
2
i
1 i
w , A w = =
+
.

Lema 3.2.1
Fie G o gramatic I.D.C. Dac S
-
w, atunci exist o derivaie la stnga a lui w n G.
Demonstraie:
Demonstraia se face prin inducie n raport cu numrul de pai dintr-o derivaie.
Pentru n = 1 S w evident;
Presupunem teorema adevrat pentru orice derivaie cu lungimea s n-1 i fie o
derivaie n n pai : S w ...
2 1
.
Lum n considerare simbolurile primului cuvnt derivat
1
=A
1
A
2
A
k
; atunci
w=w
1
w
2
w
k
cu A
i
-
w
i
n cel mult n-1 pai.
Deci exist o derivaie la stnga A
i
-
w
i
, pentru fiecare k 1, i = .
Atunci SA
1
A
2
A
k
... w
1
w
2
w
k
i deci exist derivaia la stnga de forma:
SA
1
A
2
A
k
-
w
1
A
2
A
k
-
w
1
w
2
A
3
A
k

-
... w
1
w
2
w
k
.


Definiia 3.2.3 Fie G o gramatic I.D.C. G = (V
N
, V
T
, S, P). O regul de forma
A
N
V B A, unde P, B e e , se numete redenumire.

Teorema 3.2.4
Fie G o gramatic I.D.C.; atunci exist gramatica G G
1
~ fr redenumiri.
Demonstraie
Fie G = (V
N
, V
T
, S, P). Construim o nou mulime de producii P
1
prin includerea
tuturor produciilor din P care nu sunt redenumiri.
- 104 -

Presupunem c B A
*
G
pentru
N
V B A, e ; atunci adugm n P
1
toate regulile de
forma A , unde P B e nu este o redenumire. Se observ c este suficient s
considerm numai acele iruri de derivaii B A
*
G
a cror lungime este mai mic dect
cardinalul mulimii V
N
, aceasta deoarece, n caz contrar, n irul redenumirilor ar aprea cel
puin o variabil de dou ori, aceasta nsemnnd c irul respectiv de redenumiri este
echivalent cu unul mai scurt, n care fiecare variabil apare o singur dat.
Se obine astfel gramatica modificat G
1
=(V
N
,V
T
,S,P
1
). S verificm echivalena
acesteia cu gramatica G iniial:
a) dac
1
P A e , atunci A
*
G
. Deci dac ) L(G w
1
e , atunci L(G) we .
Aadar L(G) ) L(G
1
_ .
b) fie cuvntul L(G) we i considerm o derivaie la stnga a lui w n gramatica G:
w ... S
n 2
G
1
G
0
= = .
Dac
n) i 0 (pentru
1 i
G
i
< s
+
printr-o producie care nu e redenumire, atunci
1 i
G
i

1
+
.
Dac
i
G
1 - i
printr-o regul care nu este redenumire 0) (i =
i
1 i
G
i

+
printr-o regul de tip redenumire
i
j
G G
2 i
G
1 i
...
+ +
prin reguli care nu sunt redenumiri
i
1 j
G
j

+
printr-o regul care nu este redenumire,
atunci
j 1 i i
,..., ,
+
au aceeai lungime i, pentru c derivaia este o derivaie la stnga,
simbolul nlocuit n fiecare pas este pe aceeai poziie. Dar atunci
1 j
G
i

1
+
printr-o producie din P \ P
1
.
Deci ) L(G L(G) ), L(G
1 1 n
_ e .
Din a) i b) rezult c L(G) ) L(G
1
= .

n practic putem aplica urmtorul algoritm:

Algoritm Eliminare Redenumiri:

Intrare Gramatica G, independent de context, G=(V
N
,V
T
,S,P)
Ieire Gramatica G
1,
independent de context, fr redenumiri, echivalent cu G:
G
1
=(
1
N
V ,V
T
,S,P
1
)

Varianta I
Pas 1 P
0
={ A P e nu este redenumire } , i=1
Pas 2 P
i
=P
i-1 } B P B A {A
1 i j
*
j
e . e - P
- 105 -

Pas 3 Dac P
i
= P
i-1
atunci i=i+1, salt la Pas 2; altfel
P
1
=P
i
i V } P A V {A
1 N
1
N
e - e =

Sau

Varianta a II-a
Mai nti, pentru fiecare AeV
N
se construiete R
A
=
)
`


-
B A B
astfel:
Pas a R
0
={A} , i=1
Pas b R
i
=R
i-1
} R B , P C B {C
1 i+
e e
Pas c Dac R
i
= R
i-1
atunci i=i+1, salt la Pas a;
altfel R
A
=R
i
.
Construcia propriu-zis:
Pas 1 C =
1
P
Pas 2 Fie P B e . Dac
N
V e atunci salt la Pas 4 ;
altfel continu cu Pas 3 .
Pas 3 { }
A 1 1
R B A P P e =
Pas 4 P= { } B \ P . Dac P C = atunci salt la Pas 2 ;
altfel continu cu Pas 5 .
Pas 5 G
1
=( V
1 T
1
N
P S, , V , ), unde { }
1
1
N
P A A V e - =


M4.U2.4 Forme normale pentru gramatici I.D.C.

Vom arta, n cele ce urmeaz, c pentru orice gramatic independent de context, exist o
gramatic echivalent n care regulile au forme particulare, forme uor de utilizat n
demonstraii.

Forma normal Chomsky

Teorema 3.3.1 (Forma normal Chomsky)
Orice limbaj I.D.C. poate fi generat de o gramatic n care toate regulile sunt de forma
ABC sau Aa, cu A,B,CeV
N
i aeV
T
.

Demonstraie:
Fie G o gramatic I.D.C. Din teorema 3.3.4 rezult c exist o gramatic echivalent
G
1
=(V
N
,V
T
,S,P) n care nu exist reguli A B, A,BeV
N
. Deci dac o regul are un singur
simbol n partea dreapt atunci el este un terminal.
Construim forma normal Chomsky n dou etape:

a) Considerm o regul n P de forma:
AB
1
B
2
B
m
cu m>2 (3.3.1)
Dac B
i
eV
T
l nlocuim cu C
i
, o nou variabil, i adugm regula C
i
B
i
la P.
Deci regula (3.3.1) se nlocuiete cu mulimea de reguli:
AC
1
C
2
C
m
unde C
i
=B
i
dac B
i
eV
N
- 106 -

C
i
B
i
dac B
i
eV
T

Atunci mulimea variabilelor se modific n V'
N
=V
N
{C
i
| B
i
eV
T
} iar P va fi mulimea
noilor reguli.
Fie G
2
=(V'
N
,V
T
,S,P). Vom demonstra c L(G
2
)=L(G
1
).
a
1
) Din construcia lui G
2
, dac (
1
G
) atunci (
2
G
-
) i deci L(G
1
) _ L(G
2
) .
a
2
) Vom demonstra prin inducie n raport cu numrul de pai ntr-o derivaie c dac
A w
2
G
-
,AeV
N
, weV
T
-
atunci A
-

1
G
w.
Pentru n=1 afirmaia este evident.
Presupunem afirmaia adevrat pentru orice derivaie n k pai i fie A
-

2
G
w prin k+1
pai. Primul pas n derivaie trebuie s fie de forma:
A
2
G
C
1
C
2
C
m
, m>2.
Atunci w=w
1
w
2
w
m
, unde C
i
-

2
G
w
i
, 1 si sm n cel mult k pai. Rezult c i n gramatica G
avem: C
i
-

1
G
w
i
.
Dac C
i
eV'
N
\V
N
atunci se poate folosi numai regula C
i
a
i
pentru a
i
eV
T
, de unde a
i
= w
i
.
Aadar, din construcia lui P exist o regul A B
1
B
2
B
m
a lui P cu B
i
= C
i
dac C
i
eV
N
i
B
i
=a
i
dac C
i
eV
N
\V
N
.
Pentru aceti C
i
avem derivaiile n G
2
: C
i
-

2
G
w
i
pentru c nu sunt mai muli de k pai
n derivaie. Atunci B
i
-

1
G
w
i
.
Deci A
-

1
G
w, i n concluzie L(G
2
) _ L(G
1
).

b) Modificm acum G
2
prin adugarea unor noi simboluri i a unor noi reguli i anume:
- o regul de forma AB
1
B
2
B
m
cu m>3, A,B
i
eV
N
se nlocuiete cu

m 1 m 2 m
2 2 1
1 1
B B D
...
D B D
D B A
, unde D
i
sunt noi variabile.
Astfel rezult G
3
i evident (A
-

G2
w) (A
-

G3
w) .



Exemplul 1 Fie gramatica G = ({S,T,L}, {a,b,+,*,[,]}, S, P), cu regulile P:
ST+S
ST

TL*T
TL

- 107 -

L[S]
La
Lb
S se realizeze transformarea n forma normal Chomsky.
Aplicm algoritmul ce rezult din demonstraia teoremei 3.3.1 :
Pas 1: Eliminm nti redenumirile
)
`

L T
T S
. Atunci mulimea de reguli
devine:




+
b L
b T a L
b S a T [S] L
a S [S] T T * L T
[S] S T * L S S T S

Pas 2: Regulile aflate deja n forma normal Chomsky sunt pstrate ca atare:

)
`



b S b T b L
a S a T a L


Celelalte reguli sunt nlocuite fiecare n modul urmtor:

+
1
1 1
1
1
C
S C D
TD S
cu e nlocuiest se S TC S
cu e nlocuiest se S T S

* C
T C D
LD T
cu e nlocuiest se T LC T
cu e nlocuiest se T * L T
2
2 2
2
2

] C
[ C
SC D
D C L
cu e nlocuiest se SC C L
cu e nlocuiest se [S] L
4
3
4 3
3 3
4 3

* C
T C D
LD S
cu e nlocuiest se T LC S
cu e nlocuiest se T * L S
5
5 5
5
5

] C
[ C
SC D
D C T
cu e nlocuiest se SC C T
cu e nlocuiest se [S] T
7
6
7 6
6 6
7 6

n final, gramatica n form normal Chomsky va fi G
3
=(V
N
,V
T
,S,P
3
),
unde V
N
=
} 1,6 i | {D } 1,7 i | {C T} L, {S,
i i
= =
iar P
3
conine urmtoarele
reguli:
- 108 -







+


b L b T b S
a L a T a S
] C ] C
[ C [ C * C
SC D SC D T C D
D C L D C T LD S
* C C
T C D S C D
LD T TD S
4 7
3 6 5
4 3 7 6 5 5
3 3 6 6 5
2 1
2 2 1 1
2 1



Forma normal Greibach

n aceast form normal fiecare regul are membrul drept ncepnd cu un terminal,
eventual urmat de variabile.

Lema 3.3.1
Definim o A-regul ca fiind o regul cu A n membrul stng. Fie G=(V
N
,V
T
,S,P) o
gramatic I.D.C. i fie A
2 1
B o regul din P, astfel nct
{B
1
,B
2
,,B
r
} este mulimea tuturor B-regulilor din P.
Atunci L(G)=L(G
1
) unde G
1
=(V
N
,V
T
,S,P
1
), n care P
1
se obine din P prin eliminarea
regulei A
2 1
B i adugarea regulilor A
1

2 1 1
, A
2 2 1
,, A
2 r 1
.

Demonstraie:
Evident L(G
1
) _L(G) cci dac A
2 1
B e folosit ntr-o derivaie, atunci sigur
exist i astfel nct: A
G

2 1
B
G

2 i 1
i deci A
1
G

2 i 1
.
Pentru a demonstra c L(G) _L(G
1
) observm c A
2 1
B este singura regul din
G care nu este n G
1
. Ori de cte ori este folosit A
2 1
B , variabila B trebuie s fie
nlocuit ntr-un trziu de un
i
. Aceti doi pai pot fi nlocuii de unul singur: A
2 i 1
.


Lema 3.3.2
Fie G = (V
N
, V
T
, S, P) o gramatic I.D.C. i mulimea A-regulilor pentru care A este cel
mai din stnga simbol al prii drepte (reguli cu recursie stng) de forma: {A
1
A ,
A
2
A , . . . , A
r
A }.
Fie A
1
, A
2
,, A
s
, restul A-regulilor din P. Fie G
1
=(V
N
{Z},V
T
,S,P
1
)
gramatica I.D.C., format prin adugarea variabilei Z la V
N
i nlocuirea tuturor A-
regulilor cu:
(1) A
i

- 109 -

A
i
Z, 1 s i s s
(2) Z
i

Z
i
Z, 1 r i s s

Atunci L(G)=L(G
1
)

Demonstraie:
nainte de a demonstra lema s observm c numai A-regulile genereaz, prin
derivarea la stnga, limbajul regulat:
{ ,..., ,
2 1
s
}{ ,.., ,
2 1
r
}* ,
aceasta fiind i mulimea generat de A-regulile lui G.

a) Fie xeL(G). Dintr-o derivaie la stnga a lui x n G putem construi o alt derivaie a lui
x n G, dup cum urmeaz:
De cte ori apare n derivaia lui x n G o secven de forma:
tA
G
tA
j1

G
tA
j2

j1

G
tA
jp

jp-1

G
t
i

jp

jp-1

j1

,

nlocuim ntreaga secven cu:
tA
1
G
t
i
Z
1
G
t
i

jp
Z
1
G

1
G
t
i

jp
..
j2
Z
1
G
t
i

jp

j2

j1
.
Rezult o derivaie n G
1
,

care nu este neaprat o derivaie la stnga. Folosind acest
rezultat ori de cte ori ntr-o derivaie se folosesc reguli cu recursie stng, rezult c
L(G) _ L(G
1
).

b) Considerm acum o derivaie la stnga a lui x n G
1
. De cte ori Z apare ntr-o
derivaie, reordonm derivaia astfel nct Z s fie imediat eliminat. Dac ntr-o derivaie la
stnga folosim regula Z Z, atunci va genera un ir terminal i va fi folosit alt regul
cu Z n partea stng. Este clar c n aceast secven poate fi lsat neschimbat, temporar, i
poate fi aplicat imediat o regul de rescriere a lui Z. Desigur, derivaia nu va fi mai lung
dect derivaia la stnga. n final o regul Z
i
va fi folosit, unde
i
nu are Z. Apoi
cuvintele generate i pot s continue generarea normal. Rezultatul derivaiei rearanjate
este acelai ca n derivaia iniial.
nlocuim irul rezultat de pai din derivaie care conin variabila Z, i anume:
tA
1
G
t t Z
i
G
i
1

jp
t ... Z
i
G
1

jp

j2
Z t
i
G
1

jp

j2

j1

prin
tA tA
G

j1
tA
G

j2

j1
tA ...
G

jp

j1
t
i
G

jp

j1

Rezultatul este o derivaie a lui x n G. Rezult L(G
1
) _L(G).


Teorema 3.3.2 (Forma normal Greibach)
Fiecare limbaj I.D.C. poate fi generat de o gramatic pentru care fiecare regul este de
forma A a cu AeV
N
, aeV
T,

-
e
N
V ( un ir de variabile, posibil vid).
Demonstraie:
Fie G=(V
N
,V
T
,S,P) o gramatic n forma normal Chomsky genernd limbajul L
independent de context.
Presupunem c V
N
= {A
1
,A
2
,,A
m
}.

- 110 -

Pas I. n primul pas modificm regulile astfel nct dac A
i
A
j
este o regul atunci j > i.
Aceasta se poate face n modul urmtor, ncepnd cu A
1
i terminnd cu A
m
:
Presupunem c produciile au fost modificate astfel nct pentru orice i, 1 s i s
k, A
i
A
j
este o regul numai dac j > i.
Vom modifica acum A
k+1
- regulile.
Dac A
k+1
A
j
este o regul cu j < k+1, generm o nou mulime de reguli,
nlocuind A
j
cu partea dreapt a tuturor A
j
-regulilor conform Lemei 3.3.1. Repetnd procedeul
de k-1 ori cel mult vom obine reguli de forma A
k+1
A
l
cu l > k+1. Regulile cu l = k+1
sunt acum nlocuite n conformitate cu Lema 3.3.2, introducnd noi variabile Z
k+1
.
Repetnd procedeul pentru fiecare variabil vom avea reguli de forma:

A
k
A
l
l > k
A
k
a aeV
T

Z
k
e (V
N
{Z
1
,Z
2
,,Z
m
})*.

Pas II. Observm c pentru A
m
membrul drept trebuie s nceap cu un terminal. Partea
dreapt a oricrei A
m-l
reguli este sau A
m
sau un terminal. Cnd este A
m
, putem genera noi
reguli nlocuind A
m
cu membrul drept al unei A
m
-reguli conform cu Lema 3.3.1. Atunci aceste
reguli trebuie s aib membrul drept ncepnd cu un terminal. Continum de aceast manier
cu A
m-2
,,A
1
pn cnd membrul drept al fiecrei reguli pentru un A
i
, ncepe cu un terminal.

Pas III. La un ultim pas, examinm regulile pentru noile variabile Z
1
,Z
2
,,Z
m
. Aceste reguli
ncep sau cu un simbol terminal sau cu o variabil original. Astfel nc o aplicare a Lemei
3.3.2 completeaz demonstraia.



Exemplul 2 S se aduc la form normal Greibach gramatica:
G=({A
1
,A
2
,A
3
},{a,b},A
1
,P) unde P:

a A 5)
A A A 4)
b A ) 3
A A A 2)
A A A 1)
3
2 1 3
2
1 3 2
3 2 1

Rezolvare:

Pas I. Toate A
1
-regulile i A
2
-regulile respect forma cerut de Teorema 3.3.2 la
acest pas. Dintre A
3
-reguli, regula 4 are n membrul drept primul simbol pe A
1
,
deci de indice inferior, necesitnd nlocuirea acestui prim simbol cu ajutorul A
1
-
regulilor (adic regula 1) aplicnd Lema 3.3.1:

'

a A 5)
A A A A ) 4
b A ) 3
A A A 2)
A A A 1)
3
2 3 2 3
2
1 3 2
3 2 1

Dup nlocuirea lui A
1
n regula 4, se vede c trebuie reaplicat Lema
3.3.1, deoarece A
3
-regula 4' obinut anterior are n membrul drept primul simbol
- 111 -

pe A
2
, tot de indice inferior, necesitnd nlocuirea acestui prim simbol cu ajutorul
A
2
-regulilor (adic regulile 2 i 3). Se nlocuiete deci regula 4' cu regulile
{4'',4'''}:

' ' '


' '

a A 5)
A bA )A 4
A A A A )A 4
b A ) 3
A A A 2)
A A A 1)
3
2 3 3
2 3 1 3 3
2
1 3 2
3 2 1

Pentru a avea toate A
3
-regulile n forma cerut de teorema anterioar la
acest pas, mai este necesar nlocuirea regulii recursive 4'' cu un nou set de
reguli, conform Lemei 3.3.2, introducnd variabila Z
3
, astfel:

3 2 3 1 3
2 3 1 3
3
2 3 3
3 3
3 2 3 3
2
1 3 2
3 2 1
Z A A A Z
A A A Z
a A
A bA A
aZ A
Z A bA A
b A
A A A
A A A

Astfel, toate regulile au ajuns de forma A
i
A
j
, cu j > i.

Pas II. Toate A
3
-regulile au n membrul drept primul simbol un terminal.
Folosind setul de A
3
-reguli, obinem aceeai proprietate i pentru A
2
-reguli, prin
nlocuiri conforme cu Lema 3.3.1:

A
2
-reguli:

b A
aA A
A A bA A
A aZ A
A Z A bA A
2
1 2
1 2 3 2
1 3 2
1 3 2 3 2

Similar, pentru A
1
-reguli, se nlocuiete setul de A
2
-reguli n apariiile din
membrii drepi, obinnd:
A
1
-reguli:

3 1
3 1 1
3 1 2 3 1
3 1 3 1
3 1 3 2 3 1
bA A
A aA A
A A A bA A
A A aZ A
A A Z A bA A

Astfel, toate regulile au ajuns s aib membrul drept ncepnd cu cte un
terminal.
- 112 -

Pas III. Pentru noua variabil Z
3
introdus, Z
3
-regulile trebuie aduse i ele la
aceeai form cu celelalte (membrul drept s nceap cu un terminal).
Regula
2 3 1 3
A A A Z se nlocuiete cu setul de reguli de mai jos (A
1
se
nlocuiete folosind A
1
-regulile existente):

(*)

2 3 3 3
2 3 3 1 3
2 3 3 1 2 3 3
2 3 3 1 3 3
2 3 3 1 3 2 3 3
A A bA Z
A A A aA Z
A A A A A bA Z
A A A A aZ Z
A A A A Z A bA Z


Similar, regula
2 3 1 3
A A A Z Z
3
se nlocuiete cu setul de reguli de mai
jos:

(**)

3 2 3 3 3
3 2 3 3 1 3
3 2 3 3 1 2 3 3
3 2 3 3 1 3 3
3 2 3 3 1 3 2 3 3
Z A A bA Z
Z A A A aA Z
Z A A A A A bA Z
Z A A A A aZ Z
Z A A A A Z A bA Z


Astfel, A
i
-regulile ( 1,3 i = ), obinute la pasul II, mpreun cu cele dou
seturi (*) i (**) de Z
3
-reguli, obinute la pasul III, formeaz noua mulime de
producii, n forma normal Greibach. Se observ acum dou aspecte importante:

Pe de o parte, forma normal Greibach a unei gramatici permite ca la fiecare
pas al derivrii unui cuvnt s se obin cte exact un terminal, cunoscnd
astfel cu exactitate numrul de pai ai unei derivri.

Pe de alt parte, aplicarea algoritmului din Teorema 3.3.2 se vede c
mbogete extrem de mult mulimea de reguli (de la doar 5 reguli iniiale,
am obinut anterior 26 reguli pentru forma normal Greibach).




1. S se elimine simbolurile neutilizabile i cele inaccesibile din gramatica
G = ({S, A, B, C, D},{a, b, c, d}, S, P) cu regulile:
S a| aA | B | C
A aB | b
B Aa
C cCD
D ddd

- 113 -

2. Considerm gramatica G = ({S, T, L},{a, b, +, -, x, /, [, ]}, S, P) unde
mulimea P este format din regulile:
S T + S T L x T L [S]
S T S T L / T L a
S T T L L b
a. S se construiasc o derivaie i un arbore de derivaie pentru
cuvntul a + [a x b b / a]
b. S se aduc gramatica la forma normal Chomsky.
3. Considerm gramatica G = ({L},{p, ~, [, ], }, L, P), unde mulimea P =
{Lp, L~L, L[L L]}. S se construiasc forma normal Chomsky
i apoi forma normal Greibach.



S ne reamintim...
Forma normal Chomsky
Orice limbaj I.D.C. poate fi generat de o gramatic n care toate
regulile sunt de forma ABC sau Aa, cu A,B,CeV
N
i aeV
T
.

Forma normal Greibach
Orice limbaj I.D.C. poate fi generat de o gramatic pentru care
fiecare regul este de forma A a cu AeV
N
, aeV
T,

-
e
N
V
( un ir de variabile, posibil vid).



Test de evaluare a cunotinelor
I. ntrebri.
1. Cum arat o gramatic IDC n form normal Chomsky? Descriei
algoritmul de construcie a unei gramatici n form normal
Chomsky echivalent cu o gramatic IDC oarecare.
II. Exerciii propuse.
1. Fie gramatica G = ({S, A, B},{a, b}, S, P) cu regulile:
S bA
S aB
A bAA
A aS
A a
B aBB
B bS
B b
S se gseasc o gramatic IDC, G, n form normal Chomsky,
echivalent cu G.
- 114 -

2. Fie gramatica G = ({x
1
, x
2
, x
3
},{a, b}, x
1
, P) cu regulile:
(a) x
1
x
2
x
3

(b) x
2
x
3
x
1
| b
(c) x
3
x
1
x
2
| a
S se determine o gramatic echivalent cu G care este n form
normal Greibach.



M2.U2.5 Rezumat
Unitatea de nvare prezint o serie de transformri care pot fi fcute asupra
gramaticilor indeprndente de context, fr a schimba limbajul generat, astfel nct
membrul drept al unei reguli de rescriere s semene cu cel al regulilor te tip 3. Asfel
n forma normal Chomsky membrul drept are lungimea 2 sau 1 iar n forma
normal Greibach membrul drept ncepe cu un terminal. Dei prin aceste
transformri numrul variabilelor gramaticii iniiale i cel al regulilor crete foarte
mult, aceste forme normale sunt deosebit de utile n demonstraii, aa cum vom
vedea n continuare.
- 115 -

Unitatea de nvare M4.U3. Lema de pompare pentru limbaje
independente de context
Cuprins
M4.U3.1. Introducere ........................................................................................... 115
M4.U3.2. Obiectivele unitii de nvare ............................................................. 115
M4.U3.3. Lema de pompare pentru limbaje I.D.C. ............................................... 115
M4.U3.4. Rezumat....................................................................................................120




M4.U3.1. Introducere
n unitatea de nvare M4.U3 am artat c se pot elimina dintr-o gramatic acele
reguli care nu conduc la cuvinte terminale. De fapt, se poate face mai mult. Putem
testa dac un limbaj generat de un neterminal este finit sau nu i s eliminm acele
variabile (cu excepia simbolului iniial al gramaticii) din care se poate genera
numai un numr finit de cuvinte.
.



M4.U3.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice lema de pompare pentru limbaje I.D.C. i deosebirea
fa de cazul limbajelor regulate;
- recunoasc i s demonstreze c un anumit limbaj nu este I.D.C., folosind
lema de pompare




Durata medie de parcurgere a unitii de nvare este de 3 ore.
M4.U3.3 Lema de pompare pentru limbaje I.D.C. (lema Bar-Hillel)


Teorema 3.4.1 (lema de pompare Bar-Hillel )
Fie un limbaj I.D.C., notat L. Atunci exist constantele p i q, depinznd de L, astfel
nct: dac L ze - cu p | z | > , atunci z poate fi scris sub forma: z = uvwxy, unde

>
s
) ambele sunt nu x (v, 0 | vx |
q | vwx |
astfel nct pentru fiecare ntreg 0 i > ,
L z wx uv
i i
e .

Demonstraie:
Fie G=(V
N
,V
T
,S,P) o gramatic I.D.C. n form normal Chomsky, pentru L. Dac G
are k variabile, atunci fie p=2
k-1
i q=2
k
. Este uor de observat c, pentru o gramatic n form
normal Chomsky, dac un arbore de derivaie nu are drumuri de lungime mai mare dect j,
- 116 -

atunci cuvntul derivat nu este mai lung dect 2
j-1
, aceast valoare reprezentnd maximul de
frunze ntr-un astfel de arbore (binar, datorit formei Chomsky).

Deci, dac L ze i
p | z | >
, atunci arborele unei derivaii a lui z n gramatica G
conine un drum de lungime mai mare dect k. S considerm cel mai lung drum, R, cu
lungimea mai mare dect k.

Atunci exist dou noduri n
1
i n
2
n R astfel nct:

n
1
i n
2
sunt etichetate identic;
n
2
este subarborele lui n
1
;
subarborele n
1
nu are drumuri de lungime mai mare dect k+1.

Pentru a arta c n
1
i n
2
pot fi astfel gsite, parcurgem drumul R de la frunz nspre
rdcin. Din primele k+2 noduri, numai o frunz are ca etichet un simbol terminal. Cele
k+1 noduri rmase nu pot avea etichete distincte.

Subarborele T
1
, cu rdcina n
1
, reprezint derivaia unui subcuvnt de lungime cel
mult 2
k
(i deci de lungime cel mult q), pentru c n T
1
nu exist nici un drum de lungime mai
mare dect k+1, din cauz c R a fost drumul cel mai lung.

Fie z
1
rezultatul subarborelui R. Dac T
2
este subarborele generat de nodul n
2
i z
2
este
rezultatul lui T
2
, atunci z
1
se poate scrie z
3
z
2
z
4
. n plus, z
3
i z
4
nu pot fi ambele , pentru c
prima regul folosit n derivaia lui z
1
e de forma BC A , unde B,C
N
V e . Subarborele T
2

trebuie s fie completat n interior sau de subarborele lui B sau de subarborele lui C.

Avem atunci
4 2 3
*
G
4 3
*
G
z z z Az z A , unde
q | z z z |
4 2 3
s
. De aici rezult c
i
2
i
*
G
i i
*
G
4 3 4 3
z z z Az z A pentru 0 i > .
Evident irul z poate fi scris sub forma y z z uz
4 2 3
, pentru anumii u i y.
Vom pune acum v=z
3
, w=z
2
i x=z
4
, demonstraia fiind astfel ncheiat.


Exemplul 1 Fie gramatica G=({A,B,C},{a,b},A,P), unde
P: BC A
BA B
BA C
a A
b B
Fie un arbore de derivaie n gramatica G de forma din figura 3.4.1. a).
Atunci se vede c exist un drum marcat n care se repet nodul A. Alegem
ultimile dou apariii alee lui A i notm
z
3
=bb z
2
=a z
4
= z=bbbaba
Putem obine un nou arbore de derivaie dac nlocuim penultimul sum
arbore de etichet A cu ultimul subarbore de etichet A, ca n figura 3.4.1.b).
Repetnd acest procedeu obinem un nou arbore de derivaie n figura 3.4.1.c),
arorae care nu mai prezint nici un drum pe care se repete vreo variabil.
- 117 -

Teorema 3.4.2
Exist un algoritm pentru a determina dac o gramatic G genereaz un numr finit
sau infinit de cuvinte.
Demonstraie:

Fie p i q constantele definite n Teorema 3.4.1. Deci dac zeL(G) i | z | > p, atunci z
poate fi scris ca uvwxy, unde pentru fiecare i > 0, uv
i
wx
i
yeL i deasemenea | v | + | x | > 0.
Deci dac exist un astfel de cuvnt atunci L(G) este infinit.
Presupunem c L(G) este infinit. Rezult c exist cuvinte de lungime arbitrar deci i
cuvntul z, cu | z | > p+q. Acest cuvnt poate fi scris ca uvwxy cu | vwx | < q i | v |
+ | x | > 0 i, conform teoremei de pompare,

uwyeL i | uwy | > p i | uwy | < | wwwxy |

Dac | uwy | > p+q atunci repetm procedura pn gsim un cuvnt n L de lungime l
cu p < l s p+q.

Atunci L este infinit dac i numai dac el conine un cuvnt de lungime l,

p < l s p+q.

a)



Legend: drum R











b) c)






Figura 3.4.1

A
C B
B A
B C
B A
b
b
b a
B A
b a
n
1
n
2
A
B C
b B A
b a
n
1
n
2
A
a
n
2
- 118 -

Se poate testa dac exist un cuvnt de lungime mai mare dect p i de cel mult p+q,
construind toi arborii de derivaie care conin numai drumuri de lungime s p+q i verificnd
condiia.

Deci dac exist un arbore cu un drum cu lungime mai mare dect p, atunci rezult c
L este infinit (unde p=2
k
).


Observaia 3.4.1 Teorema 3.4.1 se poate aplica pentru a demonstra c L={a
k
b
k
c
k
|
k>0} nu este I.D.C.

Demonstraie:
S presupunem, prin absurd, c limbajul L este I.D.C., ceea ce ar nsemna c sunt
ndeplinite consecinele Teoremei 3.4.1., care permit "pomparea" anumitor subcuvinte din
interiorul unor cuvinte suficient de lungi ale limbajului L.
Se observ, ns, c indiferent de lungimea cuvintelor alese din L, ele fiind de forma z
= a
k
b
k
c
k
(k>0), nu este posibil alegerea vreunei descompuneri de forma z=uvwxy cu
proprietile specificate n teorema amintit i astfel nct
L y wx uv
i i
e
.

S urmrim cazurile posibile. Fie m, n, p 0 > , k>0). Atunci cuvintele v, w i x pot fi
de una din urmtoarele forme:


z=u(vwx)y v w x
Motiv L z wx uv
i i
e
I.
a
m
(a
n
)a
k-m-n
b
k
c
k

1
n
a
2
n
a

3
n
a

Grupul de simboluri "a" se
alungete independent de grupurile
"b" i "c".
II.
a
m
(a
k-m
b
n
)b
k-n
c
k

1
n
a
2
n
a

n n
b a
3

Grupurile de simboluri "a" i "b" se
alungesc n mod independent. n
plus, dac n
3
,n 0 = , simbolurile "a"
i "b" se amestec.
1
n
a
3 2
n n
b a

4
n
b

Grupurile de simboluri "a" i "b" se
alungesc n mod independent.
2 1
n n
b a
3
n
b

4
n
b

Grupul de simboluri "b" se
alungete independent de grupurile
"a" i "c". n plus, dac n
1
,n
2
0 = ,
simbolurile "a" i "b" se amestec.
III.
a
k
b
m
(b
n
)b
k-m-n
c
k

1
n
b
2
n
b

3
n
b

Grupul de simboluri "b" se
alungete independent de grupurile
"a" i "c".
IV.
a
k
b
m
(b
k-m
c
n
)c
k-n

Similar cazului II.
V.
a
k
b
k
c
m
(c
n
)c
k-m-n

1
n
c
2
n
c

3
n
c

Grupul de simboluri "c" se
alungete independent de grupurile
"a" i "b".
n concluzie, prin pompare se va afecta cel puin una din proprietile limbajului
considerat: numrul de simboluri a, b, respectiv c este acelai (deci nu se pot multiplica
- 119 -

subcuvinte formate dintr-unul din cele trei simboluri), iar ordinea caracterelor n cuvnt este
strict alfabetic (deci nu se pot multiplica subcuvinte formate din "mbinarea" a dou
simboluri distincte, ab sau bc, cci se amestec).
Rezult c {a
k
b
k
c
k
| k>0}
2 1
L L \ e deci clasa limbajelor independente de context este
diferit de cea a limbajelor dependente de context:
2 1
L L = .


Teorema 3.4.3
Fiind dat o gramatic I.D.C., G
1
, se poate gsi o gramatic echivalent G
2
, pentru
care, dac A este o variabil n G
2
alta dect simbolul iniial, atunci exist o infinitate
de cuvinte iniiale derivate din A.

Demonstraie:
Dac L(G
1
) este finit atunci L={u
1
,u
2
,,u
n
} i putem considera G
2
cu mulimea
regulilor P
2
={S u
i
| i=1,n}.
Dac L(G
1
) este infinit, G
1
=(V
N
,V
T
,S,P
1
), considerm pentru fiecare AeV
N
gramatica
G
A
=(V
N
,V
T
,S,P
1
). Prin Teorema 3.4.2 se poate determina dac L(G
A
) este finit sau nu.
Presupunem c A
1
,A
2
,,A
k
sunt variabilele care genereaz o infinitate de cuvinte i c
B
1
,B
2
,,B
m
sunt variabilele care genereaz un numr finit de cuvinte.
Creem mulimea de reguli P
2
din P
1
n modul urmtor:
Presupunem c C
0
C
1
C
2
C
r
este o regul din P
1
, iar C
0
e{A
1
,A
2
,,A
k
}. Atunci
regula C
0
u
1
u
2
u
n
este o regul din P
2
, unde:
1. Dac C
i
eV
T
u
i
=c
i

2. Dac C
i
e{A
1
,A
2
,,A
k
} u
i
=c
i

3. Dac C
i
e{B
1
,B
2
,,B
m
} u
i
este unul din cuvintele (n numr finit) generate
de c
i
(c
i
-
u
i
).
Rezult c P
2
nu conine nici o regul cu B
i
la dreapta.
Considerm acum G
2
=(
'
N
V ,V
T
,S,P
2
) unde
'
N
V ={A
1
,A
2
,,A
k
}. Observm c S trebuie
s aparin lui
'
N
V pentru c L(G
S
) este infinit.
a) Evident, dac (
2
G
*
) atunci (
1
G
-
) deci L(G
1
) _L(G
2
).
b) Pentru a demonstra L(G
2
) _L(G
1
), demonstrm prin inducie asupra numrului de
pai din derivaie c dac A
i
-

1
G
w 1 s si k unde w
*
T
V e atunci A
i
-

2
G
w.
Rezultatul este evident pentru o derivaie ntr-un pas. Presupunem c este adevrat
pentru o derivaie n cel mult j pai. Considerm o derivaie n j+1 pai i presupunem c
prima regul folosit este A
i
C
1
C
2
C
r
.
Putem astfel scrie w sub forma w
1
w
2
w
r
unde C
i
-

1
G
w
i
, 1 s si r.
Atunci exist o regul n G
2
de forma A
i
u
1
u
2
u
r
,
unde

e
e
=
} A ,..., {A C dac C
} B ,..., {B V C dac w
u
k 1 i i
m 1 T i i
i

.
Dar c
i
-

1
G
w
i
n cel mult j pai (C
i
-

G2
w
i
) .
- 120 -

Deci A
G2
u
1
u
2
u
r
-

G2
w
1
w
2
w
r
.


Exemplul 2 Fie gramatica G=({S,A,B},{a,b,c,d},S,P), unde P={S ASB,
SAB, Aa, Ab, Bc, Bd}). S aplicm Teorema 3.4.3.

Rezolvare:
Variabilele A i B genereaz numai cuvintele a i b respectiv c i d, dar S
genereaz o infinitate de cuvinte. Atunci se construiete G
2
=({S},{a,b,c,d},S,P
2
),
mulimea regulilor fiind:

P
2
: SaSc Sac
SaSd Sad
SbSc Sbc
SaSd Sbd




S ne reamintim...

Lema de pompare Bar-Hillel spune c dac ntr-un limbaj
independent de context exist cuvinte suficient de lungi atunci pot
exista n acele cuvinte cel mult dou subcuvinte care pot fi
pompate, adic repetate, de ori cte ori i se obin cuvite care
aparin aceluiai limbaj.


Test de evaluare a cunotinelor
I. ntrebri.
1. S se enune teorema de pompare pentru limabje IDC.

II. Exerciii propuse.
1. S se arate c limbajul L = {a
n
b
j
| n = j
2
} nu este independent de
context.
2. S se arate c limbajul L = {ww | w e {a, b}
*
} nu este independent
de context.


M4.U3.4. Rezumat. Aceast unitate de nvare prezint lema de pompare Bar-Hillel,
care spune ca dac ntr-un limbaj independent de context exist cuvinte suficient de
lungi, atunci limbajul este infinit.
Aceast lem reprezint un mod de caracterizare al limbajelor de tip 2, IDC, i poate fi
folosit i pentru a demonstra c exist limbaje care nu sunt de tip 2 dar sunt de tip 1.
De asemenea acest rezultat se foate folosi ntr-un algoritm de decizie pentru a verifica
dac un limbaj independent de context dat este infinit sau nu.
- 121 -

Unitatea de nvare M4.U4. Automate push-down i legtura lor
cu gramaticile independente de context
Cuprins
M4.U4.1. Introducere ........................................................................................... 121
M4.U4.2. Obiectivele unitii de nvare ............................................................. 121
M4.U4.3. Automate push-down ........................................................................... 122
M4.U4.4. Legtura dintre automate push-down i gramatici de tip 2 .................... 126
M4.U4.5. Rezumat ............................................................................................... 132




M4.U4.1. Introducere

Vom introduce un nou tip de dispozitiv care s accepte limbajele I.D.C., numit
automat push-down.

Un automat push-down are, pe lng o band de intrare, i o stiv (o list LIFO).

ntr-o astfel de stiv, intrarea i ieirea unui simbol se face numai la capul stivei.
Cnd un simbol intr n stiv, simbolul care anterior a fost capul stivei devine al
doilea, cel care a fost al doilea devine al treilea .a.m.d. n mod similar, cnd un
simbol este scos din stiv, simbolul care anterior acestei scoateri era al doilea,
ajunge n capul stivei, cel care era al treilea devine al doilea .a.m.d.

O astfel de stiv se poate compara cu un teanc de farfurii n care se ridic sau se
pune o farfurie deasupra teancului.
.



M4.U4.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice funcionarea unui automat push-down determinist i
a unui nedeterminist;
- construiasc propriul automat push-down pentru un anumit limbajdat;
- construiasc o gramatic pentru un anumit limbaj, pornind de la un automat
push-down;
- construiasc un automat push-down pentru un anumit limbaj, pornind de la
o gramatic I.D.C. n form normal Greibach;
- construiasc un program ntr-un limbaj oarecare care s simuleze
funcionarea unui automat push-down;
- programeze construciile anterioare ntr-un limbaj de programare oarecare.



Durata medie de parcurgere a unitii de nvare este de 3-4 ore.
- 122 -


M4.U4.3 Automate push-down


Exemplul 1 S utilizm o stiv de "farfurii", cuplat cu un control finit pentru a
recunoate o mulime neregulat.
Fie limbajul I.D.C. L={
-
e{0,1} w | w
~
wc }, care nu este regulat (posibil de
demonstrat acest lucru folosind lema de pompare) i fie gramatica
G=({S},{0,1,c},S,P)
unde mulimea regulilor este P= c} S 1S1, S 0S0, {S .
Pentru a recunoate limbajul L, vom utiliza un control finit cu dou stri
q
1
i q
2
i o memorie push-down pe care vom plasa "farfurii" albastre, roii i
verzi. Dispozitivul va opera dup urmtoarele reguli:
1) Maina pornete cu o farfurie roie pe stiv i cu controlul finit n
starea q
1
.
2) Dac simbolul de intrare este 0 i starea este q
1
, dispozitivul
plaseaz o farfurie albastr pe stiv, iar dac simbolul de intrare este 1 i starea
q
1
, atunci plaseaz o farfurie verde pe stiv i, n ambele cazuri, rmne n starea
q
1
.
3) Dac intrarea este c i starea q
1
, i schimb starea n q
2
fr a
aciona asupra stivei.
Dac intrarea este 0, starea q
2
i pe stiv se afl o farfurie albastr, scoate farfuria
i rmne n q
2
, iar dac este 1, starea q
2
i pe stiv este o farfurie verde, scoate
farfuria i rmne tot n q
2
.
1) Dac dispozitivul este n starea q
2
i pe stiv este o farfurie roie, scoate
farfuria indiferent de intrare.
2) n alte situaii dispozitivul nu face nici o micare.
Dispozitivul accept irul de intrare dac, dup citirea lui, stiva devine goal.

Vom defini un automat push-down ca fiind un dispozitiv format din: band de intrare, control
finit i memorie push-down (stiv), precum n Figura 3.6.1..
Dispozitivul este nedeterminist, avnd un numr finit de anse de micare n fiecare situaie.
Micrile vor fi de dou tipuri:

a
i Banda de intrare




Z
Capul stivei





Z
0
Figura 3.6.1
CONTROL
FINIT (Q)
- 123 -

I. - tranziie cu simbol de intrare: n funcie de simbolul de intrare, de captul stivei i de
starea controlului finit, sunt posibile anumite micri care constau fiecare din: o nou stare a
controlului finit i un ir (posibil vid) de simboluri care nlocuiete capul stivei. Dup alegerea
unei micri posibile, dispozitivul avanseaz cu un simbol pe banda de intrare.

II. - "-tranziie" : este similar cu micarea tip I., dar nu e utilizat nici un simbol de
intrare.

Limbajul acceptat de un automat push-down se poate defini n dou moduri:
mulimea irurilor de intrare care conduc la golirea memoriei push-down sau
mulimea irurilor de intrare pentru care automatul intr ntr-o stare final.

Cele dou tipuri de acceptri sunt echivalente.
Formal, un automat push-down se definete prin:

Definiia 3.6.1 Un automat push-down nedeterminist, M, este un sistem format din:
M = F) , Z , q , , , (Q,
0 0
,
unde:
Q este o mulime finit de stri
este un alfabet finit al benzii de intrare
este un alfabet finit al memoriei push-down
Q q
0
e stare iniial
Z
0
e simbol de start al memoriei push-down
Q F_ mulimea strilor finale
{ } ) (Q ) ( Q :
*
I I P

Vom utiliza urmtoarele notaii:
litere mici de la nceputul alfabetului pentru
litere mici de la sfritul alfabetului pentru iruri din
*

litere mari ale alfabetului pentru elemente din
litere greceti pentru cuvinte din
*

Interpretarea expresiei )} , (p ),..., , (p ), , {(p Z) a, (q,
m m 2 2 1 1
= , unde
m 1, i , , Z , a Q, p q,
*
i i
= e e e e , este aceea c automatul push-down aflat n starea
q, cu a pe banda de intrare i Z n capul stivei, poate trece ntr-una din strile p
i
nlocuind pe Z
cu
i
i apoi avanseaz cu un simbol pe banda de intrare.

Interpretarea expresiei )} , (p ),..., , (p ), , {(p Z) , (q,
m m 2 2 1 1
= , unde
m 1, i , , Z Q, p q,
*
i i
= e e e , este aceea c automatul push-down aflat n starea q i
avnd pe Z n capul stivei, indiferent de simbolul aflat pe banda de intrare i schimb starea
ntr-una din strile p
i
i nlocuiete pe Z cu
i
fr s avanseze pe banda de intrare.

- 124 -


Exemplul 2 n exemplul anterior, automatul push-down accept limbajul
{
-
e{0,1} w | w
~
wc } prin memorie vid. S descriem formal acest automat.


M=({q
1
,q
2
},{0,1,c},{R,A,V},,q
1
,R, C)

= =
= =
= =
= =
= =
= =
)} , {(q R) , , (q VV)} , {(q V) ,1, (q
)} , {(q V) ,1, (q VA)} , {(q A) ,1, (q
)} , {(q A) ,0, (q AV)} , {(q V) ,0, (q
R)} , {(q R) c, , (q AA)} , {(q A) ,0, (q
V)} , {(q V) c, , (q VR)} , {(q R) ,1, (q
A)} , {(q A) c, , (q AR)} , {(q R) ,0, (q
2 2 1 1
2 2 1 1
2 2 1 1
2 1 1 1
2 1 1 1
2 1 1 1



Observaia 3.6.1 Automatul din Exemplul 3.6.2 este determinist pentru c are o singur
posibilitate de micare la fiecare pas.

Un astfel de automat, indiferent dac este determinist sau nedeterminist, se poate i el
reprezenta printr-o diagram de tranziie[23], similar cu cea pentru automatul finit, cu
excepia faptului ca una dintre etichetele unui arc ntre starea p i starea q, este de forma:
(a, A BC) dac (q, BC) e o(p,a,A)
sau, folosind forma din [13]:
(a, A, BC) dac (q, BC) e o(p,a,A)
S considerm automatul push-down, definit printr-o diagram de tranziie, din figura
2.3.2, care recunoate cuvintele limbajului:
{a
n
b
n
| n 0}.

0, Z
0
AZ
0

q p
0, A AA
1, A

s
1, A

, Z
0


r
Figura 3.2.2
, Z
0


- 125 -

Definiia 3.6.2 O configuraie instantanee este o pereche ) (q, , unde Q qe i
*
I e ,
unde cel mai din stnga simbol al lui este vrful stivei push-down, iar reprezint
coninutul stivei.
Dac } { a e , ,
*
e , Ze i Z) a, (q, ) (p, e , atunci scriem:
a : (q,Z)
M
(p,) (Intrarea "a" trece automatul M din (q,Z) n (p,).)
Dac pentru fiecare } { a ..., a
n 1
e , Q q ,..., q
1 n 1
e
+
i irurile
*
1 n 1
,..., e
+
,
avem:
a
i
: (q
i
,
i
)
M
(q
i+1
,
i+1
) n 1, i = ,
atunci scriem:
a
1
a
n
: (q
1
,
1
)
*
M
(q
i+1
,
i+1
)

Similar, se poate folosi descrierea instantanee, constituit din tripletul ( ) Z aw, q, i
atunci scriem:
( ) Z aw, q,
M
(p,w,) dac (p, ) Z) a, (q, e .

Definiia 3.6.3 Limbajul acceptat prin stri finale de ctre automatul M este
) Z w, , (q , w {w L(M)
0 0
*
e =
*
M
( ) F} p , , , p,
*
e e .

Definiia 3.6.4 Limbajul acceptat prin stiv vid de ctre automatul M este
) Z w, , (q , w {w N(M)
0 0
*
e =
*
M
( ) Q} p , , p, e .


Exemplul 3 S construim automatul push-down care accept limbajul
{
-
e{0,1} w | w
~
w }.


M=({q
1
,q
2
},{0,1},{z
0
,A,B},,q
1
,Z
0
, C)

=
= =
= =
=
= =
= =
)} , (q BB), , {(q B) ,1, (q
)} , {(q ) Z , , (q BA)} , {(q A) ,1, (q
)} , {(q ) Z , , (q AB)} , {(q B) ,0, (q
)} , (q AA), , {(q A) ,0, (q
)} , {(q B) ,1, (q )} BZ , {(q ) Z ,1, (q
)} , {(q A) ,0, (q )} AZ , {(q ) Z ,0, (q
2 1 1
2 0 2 1 1
1 0 1 1 1
2 1 1
2 2 0 1 0 1
2 2 0 1 0 1


Spre exemplu, irul de intrare 001100 este acceptat de automatul
push-down deoarece exist un calcul de configuraii care se finalizeaz prin golirea
memoriei push-down dup citirea benzii de intrare:

) Z ,001100, (q
0 1

M
) AZ ,01100, (q
0 1

M
) AAZ ,1100, (q
0 1

M
) BAAZ ,100, (q
0 1

M
) AAZ ,00, (q
0 2

M
) AZ ,0, (q
0 2

M
- 126 -

) Z , , (q
0 2

M
) , , (q
2
,

deci 001100 N(M) e .
Problema care apare n acest exemplu este de a determina mijlocul
cuvntului de pe banda de intrare. Pentru determinarea mijlocului, singura condiie
cunoscut este de a avea pe banda de intrare doi de 0 consecutivi sau doi de 1
consecutivi. ns aceast condiie nu determin n mod precis mijlocul cuvntului
de intrare, situaia nefiind unic. Astfel, automatul push-down poate "bnui" c a
ajuns la mijlocul cuvntului de intrare ori de cte ori apar doi de 0 sau doi de 1
consecutivi. Deci, de cte ori automatul ntlnete dou simboluri identice pe
banda de intrare, are de ales ntre dou variante: "bnuiete" c aici este mijlocul i
trece n starea q
2
, care ncepe s tearg stiva, sau "bnuiete" c nu este la mijloc
i continu s memoreze n stiv. Dac a "bnuit" corect atunci va reui s-i
goleasc stiva.
De aici apare nedeterminismul.


Observaia 3.6.2

a) Un automat push-down este determinist dac sunt ndeplinite urmtoarele condiii:
- pentru fiecare Z i a Q, q e e e corespunztoare, Z) a, (q, nu conine mai mult de
un element;
- pentru fiecare I e e Z i Q q , dac Z) , (q, C = atunci , Z) a, (q, C = E e a
(aceste condiii evit situaia n care ar fi posibile att o -mutare ct i o mutare nevid,
genernd astfel nedeterminism).

b) Pentru automatele push-down n general, modelul determinist i cel nedeterminist nu sunt
echivalente.


M4.U4.4 Legtura dintre automatele push-down nedeterministe i limbajele
independente de context

n cele ce urmeaz vom discuta numai despre automate push-down nedeterministe, pe
care le vom numi simplu automate push-down, iar atunci cnd ele nu sunt nedeterministe vom
preciza acest lucru.

Teorema 3.7.1
Un limbaj L este acceptat prin stiv vid de ctre un automat push-down M
1,
(L=N(M
1
)
) dac i numai dac el este acceptat prin stri finale de ctre un automat push-down
M
2,
( L=N(M
2
) ).
Demonstraie:

I. Fie L=T(M
2
), unde M
2
= F) , Z , q , , , (Q,
0 0
.
Construim M
1
= ) X, , q , {X}, , }, q , {q (Q
0 0
C ' ' ' , unde '
este definit dup cum
urmeaz:
- 127 -

1) X) , , q ( X) Z , (q
0 0 0
' ' e
2) { } Z , a Q, q , Z) a, (q, Z) a, (q, e e e ' _
3) Pentru toi ( ) Z) , (q, , q {X} Z F, q

' e e e
4) Pentru toi ( ) Z) , , (q , q {X} Z

' e e
Regula 1) l face pe M
1
s intre n configuraia iniial a lui M
2
, dar simbolul iniial al
stivei este X. Regula 2) simuleaz pe M
2
pn cnd intr ntr-o stare final. Regulile 3) i 4)
golesc stiva cnd M
2
intr ntr-o stare final.
Se observ c regulile 2) pot goli stiva lui M
2
i pentru un cuvnt care nu este n T(M
2
),
iar acesta este motivul pentru care M
1
are propriul su simbol iniial al stivei, X.
S demonstrm echivalena celor dou automate:

a) Fie ) T(M w
2
e . Atunci:
( )
0 0
Z w, , q
*
M
2
(q,,) pentru q Q e .
Fie acum w intrarea lui M
1
;
- conform regulei 1), rezult c ( )
0 0
Z w, , q
*
M
1
(q
0
,w,Z
0
X)
- conform regulei 2), rezult c ( ) X Z w, , q
0 0

*
M
1
(q,,X) (M
1
simuleaz pe M
2
)
- conform regulilor 3) i 4), rezult n final c ( ) X , q,
*
M
1
(q

,,)
Aadar ) N(M w
1
e .

b) Dac ) N(M w
1
e , atunci se vede c stiva este complet tears numai dac sunt aplicate
regulile 3) i 4), deoarece regulile lui M
2
nu pot terge pe X. Aadar, este necesar ca M
2
s
intre ntr-o stare final cu aceeai intrare ca M
1
, ca s poat fi aplicate reguli de tip 3 i 4.

II. Reciproc, fie M
1
= ) , Z , q , , , (Q,
0 0
C astfel nct L=N(M
1
).
Definim M
2
= }) {q X, , q , {X}, , }, q , q { (Q
f 0 f 0
' ' ' , unde ' este definit dup cum
urmeaz:
1) X) , , q ( X) Z , (q
0 0 0
' ' e
2) { } Z) a, , q ( Z) a, (q, Z , a Q, q ' ' _ e e e
3) X) , (q, ) , (q Q q
f
' e e
Regula 1) l face pe M
2
s intre n configuraia iniial a lui M
1
. Regula 2) simuleaz pe
M
1
pn i golete stiva la citirea intrrii. Regula 3) l determin pe M
2
s intre ntr-o stare
final dac M
1
i-a golit stiva iar n stiva lui M
2
este doar X.
Demonstraia este similar cu I.


Teorema 3.7.2
Dac L este un limbaj independent de context, atunci exist un automat push-down M
astfel nct L=N(M).
Demonstraie:
Fie o gramatic independent de context G=(V
N
,V
T
,S,P) n form normal Greibach,
astfel nct L=L(G). Presupunem c L(G) e (demonstraia se poate adapta i pentru cazul
contrar).
- 128 -

Construim M= ) S, , q , , V , V }, ({q
1 N T 1
C , unde A) a, , (q
1
conine ) , (q
1
pentru
fiecare regul P a A e .
Pentru a arta c L(G)=N(M), observm c:

xa (xA
G
) ( ) A a, , q
1

M
( ) , , q
1


Prin inducie asupra numrului de pai dintr-o derivaie rezult c:
) V , , V A , V y pentru x, xy (xA
*
N N
*
T
*
G
e e e A y, , (q
1
)
*
M
) , , (q
1

Atunci :
S) x, , (q x S
1
*
G

*
M
) , , (q
1
.
Se observ c M nu face -mutri.


Teorema 3.7.3
Dac L este acceptat prin stiv vid de ctre un automat push-down M (L=N(M)),
atunci L este un limbaj independent de context.

Demonstraie:
Fie M un automat push-down, M= ) , Z , q , , , (Q,
0 0
C .
Definim gramatica G= P) S, , , (V
N
, unde:
{S} } A Q, p q, p] A, {[q, V
N
e e =
iar P este definit dup cum urmeaz:
Q q pentru q] , Z , [q S
0 0
e
-pentru fiecare tranziie A) a, (q, ) ...B B B , (q
m 2 1 1
e se genereaz un set de reguli n
gramatic, astfel:
Q p , q ,..., q
m 2
e P p] , B , ]...[q q , B , ][q q , B , a[q p] A, [q,
m m 3 2 2 2 1 1
e
Dac m=0, atunci q
1
=p, A) a, (q, ) (p, e i apare doar regula P a p] A, [q, e .
Regulile au fost astfel definite nct s simuleze funcionarea lui M cu intrarea x. n
particular, variabilele gramaticii G corespund simbolurilor memoriei push-down cnd M a
vzut din irul de intrare exact att ct a derivat gramatica G.
Se demonstreaz c L(G)=N(M) prin inducie relativ la numrul de pai dintr-o
derivaie a lui G, respectiv numrul de micri ale lui M, adic:
( A) x, (q, x p] A, [q,
G
*

|
.
|

\
|

*
M
) ) , (p, (3.7.3)
Lund apoi q=q
0
i A=Z
0
, rezult urmtoarele:
( ) Z x, , (q x p] , Z , [q
0 0
G
*
0 0

|
.
|

\
|

*
M
) ) , (p,
Dar prima regul din G este Q p pentru p] , Z , [q S
0 0
e , de unde rezult:

( ) N(M) x x S
G
*
e
|
.
|

\
|

.
Rmne doar s demonstrm echivalena (3.7.3):
- 129 -


I. S artm prin inducie n raport cu i c
( A) x, (q,
i
M
) ) , (p,
|
.
|

\
|
x p] A, [q,
G
i
,
a. Dac i=1,
( A) x, (q, ) ) , (p,
definitia
A) x, (q, ) (p, e

|x| 1 s (deoarece sau x V x
T
= e )

G definitia
P x p] A, [q, e
|
.
|

\
|
x p] A, [q,
G
*
.

b. Presupunem afirmaia I adevrat pentru i i o demonstrm pentru i+1:
Fie
( A) x, (q,
1 i
M
+
) ) , (p, i

exist a
T
V e , y
*
T
V e astfel nct x=ay, y=y
1
y
t
i

A) ay, (q, ) ...B B y, , (q
t 1 1

i
) , (p, .

Dar ) B , y , (q
i i k

*
) , , (q
1 k+
n cel mult i pai i q
i+1
=p, deci:

A) ay, (q, ) ...B B , ...y y , (q
t 1 t 1 1

*
) ...B B , ...y y , (q
t 2 t 2 2

*
) , (p, .

Atunci, folosind regulile gramaticii G i ipoteza induciei, vom obine:

p] , B , ]...[q q , B , ][q q , B , a[q p] a, [q,
k k 3 2 2 2 1 1

i t 1, k y ] q , B , [q
k
*
1 k k k
=
+


rezult c
t 2 1
*
G
...y y ay p] A, [q, .
II. Reciproc, se arat c ( A) x, (q, x p] A, [q,
G
*

|
.
|

\
|

*
M
) ) , (p, , prin inducie relativ la
lungimea unei derivaii (demonstraia este similar celei de mai sus).

Astfel, demonstraia este ncheiat.

- 130 -


Exemplul 1 Fie automatul push-down:
M= ) , Z , q , }, Z {X, {0,1}, ), q , ({q
0 0 0 1 0
C
unde

= =
= =
= =
)} , {(q ) Z , , (q )} , {(q X) ,1, (q
)} , {(q X) , , (q XX)} , {(q X) ,0, (q
)} , {(q X) ,1, (q )} XZ , {(q ) Z ,0, (q
1 0 1 1 0
1 1 0 0
1 1 0 0 0 0

S se construiasc gramatica echivalent acestui automat.
Conform demonstraiei teoremei 3.7.3, construim G=(V
N
, E,S,P) care
genereaz chiar limbajul N(M) astfel:
]} q , Z , [q ], q , Z , [q ], q , Z , [q ], q , Z , [q
], q X, , [q ], q X, , [q ], q X, , [q ], q X, , [q {S, V
1 0 1 0 0 1 1 0 0 0 0 0
1 1 0 1 1 0 0 0 N
=

] q , Z , [q
] q X, , [q
1 ] q X, , [q
1 ] q X, , [q
] q X, , ][q q X, , 0[q ] q X, , [q
] q X, , ][q q X, , 0[q ] q X, , [q
] q , Z , ][q q X, , 0[q ] q , Z , [q
] q , Z , ][q q X, , 0[q ] q , Z , [q
] q X, , ][q q X, , 0[q ] q X, , [q
] q X, , ][q q X, , 0[q ] q X, , [q
] q , Z , ][q q X, , 0[q ] q , X , [q
] q , Z , ][q q X, , 0[q ] q , Z , [q
] q , Z , [q S
] q , Z , [q S
: P
1 0 1
1 1
1 1
1 0
1 1 1 0 1 0
1 0 0 0 1 0
1 0 1 1 0 1 0 0
1 0 0 0 0 1 0 0
0 1 1 0 0 0
0 0 0 0 0 0
0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0
0 0 0

n final, putem urmri i elimina regulile inutile i, de asemenea,
simbolurile neterminale neutilizabile, obinnd urmtoarea variant redus:
]} q , Z , [q ], q , Z , [q ], q X, , [q ], q X, , [q {S, V
1 0 1 1 0 0 1 1 1 0 N
= '

'
] q , Z , [q
] q X, , [q
1 ] q X, , [q
1 ] q X, , [q
] q X, , ][q q X, , 0[q ] q X, , [q
] q , Z , ][q q X, , 0[q ] q , Z , [q
] q , Z , [q S
: P
1 0 1
1 1
1 1
1 0
1 1 1 0 1 0
1 0 1 1 0 1 0 0
1 0 0



Observaia 3.7.1 Din teoremele 3.7.1, 3.7.2 i 3.7.3 rezult c urmtoarele afirmaii sunt
echivalente:
i) L este un limbaj independent de context;
ii) L=N(M
1
) pentru un automat push-down M
1
nedeterminist;
- 131 -

iii) L=T(M
2
) pentru un automat push-down M
2
nedeterminist.


1. Fie automatul push-down:
P = ({s
0
, s
1
, s
2
}, {a, b}, {z, a, b}, o, s
0
, z, {s
2
})
cu funcia o defint astfel:
o (s
0
, a, z) = {(s
0
, az)}
o (s
0
, b, z) = {(s
0
, bz)}
o (s
0
, a, a) = {(s
0
, aa), (s
1
, )}
o (s
0
, a, b) = {(s
0
, ab)}
o (s
0
, b, a) = {(s
0
, ba)}
o (s
0
, b, b) = {(s
0
, bb), (s
1
, )}
o (s
1
, a, a) = {(s
1
, )}
o (s
1
, b, b) = {(s
1
, )}
o (s
1
, , z) = {(s
2
, )}
a. S se arate c L(P) = {u u
~
| ue{a, b}
+
}, unde u
~
reprezint
oglinditul lui u.
b. Ce fel de automat push-down este P?
2. S se construiasc automate push-down pentru fiecare dintre mulimile
urmtoare:
a. {w | w e {0,1}* N
0
(w) = N
1
(w)}, unde N
0
(w) reprezint numrul
de apariii ale simbolului 0 n w;
{a
i
b
j
| i j 2i}
b.Mulimea cuvintelor generate de gramatica:
G = ({S,A}, {a,b}, S, { S aAA, A bBS, A aS, A a})
3. S considerm gramatica care genereaz expresiile artimetice cu
operatorii + i *, parantezele (, ), i operandul id, (unde operatorul este
cuprins ntre doi operanzi), dat de regulile gramaticale:
{ E E + E, E E * E, E (E), E id }
Gramatica cu regulile:
{ P + PP, P * PP, P id }
genereaz aceleai expresii aritmetice dar n forma polonez prefixat,
scriere care permite eliminarea parantezelor. S considerm urmtoarea
expresie aritmetic:
id * (id + id) + id
n forma polonez prefixat expresia devine:
+ * id + id id id
S se construiasc un program care s traduc o expresie de forma de mai
sus, e
1
, n forma polonez prefixat, e
2
, utliznd urmtoarea tehnic:
- Se simulez funcionarea unui a.p.d. care analizeaz expresia
aritmetic e
1
i se construiete un arbore de derivaie pentru e
1;

- Pentru fiecare vrf al arborelui de derivaie, determin
aciunea care definete traducerea n forma e
2
.

- 132 -


S ne reamintim...
Un automat push-down nedeterminist, M, este asemntor cu un automat
finit dar conine n plus i o memorie de tip stiv.
Limbajul acceptat prin stri finale de ctre automatul M este
) Z w, , (q , w {w L(M)
0 0
*
e =
*
M
( ) F} p , , , p,
*
e e .
Limbajul acceptat prin stiv vid de ctre automatul M este
) Z w, , (q , w {w N(M)
0 0
*
e =
*
M
( ) Q} p , , p, e .



Test de evaluare a cunotinelor
I. ntrebri.
1. S se defineasc automatele push-down deterministe i
nedeterministe.
II. Exerciii propuse.
I. S se construiasc o gramatic IDC i un automat push-down care
s recunoasc limbajul L = {
*
} , { w b a e | w conine un numr egal
de a i b}
2. Fie automatul push-down:
P = ({s
0
, s
1
, s
2
, s
3
}, {a, b, c}, {z, a}, o, s
0
, z, {s
3
})
cu o dat prin:
o (s
0
, a, z) = {(s
0
, aaz)}
o (s
1
, a, a) = {(s
1
, aaa)}
o (s
1
, b, a) = {(s
2
, )}
o (s
1
, c, a) = {(s
2
, )}
o (s
2
, b, a) = {(s
2
, )}
o (s
2
, c, a) = {(s
2
, )}
o (s
2
, , z) = {(s
3
, )}
a. S se arate c L(P) = {a
n
w| we{b, c}
+
, |w| = 2n, n 1}.
b. Ce fel de automat push-down este P?



M4.U4.5 Rezumat
Unitatea de nvare prezint un alt tip de automat , automatul push-down cu
varianta determinist i cu cea nedeterminist i legatura dintre automatele
push-down nedeterministe i gramaticile de tip 2.
Spre deosebire de automatele finite, la automatele push-down cele dou
variante nu sunt echivalente, automatele push-down deterministe
recunoscnd o subclas proprie a limbajelor Independente de context numit
clasa limbajelor deterministe. Aceasta clas a limbajelor deterministe este
utilizat n construcia compilatoarelr moderne i anume pentru construcia
analizoarelor sintactice.
- 133 -


Unitatea de nvare M4.U4. Proprieti de nchidere pentru
familia limbajelor de tip 2
Cuprins
M4.U5.1. Introducere ....................................................................................... 133
M4.U5.2. Obiectivele unitii de nvare ......................................................... 133
M4.U5.3. Proprieti de nchidere pentru limbaje I.D.C. .................................. 133
M4.U5.4. Rezumat ........................................................................................... 143





M4.U5.1. Introducere
Vom considera nti anumite operaii cu limbaje care pstreaz limbajele
independente de context. Apoi vom prezenta operaii la care familia limbajelor
independente de context nu este nchis.
Aceste operaii se pot folosi att pentru a demonstra c un limbaj este I.D.C. ct
i pentru a demonstra c un limbaj nu este I.D.C.
.



M4.U5.2. Obiectivele unitii de nvare
La sfritul acestei uniti de nvare studenii vor fi capabili s:
- neleag i s explice proprietile de nchidere ale familiei limbajelor
I.D.C.;
- construiasc propria gramatic pentru un anumit limbaj, care poate fi
descompus n mai multe limbaje, folosind proprietile de nchidere;
- construiasc propriul automat push-down pentru un anumit limbaj, care
poate fi descompus n mai multe limbaje, folosind proprietile de
nchidere;
- programeze construciile anterioare ntr-un limbaj de programare oarecare.




Durata medie de parcurgere a unitii de nvare este de 3-4 ore.
M4.U5.3 Proprieti de nchidere pentru limbaje I.D.C.

Teorema 3.8.1
Limbajele independente de context sunt nchise la reuniune, concatenare i produs
Kleene.
Demonstraie:
- 134 -

Fie L
1
i L
2
generate de ) P , S , T , (V G
1 1 1 1 1
= i ) P , S , T , (V G
2 2 2 2 2
= . Presupunem
c V
1
V
2
=C. Atunci putem realiza urmtoarele construcii de gramatici I.D.C:

a) Limbajul
2 1
L L este generat de ) P , S , T T }, {S V (V G
3 3 2 1 3 2 1 3
= , unde
} S S , S {S P P P
2 3 1 3 2 1 3
= .
S demonstrm c ) L(G L L
3 2 1
= :
Fie
2 1
L L w e ; nseamn c w aparine cel puin unuia din cele dou limbaje:
i
L w : {1,2} i e e - , altfel spus ) L(G w : {1,2} i
i
e e - . Exist deci o derivare a lui w
n una din cele dou gramatici date, G
i
, pornind de la simbolul iniial al respectivei
gramatici: w S
i
G
i
-
. Deoarece toate regulile din gramatica G
i
sunt i reguli ale gramaticii
construite G
3
, nseamn c aceeai derivare are loc i n gramatica G
3
. n plus, putem
obine simbolul S
i
printr-o derivare ntr-un pas pornind de la S
3
, i anume folosind una din
cele dou reguli nou adugate la P
3
, obinnd urmtoarea derivaie n G
3
:

w S S : {1,2} i
3 3
G
i
G
3
-
e - , deci ) L(G w
3
e .

Rezult c ) L(G L L
3 2 1
_ .
Fie ) G ( L w
3
e ; nseamn c w poate fi generat cu regulile P
3
, pornind de la S
3
:
w S
3
G
3
-
.
Deoarece singurele S
3
-reguli sunt cele dou redenumiri } S S , S {S
2 3 1 3
, rezult c
primul pas al derivaiei amintite nu poate fi dect rezultatul aplicrii uneia din aceste dou
reguli:
w S S : {1,2} i
3 3
G
i
G
3
-
e - , deci w S
3
G
i
-
.
Putem observa faptul c, n afar de primul pas al acestei derivri, toate regulile
folosite n obinerea lui w pornind de la S
3
sunt chiar reguli din P
i
, {1,2} i e , n funcie de
simbolul S
i
obinut n primul pas. Deoarece V
1
V
2
=C, rezult c
w S
i
G
i
-
,
deci ) L(G w
i
e =L
i
.
S-a artat astfel c
1
L we sau
2
L we , adic
2 1
L L w e .
Rezult c ) L(G L L
3 2 1
_ .
innd cont de cele dou implicaii rezult c limbajul
2 1
L L este generat de
gramatica G
3
.
Urmtoarele construcii se demonstreaz n mod asemntor, constituind un bun
exerciiu:

b) Limbajul
2 1
L L este generat de ) P , S , T T }, {S V (V G
4 4 2 1 4 2 1 4
= , unde
} S S {S P P P
2 1 4 2 1 4
= .
- 135 -


c) Limbajul
*
1
L este generat de ) P , S , T }, {S (V G
5 5 1 5 1 5
= , unde
} S , S S {S P P
5 1 5 5 1 5
= .


Teorema 3.8.2
Familia limbajelor independente de context este nchis la substituie.

Demonstraie:
Fie L un limbaj I.D.C.,
*
L _ i pentru fiecare a e fie L
a
un limbaj I.D.C.
Fie o gramatic G care genereaz limbajul iniial, L=L(G). De asemenea, pentru
fiecare simbol a e considerm cte o gramatic astfel nct L
a
=L(G
a
).
Presupunem c variabilele lui G i ale lui G
a
sunt distincte, oricare ar fi a e .
Construim gramatica G' I.D.C. n felul urmtor:
Variabilele lui G' sunt variabilele lui G i cele ale lui G
a
, pentru a e ;
Terminalele lui G' sunt terminalele lui G
a
;
Simbolul iniial al lui G' este simbolul iniial al lui G;
Regulile lui G' sunt cele ale lui G
a
, pentru a e , i regulile lui G n care fiecare a e
se nlocuiete cu S
a
(simbolul iniial al G
a
).



Exemplul 1 Fie L limbajul cuvintelor cu numr egal de a i b. S urmrim
aplicarea celor demonstrate n teorema anterioar.


Avem gramatica generativ P) S, b}, {a, ({S}, G = , unde mulimea
regulilor este } S bSaS, S aSbS, {S P = . Se poate verifica faptul c
L=L(G). S considerm limbajele de substituie:
1} n | 1 {0 L
n n
a
> = , generat de regulile
P(G
a
)= 01} S 1, 0S {S
a a a
;
} {0,2} w | w
~
{w L
*
b
e = , limbaj generat de mulimea de reguli

P(G
b
)= } S 2, 2S S 0, 0S {S
b b b b b
.

Atunci, conform construciei efectuate n demonstraia Teoremei 3.8.2,
gramatica rezultat este G'
= ) P S, {0,1,2}, }, S , S ({S,
b a
'
, cu mulimea de
reguli:
- 136 -

'
S
2 2S S
0 0S S
01 S
1 0S S
S
S SS S S
S SS S S
: P
b
b b
b b
a
a a
a b
b a

S generm un cuvnt la ntmplare cu aceste reguli:
012002 012002S
02S 0120S 2S 012S S 01S S 01SS S SS S S
b b b b b a




Observaia 3.8.1 Teorema 3.8.1 se poate obine folosind Teorema 3.8.2 i innd cont c
b a, e avem:
b} {a, este I.D.C.
b} {a este I.D.C.

-
a este I.D.C.
Dac acum f(a)=L
a
i f(b)=L
b
, atunci, datorit proprietii de nchidere la substituie,
rezult c:

b a
L L este I.D.C.

b a
L L este I.D.C.

-
a
L este I.D.C.
Pentru c homomorfismul este un caz special de substituie, n care card(L
a
)=1,
obinem i urmtorul corolar.

Corolar 3.8.1 Clasa limbajelor I.D.C. este nchis la homomorfism.

Teorema 3.8.3
Clasa limbajelor independente de context este nchis la homomorfismul invers.

Demonstraie:
Fie : h un homomorfism i L un limbaj I.D.C.; atunci exist un automat push-
down F) , Z , q , , , (Q, M
0 0
= astfel nct L=T(M).
Construim un automat push-down M'
care s accepte (L) h
1
, astfel:
- 137 -

Cu intrarea a pentru automatul M', acesta genereaz h(a) i simuleaz execuia lui M
cu aceast intrare h(a). Dac M' ar fi un automat cu numr finit de stri, atunci M' i-ar
schimba numai strile. n cazul automatului push-down, M' poate i s pun o mulime de
simboluri pe stiv i, n plus, fiind nedeterminist are o mulime de posibiliti de micare.
De aceea, dotm M' cu un buffer (o zon tampon) n care el poate s memoreze h(a).
Atunci M' poate s simuleze orice -mutare a lui M, dac dorete, i s consume simbolurile
lui h(a) cte unul la fiecare moment, la fel cum face M. Pentru ca buffer-ul s fie o parte a
controlului finit al lui M', el nu poate fi orict de lung. Se poate realiza asta permindu-i lui
M' s citeasc un simbol de intrare numai cnd buffer-ul este gol. Astfel, n buffer este pstrat
n fiecare moment un sufix al lui h(a), pentru un anume a preluat de pe banda de intrare a lui
M'.
Automatul push-down M' accept cuvntul de intrare w dac buffer-ul este vid i M
este ntr-o stare final. n acest fel, M a acceptat h(a) pentru fiecare simbol de intrare a, deci a
acceptat h(w).
Astfel, L(M')= L(M)} h(w) {w e , adic:
L(M')= (L(M)) h
1

Construcia formal este dat n continuare.

{ }) F , Z ], , [q , , , , Q ( M
0 0
' ' = '
,
unde:
Q = {[q,x] | q e Q, iar x este un suffix al lui h(a),va eE}

Funcia de tranziie '
:

1) Y) , x], ([q, ) x], ([p, ' e pentru fiecare Y) , (q, ) (p, e .
Astfel, M' simuleaz -mutrile lui M, indiferent de coninutul din buffer.
2) Y) , ax], ([q, ) x], ([p, ' e dac Y) a, (q, ) (p, e .
Astfel, M' simuleaz mutrile lui M pe intrarea a din , elibernd a din capul buffer-ului.
3) Y) a, ], ([q, Y) h(a)], ([q, ' e pentru toi a e i Ye .
n acest mod, M' ncarc n buffer h(a), citind a de pe intrarea M', n timp ce starea i stiva
lui M rmn neschimbate.








Stiva lui
M i M'



Figura 3.8.1
Intrarea lui M'
Controlul
lui M' h

Buffer
Controlul
lui M
- 138 -

S demonstrm c L(M')= (L(M)) h
1
.

a) Mai nti, s observm c printr-o aplicare a regulii (3) urmat de o aplicare a
regulilor (1) i (2),
dac ) h(a), (q,
-
M
) , (p, ,

atunci ) a, ], ([q,
M'
) , h(a)], ([q,
-
' M
) , ], ([p, .

Astfel, dac M accept h(a), adic dac ) Z h(w), , (q
0 0

-
M
) , (p, pentru F pe i
-
e , atunci
) Z w, ], , ([q
0 0

-
' M
) , ], ([p, ,
astfel nct M' accept w.

Deci L(M') (L(M)) h
1
_ .
b) Reciproc, s presupunem c M' accept intrarea w=a
1
a
2
a
n
. Atunci, pentru c regula (3)
poate fi aplicat numai cu buffer-ul vid (precum arat a doua component a strii lui M),
irul de micri ale lui M' ce conduc la acceptare poate fi scris ca:
c)
) Z , ...a a a ], , ([q
0 n 2 1 0

-
' M

-
' M
) , ...a a a ], , ([p
1 n 2 1 1

-
' M
) , ...a a )], h(a , ([p
1 n 2 1 1

-
' M

-
' M
) , ...a a ], , ([p
2 n 2 2

-
' M
) , ...a a )], h(a , ([p
2 n 3 2 2

-
' M

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .

-
' M
) , a ], , ([p
n n n

-
' M
) , )], h(a , ([p
n n n

-
' M

-
' M
) , ], , ([p
1 n 1 n + +
, unde p
n+1
eF.
Tranziia din starea ] , [p
i
n )] h(a , [p
i i
se face prin regula (3) iar celelalte tranziii
prin regulile (1) i (2).
Astfel,

) Z , , (q ) , (p
0 0 1 1
e
i ) ), h(a , (p ) , (p : i
i i i 1 i 1 i
e
+ +


deci obinem o recunoatere i din partea lui M:

) Z ), ...a a h(a , (q
0 n 2 1 0

-
M
) , ...a a a ], , ([p
1 n 2 1 1

-
M

-
M
) , ...a a ], , ([p
2 n 2 2

-
M

-
M
) , a ], , ([p
n n n

-
M

-
M
) , ], , ([p
1 n 1 n + +
, unde p
n+1
eF.


Exist cteva proprieti ale mulimilor regulate care nu se pstreaz la mulimile
I.D.C., i anume proprietile de nchidere la intersecie i complementare.

Teorema 3.8.4
- 139 -

Clasa limbajelor I.D.C. nu este nchis relativ la intersecie.

Demonstraie:
S presupunem, prin absurd, c intersecia oricror limbaje I.D.C. este tot un limbaj
I.D.C. S construim un contraexemplu:
Am demonstrat c limbajul } 1 i c b {a L
i i i
> = nu este independent de context (v.
Observaia 3.4.1). Considerm acum dou limbaje care sunt I.D.C.:

} 1 j 1, i c b {a L
j i i
1
> > =
} 1 j 1, i c b {a L
j j i
2
> > =

Pentru aceste limbaje este uor s construim cte un automat push-down sau sau cte o
gramatic I.D.C.; spre exemplu, o gramatic pentru generarea limbajului L
2
ar putea avea setul
de reguli:
bc} B bBc, B a, A aA, A AB, {S .
Dar
2 1
L L L = i L nu este I.D.C., ceea ce contrazice presupunerea fcut.


Corolar 3.8.2
Clasa limbajelor I.D.C. nu este nchis relativ la complementare.

Demonstraie:
tim c clasa limbajelor I.D.C. este nchis la reuniune. Presupunnd c ar fi nchis i
la operaia de complementare, i innd cont de relaiile lui de Morgan privind
complementarea reuniunii ( C(AB)=C(A) C(B) ), am obine concluzia c are loc
nchiderea i la intersecie, ceea ce contrazice Teorema 3.8.4.


Teorema 3.8.5
Dac L este un limbaj I.D.C. iar R este o mulime regulat, atunci R L este un
limbaj I.D.C.

Demonstraie:
Fie L=T(M), M fiind un automat push-down:
) F , Z , q , , , , (Q M
M 0 0 M M
=
Fie i R=T(A), unde A este un automat finit nedeterminist:
) F , p , , , (Q A
A 0 A A
=
- 140 -

Construim un automat push-down M' pentru limbajul R L , ntr-un mod care s
simuleze funcionarea n paralel a lui M i A:
M' simuleaz micrile lui M pe intrarea fr a schimba starea lui A. Cnd M face o micare
pe simbolul de intrare a, M' simuleaz aceast micare i de asemenea simuleaz schimbarea
strii lui A pentru simbolul a. Automatul M' accept o intrare dac i numai dac att A ct i
M o accept.
Construcia formal a lui M' este urmtoarea:
) F F , Z ], q , [p , , , , Q (Q M
M A 0 0 0 M A
= '
,
unde este definit astfel:
X) a, q], ([p, ) ], q , p ([ e ' '
atunci cnd

e '
' =
X) a, (q, ) , q (
p a) (p,
M
A

Desigur, dac a = atunci p p ' = .

S demonstrm acum faptul c R L =T(M').

a) Se demonstreaz uor prin inducie relativ la i c:
dac ) Z w, ], q , ([p
0 0 0

i
M'
) , q], ([p, , atunci
) Z w, , (q
0 0

i
M
) , (q,
i w) , (p
0

i
A
s
) (p,
pentru i=0 rezultatul e trivial, deoarece lum p=p
0
, q=q
0
, =Z
0
i w=.
presupunem afirmaia adevrat pentru i-1 i fie
) Z xa, ], q , ([p
0 0 0

1 - i
M
) a, ], q' , ([p'
M'
) , q], ([p, ,
unde w=xa i a e sau a=.
Conform ipotezei de inducie, rezult c:
p x) , (p
0 A
' =
) Z x, , (q
0 0

-
M
) , , q ( '

n plus, conform definiiei,
p a) , p (
A
= '

i ) a, , q ( '

M
) , (q,







Stiva lui
M i M'


Figura 3.8.2
Intrarea lui A, M i M'
Controlul
lui M'
Controlul
lui A
Controlul
lui M
- 141 -


Utiliznd toate acestea, obinem:
p xa) , (p
0 A
=
) Z xa, , (q
0 0

-
M
) , (q,
sau, altfel scris,

e
e
T(M) xa
T(A) xa
, ceea ce trebuia demonstrat.

b) Reciproc, se procedeaz ntr-o manier similar, pentru a arta c:

) Z w, , (q
0 0

i
M
) , (q,
i w) , (p
0

i
A
s
) (p,
atunci ) Z w, ], q , ([p
0 0 0

-
' M
) , q], ([p, ,


Teorema 3.8.6
Clasa limbajelor independente de context este nchis n raport cu operaia de
oglindire.


Demonstraie:
Fie G o gramatic independent de context de forma:
G = (V
N
, V
T
, S, P)
i L = L(G).
Construim o nou gramatic G = (V
N
, V
T
, S, P), n care fiecare regul din mulimea
regulilor, P, este nlocuit cu o regul similar n care membrul drept este oglinditul
membrului drept al regulei corespunztoare din P:
P = {A u
~
| A u e P}

Se observ c regulile din P sunt tot independente de context. Este uor de demonstrat
c:
L(G) = L
~




Exemplul 2 Fie limbajul } b} {a, w {ww L
-
e = . S se exemplifice
proprietile de nchidere.


Limbajul L este format din cuvintele ale cror jumtate stng este
identic cu jumtatea dreapt. Presupunem c acest limbaj ar fi I.D.C.
Din Teorema 3.8.5 rezult c limbajul
+ + + +
= b a b a L L
1
ar fi i el
I.D.C.; dar } 1 j 1, i b a b {a L
j i j i
1
> > = nu este de acest tip, fapt ce se poate
vedea cu ajutorul teoremei de pompare:
Fie p,q N e . Alegem z =
q q q q
b a b a = uvwxy, unde |v| + |x| > 0, |vwx| s
q. Posibilitile de alegere ale subcuvntului vwx sunt multiple (a
i
b
j
cu i+j q s , b
i

dac
- 142 -

cu i q s , b
j-i
a
i
cu i s j q s ), ele ns nu permit crearea de cuvinte y wx uv
i i
care
s fie tot din L
1
(proprietatea egalitii jumtilor nu se poate pstra prin
pompare).
Din contradicia obinut rezult c limbajul L considerat iniial nu este
I.D.C.
S mai observm i faptul c se poate demonstra c L
1
nu este I.D.C. i
fr a folosi teorema de pompare, reducnd acest limbaj la limbajul
1} j , 1 i d c b {a L
j i j i
2
> > = .
Fie h(a)=h(c)=a i h(b)=h(d)=b. Atunci ) (L h
1
1
este format din toate
cuvintele de forma x
1
x
2
x
3
x
4
, unde x
1
i x
3
au aceeai lungime n
+
c} {a, , iar x
2
i
x
4
au aceeai lungime n
+
d} {b, .
Atunci
2
* * * *
1
1
L d c b a ) (L h =

.
Dac L
1
ar fi I.D.C., atunci (din Teoremele 3.8.3 i 3.8.5) rezult c L
2
ar
fi i el I.D.C., ceea ce tim c este fals.
Astfel s-a artat, din nou, faptul c L
1
nu este I.D.C.




S ne reamintim...

Familia limbajelor independente de context este nchis la:
- reuniune,
- concatenare,
- produs Kleene,
- oglindire,
- substituie,
- homomorfism,
- homomorfismul invers,
- intersecia cu mulimi regulate..
Familia limbajelor independente de context nu este nchis la:
- intersecie,
- complementara relative la un alphabet.



Teste de evaluare/autoevaluare
I. Intrebri.
1. S se enune i s se demonstreze 4 proprieti de nchidere
pentru limbajele de tip 2.
II. Exerciii.
1.Se consider limbajul L = {a
n
b
n
| n 1} {a
n
b
2n
| n 1}. S se
arate c L este un limbaj independent de context (se construiete un
automat push-down nedeterminist sau o gramatic IDC folosind
proprietatea de nchidere a limbajelor IDC la reuniune.)

- 143 -


M4.U5.4. Rezumat. Aceast unitate de nvare prezint proprieti de nchidere ale
familiei limbajelor de tip2, adic independente de context. Datorit faptului c
limbajele independente de context pot fi generate de gramatici de tip 2 sau recunoscute
de automatele push-down nedeterministe, n demonstrarea acestor proprieti se va
folosi una sau alte dintre reprezentti.
Spre deosebire de familia limbajelor de tip 3, limbajele regulate, familie limbajeor
independente de context nu este nchis la o serie de operaii cum ar fi intersecia i
complementara faa de un alfabet.
Propritile de nchidere pot fi folosite n demonstrarea anumitor rezultate. n plus
construciile folosite n demonstrarea acestor proprieti se pot folosi n construirea de
gramatici, respective automate push-down pentru anumite limbaje particulare.

- 145 -

Bibliografie.

[1]. AHO, A.V., ULLMAN, J. D. The theory of parsing, translation and compiling Prentice
Hall- London, 1972.
[2]. AHO, A.V., SETHI, R., ULLMAN, J.D. Compiling, Principles, Techniques and Tools,
Addison-Wesley, Reading, Mass., 1988.
[3]. GRIES, D. Compiler construction for digital computers, New-York, John Weley, 1971.
[4]. HOPCROFT, J.E., ULLMAN, J. D. Formal Languages and their relation to Automata ,
Addison-Wesley, Reading, Mass., 19769.
[5]. HOPCROFT, J.E., ULLMAN, J. D. Introduction to automata theory, Languages and
Computation , Addison-Wesley, 1979.
[6]. IACOB P., MARINESCU D. "An Optimal Representation of the Nondeterministic Finite
Automaton by a Set - Union Knapsack Problem" Proceedings of the International
Conference "Symetry and Antisymetry in Mathematics, Formal Languages and Computer
Science" Brasov 1996 pp 47-48.
[7]. KOZEN, D.C., Automata and Computability, Springer, 1997.
[8]. LIVOVSCHI, L. GEORGESCU, H. Bazele informaticii, Ed. Didactic i
Pedagogic, Bucureti, 1985.
[9]. MARCUS, S., Lingvistica Matematic, Ed. Didactic i Pedagogic, Bucureti, 1973.
[10]. JALOBEANU C., MARINESCU D.,. - Bazele teoriei calculului-Limbaje formale i
automate, Ed. Albastr, Cluj, 2007.
[11]. MARINESCU D., - A bidimensional Turing machine for the cutting stock problem with
quillotine restrictions - Proceeding of the scientific symposion with the contribution of
teachers and researchers from the Republic of Moldova , Brasov, 1991, pp 73-83.
[12]. MARINESCU D., - Limbaje Formale i Teoria Automatelor, Ed. Univ. Transilvania
Braov, 2003.
[13]. MARINESCU D., " The Use of Didactic Software JFLAP for Formal Languages "Report
TR--HH-10-97 Restructuring of the (re)training of school teachers In Computer science,
Computer Libris Agora, ISBN 973-97515-1-2, Cluj-1997, pp.240-251.
[14]. MARINESCU D., IACOB P., VLADAREAN C.- An Algorithm for Optimal
Representation of a Nondeterministic Finite Automaton By a set-union Knapsack
Problem, Proceedings of the 2-th International Conference "Symetry and Antisymetry in
Mathematics, Formal Languages and Computer Science"- Satelite Conference of 3 ECM-
Brasov 2000, pp 199-206.
[15]. MOLDOVAN, G., CIOBAN, V., LUPEA, M.A,M. Limbaje Formale i Teoria Automatelor-
Culegere de probleme, Ed. Mesagerul, Cluj-Napoca, 1997.
- 146 -

[16]. MARUCIAC, I. Teoria Algoritmilor, Ed. Didactic i Pedagogic, Bucureti, 1966.
[17]. ORMAN, G. Limbaje Formale, Ed. Tehnic, Bucureti, 1982.
[18]. ORMAN, G. Limbaje Formale i acceptori, Ed. Albastr, Cluj-Napoca, 2002.
[19]. PUN, GH.,. Gramatici matriceale, Ed. tiinufic i Enciclopedic, Bucureti, 1981.
[20]. PUN, GH.,. Mecanisme generative ale proceselor economice, Ed. Tehnic, Bucureti,
1982.
[21]. PUN, GH.,. Probleme actuale n Teoria Limbajelor Formale, Ed. tiinufic i
Enciclopedic, Bucureti, 1984.
[21]. SALOMAA, A. Formal Languages, Academic Press, New-York, 1973.
[22]. SIMOVICI, D. Limbaje Formale i Tehnici de compilare, Ed. Didactic i Pedagogic,
Bucureti, 1978.
[23]. SIPSER, M. Introduction to the theory of computation, PWS publishing Company,
Boston, 1996.