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. DANIELA MARINESCU


ASIST. IOANA PLAJER

PREP. ALEXANDRA BICOIANU

LIMBAJE FORMALE
I
TEORIA AUTOMATELOR
NVMNT LA DISTAN

BRAOV 2009-2010

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.

-1-

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

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%.;

-3-

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
-4-

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
-5-

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
-6-

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

-7-

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.

-8-

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.

-9-

Unitatea de nvare M1.U1. Noiuni generale de teoria


limbajelor formale
Cuprins
M1.U1.1.
M1.U1.2.
M1.U1.3.
M1.U1.4.

Introducere ............................................................................................... 10
Obiectivele unitii de nvare .................................................................. 10
Noiunea de limbaj.................................................................................... 10
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.
- 10 -

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: {, , , ..., }
-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 , 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.

- 11 -

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 uvvu) 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 ui, este definit recursiv astfel:
(1)
u0 =
(2)
ui+1 = uiu
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 i
astfel nct v = u. Dac = 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
u{,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.
- 12 -

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}.
L1={ }
L2={ a, ba, aaba, bbbb }
L3={ ap | p numr prim }
L4={ ai bi | i numr natural }
*
L5={ u a , b | Na(u)=Nb(u) }
unde Na (u) este numrul de apariii ale simbolului a n cuvntul u. Considerm i limbajul vid
, care nu conine nici un cuvnt Se observ c {} pentru c limbajul { } conine un
cuvnt i anume .
Limbajele L1 i L2 fiind finite se pot reprezenta prin enumerarea cuvintelor lor pe cnd
limbajele L3, L4 i L5 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)
L
(ii)
Dac x L atunci axb 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 L4 = { ai bi | i numr natural }.

a) Demonstrm prin inducie relativ la k faptul c a k b k L, k N , adic c


L4L:
Din (i) =a0b0L .
Dac akbkL prin (ii) aakbkbL adic ak+1bk+1L, deci prin inducie
rezult c L4L.
b) Demonstrm, prin inducie relativ la lungimea cuvintelor din L, faptul c
L L 4 :
a0b0 , adic , este singurul cuvnt de lungime 0 din L.
Presupunem c akbk este singurul cuvnt de lungime 2k din L ; atunci din
(ii) rezult c ak+1bk+1 este singurul cuvnt de lungime 2k+2 din L.
Pentru c L nu conine nici un cuvnt de lungime impar (este uor de
- 13 -

demonstrate aceast afirmaie tot prin inducie) rezult c LL4.


Din a) i b) rezult c cele dou limbaje sunt egale adic L4 =L .

Se observ c (i)-(iii) constituie un mecanism generativ pe cnd L4 este definit de o proprietate


specific.
Exemplul 5 Fie L definit dup cum urmeaz :
(i) L
(ii) Dac xL, atunci axbL i bxaL
(iii) Dac x1L, x2L atunci x1x2L
(iv) Nici un alt cuvnt nu aparine lui L.
Vom demonstra c L=L5.

Demonstrm nti c LL5.


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 L. Evident LL5 dar LL5
pentru c, de exemplu, baL. 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.

- 14 -

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 ( ) dac i numai dac exist
SR

cuvintele u, v, 1 , 1 astfel nct:


=u1v
=u1v
iar
11 F,
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 i 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 PW
(ii) Dac P1*P2 i P2P3 P1*P3
(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
*

Lg(SR, Ax)={ | , Ax }
Similar un sistem de rescriere poate fi privit ca un mijloc analitic sau de recunoatere,
considernd limbajul
(1)

La(SR, Ax)={ | , Ax }
Formula (1) reprezint limbajul generat de perechea (SR, Ax), iar formula (2) reprezint
limbajul recunoscut sau acceptat de perechea (SR, Ax).
(2)

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 :
VT, mulimea terminalelor
VN, mulimea neterminalelor sau a variabilelor
i limbajul se definete ca o submulime a lui VT *.
Revenind la exemplele anterioare, n exemplul 1.1.6, L se poate defini, n termenii unui sistem
de rescriere ca:
L = La(SR,{}),
unde V={a,b} iar F={ab}.
- 15 -

n exemplul 1.1.4,
L=Lg(SR,{x}){a,b}*,
unde

SR=({a,b,x}, {x, xaxb}).


Limbajul L din exemplul 1.1.5 este definit acum :
L = Lg(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 = {a2nbn | 0<n<5}
S se scrie mulimea de cuvinte din L.

- 16 -

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.

- 17 -

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


Cuprins
M1.U2.1.
M1.U2.2.
M1.U2.3.
M1.U2.4.
M1.U2.5.

Introducere.............................................................................................. 18
Obiectivele unitii de nvare ................................................................ 18
Algoritmi normali n sens Markov .......................................................... 18
Exemple de algoritmi normali.....................................................................19
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 11, 22 , . . . , kk i exist o
submulime, posibil vid, F1F 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.

- 18 -

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, 1 i k 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) ii nu este un element al lui F1 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:
aababba1 ababba 1babba 1bbba1bbb2 bb2 b 2 3. aba

- 19 -

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 ai # aj cu i, j 0 n aij, deci realizeaz nmulirea
a dou numere.
Fie i = 2 i j = 3. Atunci:
aa#aaa4 a#xaaa2 a#ayxaa2 a#ayayxa1 a#aayyxa2 a#aayyayx
( 3)

1 a#aayayyx1 a#aaayyyx a#aaayyy4 #xaaayyy2 #ayxaayyy


2 #ayayxayyy1 #aayyxayyy2 #aayyayxyyy1 #aayayyxyyy
1 #aaayyyxyyy3 #aaayyyyyy5 #aayyyyyy5 #ayyyyyy
5 # yyyyyy6 yyyyyy7* aaaaaa.
Exemplul 9 Trecerea de la un numr natural la succesorul su este dat de
algoritmul peste alfabetul = {a} cu mulimea regulilor format numai dintr-o
singur regul:
1. a aa.
Algoritmul transform un cuvnt de forma ai n ai+1.
Exemplificare:
aaa .aaaa

Exemplul 10 Algoritmul care calculeaz suma a dou sau mai multe numere
este (, P) unde = {a, #} i mulimea regulilor P :
1. #
Acest algoritm transform ai#aj n ai+j, ai#aj#ak n ai+j+k, etc.
Exemplificare:
a3 # a2 # a4 a5 # a4 a9

- 20 -

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


AN = (, P) unde = {a, #} i P conine regulile:
1. a#a #
2. #
S calculm modulul diferenei dintre 4 i 2.
a4 # a21 a3 # a 1 a2 # 2 a2

AN :

Exemplul 12 Restul mpririi unui numr natural la 5 transform:


i / 5

iar AN = (, P) unde = {a} i P :


1. aaaaa

ai ai5

Exemplificare:
AN :

a13 a8 a3

Exemplul 13 Ctul mpririi unui numr natural la 5 transform:


# ai ai / 5 iar algoritmul este definit de :
# aaaaa a #
AN = (, P) unde = {a, #} i P :
# a #

Exemplificare pentru ctul mpririi numrului natural 13 la 5:


AN :

# a13 a # a8 a2 # a3 a2 # a2 a2 # a a2 # . a2

- 21 -

Exemplul 14 Ctul i restul mpririi unui numr natural la 5:


# ai ai / 5 # ai5i / 5
AN = (, P) unde = {a, #} i P : # aaaaa a #

# #

Calculm ctul i restul mpririi numrului natural 13 la 5:


AN :

# a13 a # a8 a2 # a3 . a2 # a3

Exemplul 15 Cel mai mare divizor comun a dou numere naturale:


ai#ajacmmdc(i,j)
1. axxa
2. a#ax#
3. a##y
4. ya
5. xz
6. za
7. #
El traduce ai # aj n ak, 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.
a 6 # a 4 -a 5 x # a 3 -a 4 xa # a 3 -a 3 xa 2 # a 3 -a 2 xa 3 # a 3 -axa 4 # a 3 - xa 5 # a 3 - xa 4 x # a 2 - xa 3 xa # a 2 - xa 2 xa 2 # a 2 - xaxa 3 # a 2 - x 2 a 4 # a 2 - x 2 a 3 x # a - x 2 a 2 xa # a - x 2 axa 2 # a - x 3 a 3 # a - x 3 a 2 x # - x 3 axa # - x 4 a 2 # - x 4 a # y - x 4 # y 2 - x 4 # ay - x 4 # a 2 - zx 3 # a 2 - z 2 x 2 # a 2 - z 3 x # a 2 - z 4 # a 2 -az 3 # a 2 -a 2 z 2 # a 2 -a 3 z # a 2 -a 4 #a 2 -a 3 x # a -a 2 xa # a -axa 2 # a - xa 3 # a - xa 2 x # - xaxa # - x 2 a 2 # - x 2 a # y -

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

Similar dac calculm cel mai mare divizor comun al lui 4i 6 avem:

a 4 # a 6 -a 3 x # a 5 -a 2 xa # a 5 -axa 2 # a 5 - xa 3 # a 5 - xa 2 x # a 4 - xaxa # a 4 - x 2 a 2 # a 4 - x 2 ax # a 3 - x 3 a # a 3 - x 4 # a 2 -zx 3 # a 2 -z 2 x 2 # a 2 -z 3 x # a 2 -z 4 # a 2 -az 3 # a 2 -a 2 z 2 # a 2 -a 3 z # a 2 -a 4 # a 2 -a 3 x # a -a 2 xa # a -

- 22 -

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

Exemplul 16 mprirea a dou numere naturale:

a i # a j a i / j # a i ji / j

AN = (, P) unde = {a, #, x, y, c, r, s, t} i P:
ac ca

xaa axa
c # a c # t

tx rt
ta t

t
a # x acy #

P : a # # x

2
c # x c # s
sx s

sa s
s

x
y

a r

Exemplificri
a3 # a5 -a2 # xa5 -a2 # axa 4 -a2 # a2 xa3 -a2 # a3 xa2 -a2 # a 4 xa -a # xa 4 xa -a # axa 3 xa -a # a2 xa 2 xa -a # a3 xaxa -# xa3 xaxa - # axa 2 xaxa - # a2 xaxaxa - # a3 xaxa - # a 4 xa - # a5 - # ra 4 - # r 2a3 -#r 3a2 - # r 4a - # r 5

- 23 -

a11 # a 4 -a10 # xa 4 -a10 # a 3 xa -a 9 # xa 3 xa -a 9 # a 2 xaxa -a 8 # xa 2 xaxa - a 8 #axaxaxa -a 7 # xaxaxaxa -a 7 cy # axaxaxa ca 7 y # axaxaxa -ca 7 y # a 4 -ca 7 # a 4 -ca 6 # xa 4 -ca 6 # a 3 xa -ca 5 # xa 3 xa -ca 5 # a 2 xaxa -ca 4 # xa 2 xaxa -ca 4 # axaxaxa -ca 3 # xaxaxaxa -ca3cy # axaxaxa -c 2a3 y # axaxaxa -c 2a3 y # a4 -c 2a3 # a4 -c 2a2 # xa 4 -

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


3

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

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 V i
nici nici nu au x ca subcuvnt). Relaia se definete astfel: 11 dac i numai dac exist
cuvintele , u, peste V\{x} astfel nct: 1=u, 1=u, i xxF.
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 an# n a2 . S se exemplifice algoritmul
- 24 -

pentru urmtoarele valori ale lui n:


a.
n = 2;
b.
n = 3;
c.
n = 4.

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.

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.

- 25 -

Unitatea de nvare M1.U3. Gramatici generative i analitice


Cuprins
M1.U3.1.
M1.U3.2.
M1.U3.3.
M1.U3.4.
M1.U3.5.
M1.U3.6.

Introducere............................................................................................ 26
Obiectivele unitii de nvare .............................................................. 26
Gramatici generative i analitice ........................................................... 26
Ierarhia lui Chomsky............................................................................. 30
Operaii cu limbaje................................................................................ 35
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=(VN, VT,S,P) ,

- 26 -

unde VN i VT sunt alfabete finite disjuncte SVN i P este o mulime finit de perechi ordonate
(u,v), astfel nct v este un cuvnt din V*, unde V=VNVT i u este un cuvnt din V* care conine
cel puin o liter din VN.
Elementele lui VN formeaz mulimea neterminalelor sau variabilelor, iar cele ale lui VT
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| wV *, 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=(VN, VT, S, P), unde VN, VT, 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 vV* conine cel puin o liter din VN.
Limbajul L(G) recunoscut de gramatica G, sau acceptat este definit de :
*

L(G)={ w| wVT*, 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 G1, se numesc gramatici echivalente atunci i numai atunci
cnd L(G)=L(G1).
Exemplul 1 Limbajul L = { aibi | iN } este generat de gramatica generativ
G = ({S}, {a,b}, S, {S, SaSb})
i recunoscut de gramatica analitic
G1 = ({S}, {a,b}, S, {S, aSbS})
Deci L(G) = L(G1).
Exemplul 2 Limbajul L = { w | w{a,b}*, Na(w)=Nb (w) } este generat de
gramatica generativ
G = ({S}, {a,b}, S, {S, Sasb, SbSa, SSS})
i recunoscut de gramatica analitic
G1 = ({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 = (VN, VT, S, P) o gramatic generativ (sau analitic). Fie P1 o mulime de reguli
de forma u v dac v u este n P. Atunci L(G1)=L(G) unde G1=(VN, VT, S, P1) este o
gramatic analitic (generativ).

- 27 -

Demonstraie:
Dac G este o gramatic generativ vom demonstra c pentru orice cuvnt din
(VNVt)* avem
*

(1.2.1)

S
G1

Vom arta nti prin inducie c dac pentru un anume k


u0 u1 ... uk
este o derivaie n G, atunci
uk uk-1 .. u0
este o derivaie n G1.
Evident, pentru k=1 afirmaia este valabil conform definiiei regulilor lui P1. Procednd
inductiv, presupunem c afirmaia este adevrat pentru k pai i fie o derivaie n k+1 pai de
forma:
u0 u1 ... uk uk+1 n G.
Conform ipotezei induciei
uk uk+1 uk+1 uk
G

u0 uk
G

G1

uk u0
G1

Atunci din cele dou rezult c


*

u0 uk+1
G

uk+1 u0
G1

Dac acum u0=S vom obine afirmaia (1.2.1) dorit, deci L(G)=L(G1).

Observaia 1.2.1 Pentru o gramatic generativ sau analitic G, gramatica G1 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
- 28 -

Se poate demonstra c L(G)={anbncn | n1}

Exemplul 4[21] Fie limbajul L={ ww | w{0,1}* }. Gramatica G definit de:


G=({x0, x1, x2, x3, y0, y1}, {0,1}, x0, P}), unde P este:
x1x2ix1yi
yijjyi
pentru fiecare i i j din {0,1}
yix3x2ix3
ix2x2i
Aceast gramatic genereaz limbajul L. S ncercm o derivaie n aceast
gramatic:
x0 x1x2x3 0x1y0x3 0x1x20x3 01x1y10x3 01x10y1x3 01x10x21x3
01x1x201x3 0101x3 0101
P:

x0x1x2x3
x1x2
x3

Exemplul 5 [21] Pentru limbajul L={an | n1} vom avea urmtoarele reguli
gramaticale care se bazeaz pe identitatea n2=1+3+...+(2n-1), unde toate
simbolurile cu excepia lui a sunt simboluri neterminale:
P:
x0a
x0axx2z
x2zaa
xaaa
yaaa
x2zy1yxz
xx1x1yx
yx1y1yx
xy1x1y
yy1y1y
ax1axxyx2
x2yxy2
y2yyy2
y2xyx2
S ncercm i aici cteva derivaii:
x0 axx2z axaa aaaa
x0 axx2z axy1yxz ax1yyxz axxyx2yyxz axxyxy2yxz
axxyxyy2xz axxyxyyx2z axxyxyyaa axxyxyaaa
axxyxaaaa axxyaaaaa axxaaaaaa axaaaaaaa
aaaaaaaaa = a9 = a3.

- 29 -

Exemplul 6 [21] ] Pentru generarea limbajului L = { a2 | n0 }vom avea


urmtoarele reguli gramaticale
x0yxy
yxyz
zxxxz
zyxxy
xa
y
Vom construi o derivaie n aceasta gramatic pentru n = 2, pornind de la
simbolul iniial x0
x0 yxy yzy yxxy yzxy yxxzy yxxxxy xxxy axxxy
aaxxy aaaxy aaaay aaaa

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


S 0B

P:
B 1S
B 1

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={S aSb,S ab}. Este uor de demonstrat c limbajul generat de
gramatica G este
L(G) = {anbn | n>0}.
Pentru n = 4 obinem urmtoarea derivaie:
S aSb aaSbb aaaSbbb aaaabbbb = a4b4

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 i{0,1,2,3}, o gramatic generativ, G=(VN, VT,
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 u1Au2u1 wu2 , unde
u1, u2V*, AVN i w {VN VT }+ cu o singur excepie posibil S, care poate s
apar dac S nu apare n dreapta nici unei reguli din P.
- 30 -

(2) Reguli independente de context (IDC): Fiecare regul din P este de forma
A w cu A VN i w {VN VT } *.
(3) Reguli regulate (R): Fiecare regul este de una din urmtoarele dou forme A aB sau
A a , unde A, BVN i aVT.
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 Li familia limbajelor de tip (i) avem, evident, urmtoarea incluziune ntre
familiile de limbaje:
L3 L2 L1 L0
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| |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=(VN, VT, S, P), n care regulile din P sunt monotone, adic de
forma uv unde |u| |v|. Presupunem c regula uv nu este dependent de context i c este de
forma:
A1 A2 Am B1 B2 Bn
Pentru c gramatica este monoton avem m n iar Ai i Bi pot fi simboluri terminale sau
variabile. Presupunem c toate simbolurile Ai sunt variabile (n caz contrar nlocuim fiecare
simbol terminal Ai printr-un nou symbol neterminal Ai i adugm regula Ai Ai).
Considerm noi variabile C1,C2, , Cm. i nlocuim regula iniial uv prin mulimea de reguli
dependente de context P(u,v):
A1 A2 Am
C1 A2 Am
C1 A2 Am
C1 C2 Am

C1 C2 Cm-1Am
C1 C2 Cm Bm+1 Bm+2 Bn
C1 C2 Cm-1Cm Bm+1 Bn C1 C2 Cm-1Bm Bm+1 Bn
C1 C2 Cm-1Bm Bm+1 Bn C1 C2 Cm-2Bm-1 Bm Bn
- 31 -

..
C1 B2 Bn
B1 B2 Bn
Fie acum gramatica G = (VN {C1, C2, , Cm}, VT, 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 C1B
C1B C1C2
C1C2 C1C
C1C BC
Obinem n final gramatica dependent de context echivalent cu G, G= ({S,B,C,
C1, C2}, {a,b,c}, S, P), unde P:
S
aSBC
S
aBC
bB
bb
bC
bc
cC
Cc
aB
ab
CB
C1B
C1B C1C2
C1C2 C1C
C1C 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 x1x2),
gramatica din exemplul 8 este independent de context iar cea din exemplul 7 este regulat sau
de tip 3.

- 32 -

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 VN = {
F, A, V, Pn, S, Sn}, (variabile care reprezint, respective: fraza, articol, verb,
predicat nominal, substantiv, subiect), VT = {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, ASSn, VSPn, SnPnF}
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 | y VT* } este n mulimea palindroamelor cu VT={a1,
..., an} i poate fi generat de gramatica:
G=({S}, VT, S, {S, Sa1Sa1, Sa2Sa2, ..., SanSan}).
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 = (VN, VT, S, P) este o gramatic DC, atunci exist alt gramatic D.C., G1, care
genereaz acelai limbaj cu G, pentru care simbolul initial (de start) nu apare n dreapta
nici unei reguli ale lui G1. Dac G este I.D.C. sau R atunci i G1 este I,D,C,, respectiv R.
Demonstraie :
Fie S1VNVT. Construim gramatica G1={VN{S1}, VT, S1, P1 }, unde P1 conine toate
regulile din P i n plus toate regulile de forma S1 unde
S P :
- 33 -

P1=P{S1 S P }
Observm c S1VNVT 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(G1).
*

a) Presupunem c wL(G), deci exist o derivaie n gramatica G de forma S w. Atunci prima


regul folosit este de forma S deci derivaia va fi :
*

S w
G

Prin definiia lui P1 avem : S1 P1 i deci:


S1
G1

Pentru c toate regulile lui P sunt n P1 rezult c orice derivaie din G este i o derivaie n
gramatica G1 deci
*

w
G1

Combinnd cele dou derivaii se obine:


*

S1 w ,
G1

G1

Deci w L(G1), de unde rezult c L(G)L(G1).


*

b) Presupunem acum c wL(G1), deci exist derivaia S1 w n gramatica G1. Prima regul
folosit este de forma S1, pentru un anume . Rezult din construcia gramaticii G1 c S
*

este o regul din P i deci S, n gramatica G. Acum w este o derivaie n gramatica G1


dar nu poate avea simbolul S1, cci folosete numai regulile din P1 care sunt i n P. Rezult c
*

w este o derivaie n gramatica G i atunci:


*

S w,
G

adic wL(G).
Evident c regulile adugate la P pentru a obine P1 sunt de acelai tip cu regulile lui P
deci dac G este DC (IDC sau R) atunci i G1 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.

- 34 -

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
L1L2={ w | wL1 sau wL2 }
Intersecie a dou limbaje
L1L2={ w | wL1 i wL2 }
Diferena a dou limbaje
L1-L2={ w | wL1 i wL2 }
Complementara unui limbaj relativ la un alphabet V
CV(L)=V*-L
n afar de aceste operaii se pot introduce o serie de operaii specifice limbajelor :
Concatenarea a dou limbaje
L1L2={uv | uL1, vL2
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:
L0 = {}
Li+1 = Li L .
Produsul Kleene (sau nchiderea Kleene) este definit prin reuniunea tuturor puterilor lui L:

L* Li
i 0

nchiderea Kleene - liber este

L Li
i 1

Ctul stng a dou limbaje este limbajul format din sufixele cuvintelor din L1 care au prefixul
n L2:
L2\L1={v |uvL1, uL2}
Derivata stng a unui limbaj relativ la cuvntul v este
vs L={u |vuL}
adic ctul stng al limbajelor
{v}\L
Ctul drept a dou limbaje este limbajul format din prefixele cuvntelor din L1 cu sufixul n L:
- 35 -

L1/L2 = { v| vuL1 pentru uL2 }


Derivata dreapt a unui limbaj relativ la cuvntul u este
udL= {v |vuL}
adic ctul drept al limbajelor:
L/{u}
Reflectatul sau oglinditul unui limbaj
~
u | uL }
L= { ~
Substituia unui limbaj se definete astfel:
aV definim (a) un limbaj peste Va iar apoi se aplic proprietile:
()=,
(uv)=(u)(v) u, v V*
deci este o aplicaie : V* P(V*)
unde V= Va .
aV

Substituia unui limbaj L este atunci:


(L)={ v | v(u) pentru uL }
Dac (a) este un singur cuvnt ua, atunci substituia se numete homomorfism h:V*V*. Un
homomorfism se numete -liber dac nici unul din cuvintele (a)=ua 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, Li (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
Bb
B bB
Aa
S se construiasc o gramatic echivalent independent de context.
2. Considerm gramatica G=({x0,x,y,z},{a }, x0, P), unde P este mulimea
produciilor:
(1) x0yxy
(2) xyyz
(3) zxxxz
- 36 -

(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 = {anbn | n>0}
S ne reamintim...
O gramatic generativ este un quadruplu ordonat
G=(VN, VT,S,P) ,
unde VN i VT sunt alfabete finite disjuncte SVN i P este o mulime finit de
perechi ordonate (u,v), astfel nct v este un cuvnt din V*, unde V=VNVT i u
este un cuvnt din V* care conine cel puin o liter din VN.
Limbajul L(G) generat de G este definit de:
*

L(G)={ w| wV *, 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},{,,, p,q,r, },S, P), unde P =
{SSS, SSS, SS, SA, AA, Ap, Aq, Ar }.

- 37 -

S se verifice dac pqrpqr L(G).


2. S se construiasc o gramatic G care generaz urmtorul limbaj:
L = {a2nbn | 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..

- 38 -

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

- 39 -

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


Cuprins
M2.U1.1.
M2.U1.2.
M2.U1.3.
M2.U1.4.
M2.U1.5.

Introducere............................................................................................ 40
Obiectivele unitii de nvare .............................................................. 40
Automate finite ..................................................................................... 40
Legtura dintre gramaticile regulate i automatele finite ........................ 45
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=(VN,VT,S,P), unde regulile din P sunt de forma
:
- 40 -

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, , , q0, F), este format din:
Q - o mulime finit nevid (mulimea strilor);
- un alfabet finit de intrare;
- o aplicaie numit funcie de tranziie, care ataeaz fiecrei combinaii <stare,
simbol de intrare> o nou stare
:Q Q;

q 0 Q starea iniial;
F Q 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 q0 iar capul de citire analizeaz cel mai din stnga
a0

a1

ai

an

CONTROL
FINIT

Figura 2.1.1

simbol scris pe banda de intrare. Interpretarea lui (q,a) p 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 p P i
a astfel nct (p,a)=. 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 :

(q, ) q

x * , a ,
(q, xa) ( (q, x), a)
*

- 41 -

unde (q, x) p 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 .
Definiia 2.1.2 Un cuvnt x este acceptat sau recunoscut de un automat finit M, dac,
(q 0 , x) p pentru p F .
Limbajul acceptat de automatul M se noteaz
T(M) x (q0 , x) F .
Un automat finit determinist se poate defini n termenii unui sistem de rescriere SR=(V,
P), unde :

i P:

V Q , unde Q
q 0 Q starea iniial
F Q mulimea strilor finale
q i a k q j , unde q i , q j Q i a k

i n plus pentru fiecare qiak exist exact o regul n P.

Atunci T(M) x

q 0 x p, p F .

Definiia 2.1.3 Numim configuraie instantanee perechea (q,x), format din starea q Q n
care se afl automatul finit i irul de caractere 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 (q,a) p , atunci vom nota modificarea
configuraiei astfel: (q, a ) ( p, ) .
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

{0,1} , Q {q 0 , q 1 , q 2 , q 3 } , F {q 0 }

M (Q, , ,q 0 , F)

q0

q1

q2

q1

q0

q3

q2

q3

q0

q3

q2

q1
- 42 -

Fie irul de intrare 10110010; atunci putem urmri execuia automatului astfel:

(q 0 ,10110010) (q 2 ,0110010) (q 3 ,110010) (q1 ,10010)


(q 3 ,0010) (q 2 ,010) (q 3 ,10) (q1 ,0) q 0 F ,
deci 10110010 T(M) .
n mod echivalent, ntr-un calcul de configuraii se scrie:
(q0,10110010) (q2,0110010) (q3,110010) (q1,10010)
(q3,0010) (q2,010) (q3,10) (q1,0) (q0,) unde q0 F,
deci s-a obinut din nou c 10110010 T(M) .
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, , ,q0, F), este format din Q, ,
q0, F prezentate n definiia 2.1.1, dar funcia de tranziie este aici
': Q P (Q) .
Deci '(q, a) este o mulime de stri i nu o singur stare.

i aici se poate extinde la Q astfel:

'(q, ) {q}

'(q, xa) '(p, a) , x , a .

p'(q, x)

Acum se poate extinde la P (Q) astfel:

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


i 1

Definiia 2.1.5 Un cuvnt x este acceptat sau recunoscut de un automat finit nedeterminist M
dac (q 0 , x) F , adic dac M pornind din starea q0 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: q i a k q j , 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 | (q,w) F }
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.

- 43 -

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):
(q0,0101) (q0,101) (q0,01) (q0,1) (q0,) , q 0 F
(q0,0101) (q0,101) (q0,01) (q0,1) (q1,) , q 1 F

(q0,0101) (q0,101) (q0,01) (q3,1) blocare ( (q 3 ,1) )


(q0,0101) (q0,101) (q1,01) blocare ( (q 1 ,1) )
(q0,0101) (q3,101) blocare ( (q 3 ,1) )

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):
(q0,0110) (q0,110) (q0,10) (q0,0) (q0,) , q 0 F
(q0,0110) (q0,110) (q0,10) (q0,0) (q3,) , q 3 F

(q0,0110) (q0,110) (q0,10) (q1,0) blocare ( (q 1 ,1) )


(q0,0110) (q0,110) (q1,10) (q2,0) (q2,) , q 2 F succes !
(q0,0110) (q3,110) blocare ( (q 3 ,1) )

c) Configuraiile instantanee ce determin acceptarea n cazul cuvntului de


intrare 010011 sunt:
(q0,010011) (q0,10011) (q0,0011) (q3,011) (q4,11) (q4,1) (q4,)
i
(q0,010011) (q0,10011) (q0,0011) (q0,011) (q0,11) (q1,1) (q2,)
Ambele arat faptul c irul de intrare poate fi citit de pe band ajungnd ntr-o
- 44 -

stare final (q2 sau q4), 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 q1, deoarece se observ c (q 1 ,0) ).

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 M (Q, , , q 0 , F) un automat finit nedeterminist care accept L, adic
L=T(M).
Definim M' (Q' , , ' , q' 0 , F' ) 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)

Q' [q 1 , q 2 ,...,q k ] q i Q, 0 k card(Q) ;

q 0 [q 0 ] ;

F' Q', F' , conine cel puin o stare final din F;

i definim tranziiile:

([q 1 , q 2 ,...,q t ], a) [p1 , p ,..., p j ] ({q1 , q 2 ,...,q t }, a) {p1 , p 2 ,..., p j }

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

p l (qi , a), l 1, j
i 1

Se arat prin inducie asupra lungimii irului de intrare x c :

(q0 , x) [q 1 , q 2 ,...,q i ] (q 0 , x) {q 1 , q 2 ,...,q i }


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

Conform ipotezei induciei,

(q0 , x) [p1 , p 2 ,..., p j ] (q0 , x) {p1 , p 2 ,..., p j }

- 45 -

Prin definiie,

([p1 , p 2 ,...,p j ], a) [r1 , r2 ,...,rk ] ({p1 , p 2 ,...,p j }, a) {r1 , r2 ,...,rk }

Astfel,

(q0 , xa) [r1 , r2 ,..., rk ] (q 0 , xa) {r1 , r2 ,..., rk }

Pentru a completa demonstraia mai avem de adugat c (q 0 , x) F exact cnd

(q 0 , x) conine o stare a lui Q care este n F.


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

(q0 ,0) {q 0 , q1 }
(q ,1) {q }

0
1

(q
,0)

(q1 ,1) {q 0 , q1 }
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 :


M ( {[q 0 ], [q 1 ], [q 0 , q1 ]} , {0,1} , , [q 0 ] , {[q 1 ], [q 0 , q1 ]} )

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

([q 1 ],0)

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

([q 0 , q 1 ],1) [q 0 , q 1 ]
Deci automatul M va avea diagrama tranziiilor ca n figura 2.2.2:

- 46 -

Star
t

1
[q0]

[q1]

1
[q0,q1]

0,1
Figura 2.2.2

Teorema 2.2.2
Fie G=(VN, VT, S, P) o gramatic de tip 3. Atunci exist un automat finit nedeterminist
M (Q, , , q 0 , F) cu T(M)=L(G).
Demonstraie:
Construim
Q VN {T}, T VN ;

q0 S;

Dac S P , atunci F {S, T} i S nu apare la dreapta nici unei


reguli; dac S P , atunci F {T} ;

(T, a) , a VT ;

B a P

atunci T (B, a) ;
Dac
a

V
,
B

V
T
N

B aC P

atunci C (B, a) ;
a

V
,
B,
C

V
T
N

Dac

Dac exist

B VN

care nu apare n membrul stng al nici unei reguli din P,

atunci (B, a) , a VT .
Atunci M simuleaz derivaiile n G. S artm c, ntr-adevr, T(M)=L(G):
a) Fie x a 1a 2 ...a n L(G) , n 1 . Atunci:

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


pentru anumite variabile Ai din VN. Din construcia automatului M avem:

A 1 (S, a 1 )
A 2 (A 1 , a 2 )
- 47 -


A (A n -1 , a n )
Aadar:
(S, a1a2an) (A1, a2an) (An-1, an) (A,)
Adic cuvntul x a 1a 2 ...a n
Pentru c x a fost din L(G)

T(M) .

L(G) T(M)
b) Fie x T(M) ,

| x | 1

exist strile S,A1,,An-1,T astfel nct:

A 1 (S, a 1 )
S a 1A1 P
A (A , a )
A a A P
2
1
2

2
2

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

A n 1 a P
deci are loc derivaia:

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


De aici x L(G) T(M) L(G)
Din (a) i (b) T(M) L(G) .

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

- 48 -

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

S 0B
B 0B

B 1S

B 0

P:

a) S se construiasc automatul finit, M, care s recunoasc L(G);


b) Pornind de la M s se construiasc automatul finit determinist, M1,
echivalent cu M:
c) S se construiasc gramatica G care s genereze T(M1).
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:
(S,0) {B} (B,0) {A, B} (A,0)

(S,1)

(B,1) {S}

(A,1)

S reprezentm n figura urmtore diagrama tranziiilor din automatul


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

0
Start

B
1

A
Figura 2.2.3

- 49 -

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, M1, echivalent cu M:

M 1 ( Q,{0,1}, ,[S], {[A]} )


Q {[S], [B], [A], [A, B]}
(n Q
[S, A],[S, B],[S, A, B] )

nu

sunt

necesare

strile

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

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


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

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

Descriei un automat finit determinist pentru L = {w | w{0,1}*, w are


un numr par de 0 i un numr impar de 1}
S se construiasc automatul finit care accept limbajul:

- 50 -

L = {0n1m | n0, m1}{1n0m | 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, , , q0, F), este format din:
Q - o mulime finit nevid (mulimea strilor);
- un alfabet finit de intrare;
- o aplicaie numit funcie de tranziie, care ataeaz fiecrei combinaii
<stare, simbol de intrare> o nou stare
:Q Q;
q 0 Q starea iniial;
F Q mulimea strilor finale.
Un automat finit nedeterminist, notat M=(Q, , ,q0, F), este format din Q, ,
q0, F prezentate n definiia 2.1.1, dar funcia de tranziie este aici
': Q P (Q) .
Deci '(q, a) 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:
- 51 -

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.

- 52 -

Unitatea de nvare M2.U2. Minimizarea automatului finit


Cuprins
M2.U2.1.
M2.U2.2.
M2.U2.3.
M2.U2.4.
M2.U2.5.

Introducere............................................................................................ 53
Obiectivele unitii de nvare .............................................................. 53
Minimizarea automatului finit ............................................................... 53
Algoritmi pentru minimizarea automatului finit .................................... 57
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 (xRx, x S)
2) Simetric (xRy yRx)
3) Tranzitiv (xRy, yRz xRz)

- 53 -

O relaie de echivalen peste S mparte mulimea S n clase de echivalen, submulimi


x, y Si xRy .
disjuncte Si astfel nct
S S
i

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
xRy xzRyz z S .
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:

xRy z , xz L yz L

este de indice finit.


Demonstraie:
a) Artm c (1) (2) :
Fie L=T(M),

M (Q, , , q 0 , F) . Fie R o relaie de echivalen definit de


xR' y (q 0 , x) (q 0 , y) p .

Demonstrm c relaia R este invariant la dreapta de indice finit:


-

(q , xz) (p, z)
z * , 0
evident (q 0 , xz) (q 0 , yz)

(q
,
yz)

(p,
z)
0

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 x L (q 0 , x) F .
b) Artm c (2) (3) :
Fie R o relaie de echivalen invariant la dreapta de indice finit peste L. Deoarece L
este reuniunea claselor de echivalen din R,

x, y L : xR' y z L : xzR' yz
xR' y xzR' yz yz L xz L xRy

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 (3) (1) :
Presupunem xRy. Atunci:

pentru fiecare w, z * , xwz L ywz L


xwRyw R invariant la dreapta.
- 54 -

Fie Q mulimea finit a claselor de echivalen induse de R, [x] Q' coninnd x.


Definim ([x], a) [xa] . Definiia e consistent pentru c R este invariant la
dreapta.
Fie
- q 0 []
- F {[x] x L}
Automatul finit M (Q, , , q 0 , F) accept L pentru c

(q0 , x) [x] [x] .


n concluzie, x T(M' ) [x] F' x L .

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, M (Q, , , q 0 , F) 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 Q o stare din M; x astfel nct (q 0 , x) q . Dar q poate


fi scos din Q i gsit un automat mai mic identificnd q cu starea

(q0 , x) , din M.

Dac (q 0 , x) (q 0 , y) q atunci xRy deci (q 0 , x) (q 0 , y) ,


ceea ce trebuia demonstrat.

Observaia 2.3.1
nu sunt regulate.

Teorema 2.3.1 furnizeaz un mijloc de a demonstra c anumite limbaje

i I} i I {i j j N} o mulime monoton
cresctoare. Se consider diferena d j i j1 i j , j 1,2,...
Urmeaz c L este de tip 3 d j e periodic.
Observaia 2.3.2

Fie limbajul L {a

a i Ra j i jmod d , unde d=max{dj}.

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.

- 55 -

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 M (Q, , , q 0 , F) un automat finit determinist i q1,q2 dou stri
distincte. Spunem c x distinge q1 de q2 dac:
(q 1 , x) * (q 3 , )

(q 2 , x) * (q 4 , )
i una i numai una dintre strile q3 i q4 este stare final adic:
q3 F q4 F
i
q4 F q3 F.
k

Definiia 2.3.5 Spunem c q1 i q2 sunt k-nedistinctibile ( q1 q 2 ) dac i numai dac nu


exist x, cu |x| k, astfel nct x distinge q1 de q2.
Spunem c q1 si q2 sunt nedistinctibile ( q1q2 ) dac sunt k-nedistinctibile

Definiia 2.3.6
pentru k0.

Definiia 2.3.7 O stare q este inaccesibil dac nu exist x astfel nct

(q 0 , x) (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 M (Q, , , q 0 , F) un automat finit determinist cu n stri. Strile q1 i q2 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.
n 2

n 3

Vom demonstra c ... .


Observm c pentru q1,q2Q avem:

(1)

(2)

q 1 q (q1 , ), (q 2 , ) F sau Q \ F q1 , q 2 F sau, respectiv, F


0

k
k -1
k -1

q 1 q q 1 q 2 a , (q1 , a) (q 2 , a)

Relaia partiioneaz Q n dou clase de echivalen: F i K\F.


k 1

k 1

Dac atunci este o rafinare a lui i conine cel puin o clas de


echivalen n plus.

- 56 -

Pentru c sunt cel mult n-1 stri n F sau Q\F , cel mult n-2 rafinri a lui .
k

k 1

Aadar, este prima relaie pentru care .

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,,,q0,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 , ,... pn cnd relaia se stabilizeaz adic

k 1

A.3

Alegem .
Se construiete M=(Q, , , q0, F) unde Q e mulimea claselor de echivalen ale
lui Q, astfel:
([q],a)=[p] dac (q,a)=p
q0=[q0]
F= [q] qF

(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,) cu (q,p)=a (q,a)=p
- q0Q
Ieire
Mulimea de noduri QQ astfel nct exist un drum de la q0 la pQ.
Algoritmul marcheaz succesiv nodurile accesibile din q0 printr-un drum. Astfel,
gsete nodurile accesibile i le elimin pe celelalte. Prezentm n continuare dou variante ale
acestui algoritm:
Varianta I
BI.1 Iniializeaz Q={q0} i marcheaz q0 cu 0.
BI.2

Pentru qQ caut pQ astfel nct exist un arc (q,p); marcheaz p cu 1+ marca


lui q (dac p nu e marcat) i adaug pe q la Q; reia pasul BI2.
Dac qQ i p astfel nct (q,p), p este marcat atunci stop.

Sau:
- 57 -

Varianta a II-a
BII.1 Iniializeaz L= q0 , marcheaz q0.
BII.2 Dac L e vid stop .
Dac nu, alege primul element q din L i l scoate din L.
BII.3 Pentru pQ astfel nct (q,p), dac p nu e marcat, marcheaz p i adaug p n
capul listei L. Salt la pasul BII2.
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:
(q 0 , w) *M (q, )

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

unde q 0 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:
(q 0 , w) *M (p, )

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

stri care sunt distinctibile, adic

y* astfel nct (p,y)F i (r,y) F


(q0,wy)F i (q0,xy)F
wyT(M) iar xyT(M), pe cnd (q0,wy)=(q0,xy)
deci wy i xy sunt deodat n T(M)=T(M) contradicie.

- 58 -

Exemplul 2 S minimizm automatul definit de urmtorul tabel al funciei de


tranzitie, unde strile finale sunt 1, 2, i 5:
a
1
3
4
5
5
5

0
1
2
3
4
5

b
2
4
3
5
5
5

C1. Toate nodurile sunt accesibile deci trecem la :


C2. Tabelul iniial este cu toate perechile nemarcate.
0
_

_ _

_ _

_ _

_ _

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

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

Vom obine:
0
X
X
X
X
X

1
_

2
X X 3
X X _ 4
X X X X

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
1
3
5
5

0
1
3
5

b
1
3
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:

- 60 -

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.

- 61 -

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
- 62 -

de lungime 1, putem construi numeroase alte limbaje, cum ar fi:


(a)
(b)

L C = mulimea literelor i a cifrelor;

LC = mulimea cuvintelor de lungime 2, formate din o liter urmat de o


cifr;
(c)
L4 = mulimea cuvintelor formate din exact patru litere;
(d)
L* = mulimea cuvintelor formate din oricte litere (inclusiv cuvntul
vid);
L( L C )* = 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.
(e)

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. este o expresie regulat indicnd mulimea vid.
2. este o expresie regulat indicnd limbajul format doar din cuvntul vid, {}.
3. Dac a VT , 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 e1 i e2 sunt expresii regulate indicnd limbajele L1 i L2, atunci urmtoarele
expresii sunt regulate:
a) Alternarea (e1)|(e2), indicnd L1 L 2 ;
b) Concatenarea (e1)(e2), indicnd L1 L 2 ;

c) nchiderea Kleene (e1*), indicnd L1 .


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)
Concatenarea este distributiv la stnga
(s|t)r=(sr)|(tr)
i la dreapta fa de alternare
- 63 -

r=r
Cuvntul vid este element neutru pentru concatenare
r=r
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 {1i | i=0,1,2,}.
m n
d) a*b* reprezint limbajul a b m, n 0 ;

(ab)* reprezint limbajul (ab)

m0 ;
e)
f) (aa|ab|ba|bb)* reprezint mulimea irurilor peste {a,b} de lungime par.
m

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:

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

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

- 64 -

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 a m ba n n, m 1:

S aS
S aB

B bC
C aC

C a
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:
S aS | aB

B bC

C aC | a
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:

S a(S | B)

B ba * a
Apoi B poate fi nlocuit n prima ecuaie

S a(S | ba * a)

sau expresia echivalent:


S = aS | aba*a
i se vede imediat c o soluie a acestei ecuaii este:
S= a*aba*a
- 65 -

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 X i , {aX j , a} , cu X1, 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 Xi nu a fost iniializat
Atunci definete X i
Altfel schimb X i prin X i | , unde este
partea definit anterior a lui Xi)
Pas 2. Aducerea n form intermediar a sistemului de ecuaii:
- Pentru fiecare i=1,2,,n-1
Execut:
- Transform ecuaia Xi n forma X i i X i | i , unde i este de forma

0,i | i1,i X i1 | ... | n,i X n iar i i fiecare j,i sunt expresii regulate peste VT.
- Pentru fiecare j=i+1,i+2,,n
Execut:
- nlocuiete Xi cu

i * i n ecuaia pentru Xj.

Pas 3. Rezolvarea ecuaiilor:


- Pentru fiecare i=n,n-1,,2,1
Execut:
- Transform ecuaia Xi din forma X i i X i | i , unde i este o expresie
regulat peste VT, n X i i * i .
- Pentru fiecare j=i-1,i-2,,2,1
Execut:
- nlocuiete soluia i * i a lui Xi n ecuaia pentru Xj.

Pas 4. Stabilirea soluiei:


- Soluia este

1 * 1
- 66 -

Observaia 2.7.1
a) Primul pas al algoritmului transform gramatica regulat ntr-o mulime de ecuaii de
forma:
X i 1 | 2 | ... | m | j X j | k X k | ... | l X l ,
unde fiecare i , i VT .
b) Pasul al doilea al algoritmului transform fiecare ecuaie n forma:
Xi i Xi | 0,i | i1,i Xi1 | ... | n,i X n ,
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 Xn este uor de gsit pentru c aceast ecuaie este de forma X n n X n | 0,n i
deci soluia este X n n * 0,n . Aceast soluie se poate nlocui apoi n fiecare din ecuaiile
precedente din sistem, acolo unde apare Xn. n general, ndat ce ecuaia pentru Xi 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 Xi-1 n membrul drept, iar Xi a fost nlocuit.
Exemplul 1 Folosind algoritmul [EXPRESII REGULATE], s transformm n
expresie regulat gramatica definit mai jos:
G S, A, B, a, b, c, S, P , unde P este format din regulile:
S aA
S a
A aA

A bB
A a
B bB

B c

S aA | a
Pas 1.
A aA | bB | a

B bB | c
Pas 2. Nu este necesar
Pas 3.

i 3 B b*c
i2

i 1

A aA | bb * c | a
A {a}bb * c | {a}a
S a(a * bb * c | a * a) | a

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

- 67 -

Exemplul 2 Folosind algoritmul [EXPRESII REGULATE], s transformm


n expresie regulat gramatica G S, A, B, C, a, b, c, S, P , unde P este
format din regulile:

S aA
A aA
A aB
B bC

C cB
C c

S aA
Pas 1. A aA | aB
B bC

C cB | c
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:
S aA
Pas 2. A aA | aB
B bC

C cbC | c
Pas 3. i 4 C cbC | c
C cb * c

i3

i2

i 1

B bcb * c

A {a}aB
A a * ab(cb) * c
S aA

S aa * ab(cb) * c
Pas 4. Soluie: S = aaa*b(cb)*c sau, echivalent, S = aaa*bc(bc)*. Limbajul
n
m
reprezentat de aceast expresie regulat este a (bc) | n 2, m 1 .

1. Pentru expresiile regulate de mai jos, s se precizeze limbajele asociate:


a. E1=(0|1)*00(0|1)*;

- 68 -

b. E2=(1|(10))*;
c. E3=(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:
este o expresie regulat indicnd mulimea vid.
este o expresie regulat indicnd limbajul format doar din cuvntul
vid, {}.
Dac a VT , atunci a este o expresie regulat indicnd limbajul
format dintr-un cuvnt de lungime 1, construit cu simbolul a i
anume limbajul {a}.
Dac e1 i e2 sunt expresii regulate indicnd limbajele L1 i L2, atunci
urmtoarele expresii sunt regulate:
1. Alternarea (e1)|(e2), indicnd L1 L 2 ;
2. Concatenarea (e1)(e2), indicnd L1 L 2 ;

3. nchiderea Kleene (e1*), indicnd L1 .


Algoritmul Expresii Regulate
Intrare Gramatica G, cu regulile, X i , {aX j , a} , X1, simbol iniial.
Ieire Expresia regulat echivalent cu G.
Pas 1. Transformarea n ecuaii regulate
- 69 -

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
Bb

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.

- 70 -

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, , , q0,
F) ale crui componente au aceleai semnificaii ca la un automat finit oarecare, doar c funcia
de tranziie este definit astfel:
- 71 -

: Q P(Q) .
Avem o -tranziie ntre dou configuraii (p, w) (q, w) dac i numai dac

q (p,) , p Q, w . n reprezentarea grafic, o astfel de tranziie, practic fr citirea


benzii de intrare la acel pas, arat astfel:

q
Figura 2.9.1

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, , , q0, F), unde considerm un simbol care
nu este n . Considerm acum automatul finit nedeterminist M, peste alfabetul {}:
M = (Q, {}, , q0, 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
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)
- 72 -

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
start

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

a
f
i
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)

N(s)

start

N(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)
start

N(s)

N(t)
f

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

- 73 -

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:


start

Pentru simbolul a avem:

start
Pentru simbolul b avem:
Pentru a|b avem:

start

Continnd acest proces, n final vom obine automatul urmtor:

start
0

- 74 -

7 a

b 9

10

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

- 75 -

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.

- 76 -

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

- 77 -

Unitatea de nvare M3.U1. Proprieti de nchidere pentru


limbaje regulate
Cuprins
M3.U1.1.
M3.U1.2.
M3.U1.3.
M3.U1.4.

Introducere ................................................................................................ 78
Obiectivele unitii de nvare .................................................................. 78
Proprieti de nchidere ale limbajelor regulate ..................................... .....78
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:
- 78 -

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 L1, L2 dou limbaje de tip 3 generate de gramaticile G1, G2:
(1)
(1)

L(G 1 ) L1 \
G 1 (VN , VT , S1 , P1 ) , unde

(2)
(2)

(V
,
V
,
S
,
P
)
L(G 2 ) L 2 \
2
N
T
2
2
(1)
(2)
Presupunem c VN VN (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:
G 3 (VN(1) VN(2) S3 , VT(1) VT(2) , S3 , P3 ) ,

S3 VN(1) VN(2)

unde

P3 P1 P2 S3 S1 P1 sau S2 P2

Dac L1 L 2 atunci la mulimea regulilor se adaug S 3 (adic dac

S1 P1 sau S 2 P2 ).
Fie w L 1 . Atunci:
*
*
S

w
w , S3 P3 .

1
1
G

G G
Similar pentru w L 2 .

w L

G3

G1

G2

Dac w , S3 , atunci w sau w dup cum VN VT

VN(2) VT(2) .
*

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 M (Q, , , q 0 , F) un automat finit determinist, astfel nct T(M)=L.
Fie 1 i s o nou stare ( s Q ).
Construim M 1 (Q {s}, 1 , 1 , q 0 , (Q \ F) {s}) , unde:

1 (q, a) (q,a), pentru q Q, a

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

pentru a 1
1 (s, a) s,

- 79 -

(1)

(1) *

sau

M1 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 1 \ T(M) este sau un cuvnt din * de la care M nu ajunge n stare
final, deci care nu e acceptat de M, adic (q 0 , x) Q \ F , sau este un cuvnt care conine
simboluri din 1 \ i n momentul depistrii unui astfel de simbol M1 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:

L1 L 2 L1 L 2 ,
unde L reprezint complementara lui L.
Din teoremele 2.6.1 i 2.6.2 rezult deci c dac L1 i L2 sunt limbaje regulate, atunci i
limbajul L1 L 2 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 L1 L 2 cnd cunoatem gramaticile,
respectiv automatele, pentru L1 i L2. Prezentm in continuare o astfel de demonstraie, care se
poate face construind un automat finit care s simuleze n paralel cele dou automate M1 si M2
astfel:
Varianta 2.
Fie M 1 (Q1 , 1 , 1 , q 1 , F1 ) i M 2 (Q 2 , 2 , 2 , q 2 , F2 ) dou automate finite
deterministe. Ele accept mulimile regulate T(M1) = L1, respectiv T(M2) = L2.
Presupunem c Q1 Q 2 (dac nu, se face o simpl redenumire a strilor fiecruia
dintre ele, de exemplu prin renumerotare).
Putem presupune c 1 2 (dac nu, crem 1 2 ).
Construim automatul finit nedeterminist M3 care accept intersecia
urmeaz:
M3 = (Q1 x Q2, , 3, [q0,q1], F1 x F2), unde 3 este definit de :

L1 L 2 , dup cum

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


Evident c automatul M3 intr ntr-o sare final din F1 x F2 dac i M1 intr intr-o stare final din
F1 i M2 intr intr-o stare final din F2.

- 80 -

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 M (Q, , , q 0 , F) . Considerm mulimea regulat L=T(M).
Definim automatul finit nedeterminist M astfel nct s funcioneze invers fa de M:
M (Q {q 0 }, , , q 0 , F) , unde:

F {q 0 } dac T(M)
F {q 0 , q 0 } dac T(M)

sau
avnd tranziiile:

p (q0 , a) dac (p, a) F

p (q, a) dac (p, a) q


~
Este uor de demonstrat acum c T(M) L (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 M 1 (Q1 , 1 , 1 , q 1 , F1 ) i M 2 (Q 2 , 2 , 2 , q 2 , F2 ) dou automate finite
deterministe. Ele accept mulimile regulate T(M1), respectiv T(M2).
Presupunem c Q1 Q 2 (dac nu, se face o simpl redenumire a strilor fiecruia
dintre ele, de exemplu prin renumerotare).
Putem presupune c 1 2 (dac nu, crem 1 2 ).
Construim automatul finit nedeterminist M3 care accept concatenarea T(M 1 )T(M 2 ) dup cum
urmeaz:

M 3 (Q1 Q 2 , , 3 , q 1 , F3 )

cu

dac q Q1 , p Q1 \ F1 i 1 (q, a) p
p 3 (q, a) ,

{q 2 , p} 3 (q, a) , dac q Q1 , p F1 i 1 (q, a) p

dac q, p Q 2 i 2 (q, a) p
p 3 (q, a) ,

- 81 -


F2 , dac L 2
F3

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

Teorema 2.9.7
Clasa mulimilor regulate este nchis n raport cu nchiderea Kleene.
Demonstraie:
Fie M (Q, , , q 0 , F) un automat finit determinist acceptnd limbajul regulat
L=T(M).
Construim automatul finit nedeterminist:

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

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

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

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

Dac (q, a) p F, atunci (q, a) {p}

Se adaug astfel o nou stare iniial q 0 pentru c, dac trebuie s aparin lui T(M) *,
nu putem fora q0 s aparin lui F3 cci M ar putea intra n q0 i pe parcursul acceptrii unui
cuvnt cnd q 0 F .
a) Dac x L atunci:
x i ( q 0 , ) q 0 F3
sau
x=x1 x2xn cu x i L , iar n acest caz sunt posibile situaiile:
*

a.1) ( q 0 ,x1x2xn)* (p, x2xn), p F (pentru c x 1 L ) 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) ( q 0 ,x1 x2xn)* (q0,x2xn)* (q0,x3xn)**(q0,xn) (r,) unde r F .

Aadar x T(M ) .

b) Dac x T(M ) i x=a1a2am , atunci exist strile q1,q2,,qm astfel nct:

- 82 -

q 1 (q 0 , a 1 )

q i 1 (q i , a i 1 )

q m F

i q 1 , q 2 ,...,q m Q
Atunci, pentru un anume i avem:
q i 1 q 0
sau

(q i , a i 1 ) F

sau (q i , a i 1 ) q i 1 .

Deci x poate fi scris n forma x=x1x2xn, unde x j L ( (q0 , x j ) F ).

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 fie R a o mulime


regulat.

Fie f : o substituie regulat, f(a)=Ra.


Pentru ca R i Ra, 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 1 R 2 ) f(R 1 ) f(R 2 )

f(R 1 R 2 ) f(R 1 ) f(R 2 )

f(R) f(R )
Dar reuniunea concatenarea i respectiv produsul Kleene sunt reprezentate de cei trei operatori
ai unei expresii regulate: *, . , | . Deci i pentru dou expresii regulate e1 si e2 vom avea:

f(e 1 | e 2 ) f(e 1 ) | f(e 2 )

f(e 1 e 2 ) f(e 1 ) f(e 2 )


f(e) f(e )
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:
- 83 -

h 1 (L) x h(x) L

h 1 (w) x h(x) w
h 1 (w) x h(x) w
h(a) 1
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.

a0

a1

ai

h(ai)

an

Fig.2.9.1

CF pt.M

Automatul M va fi un automat cu -tranziii care citete cte un simbol ai de pe banda de


intrare i genereaz pentru simbolul de intrare citi cuvntul h(ai) 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(ai) i starea sa este o stare final (adic M accept h(ai)) atunci M ii
golete zona sa de memorie n care reprezenta h(ai) 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(ai)). 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(ai) pentru i de la 1 la n.

- 84 -

Pentru formalizare vom considera fiecare stare a lui M de forma [,q]unde este partea
necitit din h(ai) iar q este o stare a lui M. Funcia de tranziie, , a lui M se definete astfel:
([,q],a) = [h(a),q]
M genereaz h(a), n memoria lui
([b,q], ) = [, (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:
L1 = {awa | w{a,b}*};
L2 = {aw1aaw2a | w1,w2{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.

- 85 -

Unitatea de nvare M3.U2. Lema de pompare pentru limbaje


regulate
Cuprins
M3.U2.1.
M3.U2.2.
M3.U2.3.
M3.U2.4.
M3.U2.5.

Introducere ............................................................................................. 86
Obiectivele unitii de nvare ............................................................... 86
Proprieti ale limbajelor regulate ........................................................... 86
Lema de pompare ................................................................................... 88
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:
- 86 -

Dac L este o mulime finit de cuvinte, atunci L {w 1 ,..., w n } .


Artm nti c pentru fiecare cuvnt w i L , exist Gi o gramatic de tip 3, astfel nct

L(G i ) w i . Fie wi= a1a2. . . an. Atunci mulimea de reguli:


S a1A1
A1 a2A2
.............
An-2 an-1An-1
An-1 an
genereaz cuvntul wi adic:
*

S w i
G3

Deci limbajele w i i 1,n sunt regulate.


Cum L este un limbaj finit, L w i , folosind Teorema 2.6.1 rezult c L este un limbaj de
n

i 1

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 L1 mulimea acceptat de un anume automat finit,

M (q 1 ,...,q n , , , q 1 , F)

Fie R ij mulimea tuturor irurilor x astfel nct (qi , x) q j i dac


(k)

(q i , y) q l pentru y care nu e prefix al lui x (desigur i y x, y ) , atunci l k .


(k)
Deci R ij este mulimea tuturor irurilor de intrare x care conduc automatul finit din
starea qi n starea qj fr a trece printr-o stare ql cu l mai mare dect k. Se observ c i i j pot fi
mai mari dect k.
Putem defini recursiv aceste mulimi, astfel:
R ij(k) R ik(k -1) (R (kkk-1) ) * R (kkj -1) R ij(k -1)

(0)

R ij {a (q i , a) q j }
(k)
n definirea recursiv a lui R ij s-a folosit faptul c intrrile care l fac pe M s treac din qi
n qj fr a trece printr-o stare ql cu l > k sunt:
- 87 -

(k -1)

sau n R ij

, adic trec automatul M din qi n qj 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.
(k)
S artm c R ij 0 k n 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, R ij {a (q i , a) q j } R ij
(0)

(0)

este o mulime finit, deci i regulat (v.

Teorema 2.6.5) R ij(0) M .


Presupunnd adevrat afirmaia pentru k (o notm P(k)), verificm P(k+1):
(k)
(R (k)
) * R (k)
R ij(k)
R ij(k 1) R ik
kk
kj
(k)
(k)
(k)
(k)
R ik , R kk , R kj , R ij M

dar

M este nchis la produs Kleene, concatenare i reuniune,

R ij(k) M , deci inducia se ncheie aici.


Revenind la limbajul L1 considerat iniial, acesta se poate scrie sub forma:
L1 R 1jn M .
q j F

n concluzie, L1 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 a, b, c .
b) mulimea cuvintelor formate din simbolurile 0 i 1, avnd trei 0 consecutivi, se poate scrie sub

forma: 0,1 0000,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 wL i
|w|p atunci w poate fi scris w=xyz, unde:
- 88 -

- 0 |y| p
- xyizL, i0.
Demonstraie:
Fie M=(Q,,,q0,F) un automat finit cu n stri astfel nct T(M)=L.
Fie p=n.
Dac wT(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 = qi = qj astfel
nct:

(q 0 , w) * (q i , w) * (q j , z) * (r, )

De aici rezult c w=xw i w=yz i deci w=xyz.


Fie j cel mai mic indice pentru care qi = qj de unde i 0 |y| n.
Dar atunci :
(q 0 , xy i z) * (p, yi z) * (p, y i-1z) * * (p, z) * (r, )
Deci xyizT(M), i0.
Pentru i = 0 :

(q 0 , xz) * (p, z) * (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= aibi i1 , 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 wL : |w| p, w=xyz, |y|) p i w=xyizL.
- dac y=aj cu ji, atunci ai+jbiT(M) , ceeace contrazice structura limbajului deci este
imposibil;
- dac y=bj, atunci aibj+iT(M) ceeace contrazice din nou structura limbajului deci este
imposibil;
- dac y=ajbk cu ji i ki, atunci aibkajbiT(M) din nou imposibil
L= aibi i1 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.

- 89 -

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:
L1= {wcw | w{a,b}*};
L2 = {ww | w{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.

- 90 -

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 = {0n1m | n0, m1} {1n0m | 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 = ({s1, s2, s3, s4, s5, s6},{0,1}, , s1,


{s3, s4, s5}), cu urmtoarea tabel de tranziii:

4. Pentru expresia regulat E1=(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)*;

- 91 -

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

- 92 -

Unitatea de nvare M4.U1. Arbori de derivaie pentru gramatici


independente de context
Cuprins
M4.U1.1.
M4.U1.2.
M4.U1.3.
M4.U1.5.

Introducere ............................................................................................. 93
Obiectivele unitii de nvare ............................................................... 93
Arbori de derivaie pentru gramaticile I.D.C. .......................................... 93
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 = ( VN, VT, S, P),unde
mulimea regulilor P este de forma: A ,, cu A variabil din VN, iar un ir
format din variabile i terminale, adic (VN VT)*.
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= ( VN,VT,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 VN VT ;
ii) eticheta rdcinii este S;
iii) dac nodul A are cel puin un descendent atunci el are o etichet din VN;

- 93 -

iv) dac A1, A2, A3,.,Ak sunt toi descendenii direci ai lui A n ordine de la stnga
spre dreapta atunci : A A1A2Ak este o regul din P.

A1

A2

A A1A2Ak

Ak

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


S aAB
S a
S

S bBA

S b
a
A
B
A aS

B bS

S
b

S
a

Fig. 3.1.1.
Pentru aceast gramatic, un arbore de derivaie avnd frunzele a,a,b,b i a este
cel din figura 3.1.1.
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 ab.
G

A
a

( A ab)
G

b
Figura
- 94 3.1.2.
-

Teorema 3.1.1

Fie G =(VN,VT,A,P ) o gramatic I.D.C. Atunci pentru , (S ) exist un


G

arbore de derivaie n gramatica G al crui rezultat este .


Demonstraie:

Vom demonstra c dac GA=(VN,VT,A,P) atunci pentru orice A n VN avem (A )


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 GA, deci

GA

GB

GA

( A ) (A )
i, pentru c G = GS, avem

GA

(A ) (A ).
a) Presupunem c este rezultatul unui arbore de derivare n gramatica GA; demonstrm prin

inducie, n raport cu numrul de noduri care nu sunt frunze, c A :


GA

a1) Dac exist un singur nod care nu e frunz atunci arborele arat ca n
figura 3.1.3.

A1

A2

Ak

3.1.3.
Rezult c =A1A2Ak i, din definiia arborelui deFigura
derivaie,
avem A P, deci

A .
a2) 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: A1,A2,,Ak , deci (A A1.Ak P).
Dac Ai nu e o frunz, rezult c Ai este o variabil, rdcin a unui subarbore cu
rezultatul i i cu cel mult n-1 noduri care nu sunt frunze.
Dac Ai este o frunz, punem Ai = i.
Se observ c dac j < i atunci nodul Aj i toi descendenii si se afl la stnga lui Ai i a
tuturor descendenilor si.
Rezult c = 1 2 k .
Deoarece din ipoteza induciei i este rezultatul unui subarbore cu rdcina Ai i cu
*

cel mult n-1 noduri care nu sunt frunze, rezult c (Ai i).
G

- 95 -

A A1A2Ak

Deci

1 2 ... k ,
G
*

(A ).

adic

b) Presupunem acum c A . Vom arta c exist un arbore de derivaie cu rezultatul n


GA

GA, prin inducie relativ la numrul de pai ai derivaiei.


b1) Dac A ntr-un singur pas rezult c ( A P ) i dac =A1A2Ak
GA

rezult din definiia arborelui de derivaie c exist un arbore cu rezultatul :

A1

A2

Ak

b2) Presupunem c A n n pai i c pentru orice derivaie


a lui 3.1.4
cu numrul de
Figura
GA

pai mai mic dect n exist o derivaie cu rezultatul . Fie primul pas al derivaiei A de
forma A A1A2Ak. Atunci orice simbol al lui este sau unul dintre Ai sau derivat dintr-un
Ai n cel mult n-1 pai. Deci, exist subarborii T1,T2,..,Tk de rdcini A1,A2,,Ak, cu rezultatele

1 , 2 ,..., k atunci cnd Ai i .


GA

Deci dac la arborele din Figura 3.1.4 adugm subarborii Ti, obinem:
A

A1

A2

T1

T2

Ak

Tk

Figura 3.1.5

Rezult c arborele din Figura 3.1.5 (n care cte un arbore Tj poate fi vid, dac Aj VT) are
rezultatul format din rezultatele subarborilor T1, ,Tk n ordine de la stnga 1 2 .... k .

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


S SS
- 96 -

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= ( VN,VT,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 VN VT ;
ii) eticheta rdcinii este S;
iii) dac nodul A are cel puin un descendent atunci el are o etichet din
VN;
iv) dac A1, A2, A3,.,Ak sunt toi descendenii direci ai lui A n ordine
de la stnga spre dreapta atunci : A A1A2Ak este o regul din P.
Teorema 3.1.1
Fie G =(VN,VT,A,P ) o gramatic I.D.C. Atunci pentru ,

(S ) exist un arbore de derivaie n gramatica G al crui


G

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

- 97 -

S
S

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.

- 98 -

Unitatea de nvare M4.U2. Simplificarea gramaticilor


independente de context i forme normale
Cuprins
M4.U2.1.
M4.U2.2.
M4.U2.3.
M4.U2.4.
M4.U2.5.

Introducere ............................................................................................. 99
Obiectivele unitii de nvare ............................................................... 99
Simplificarea gramaticilor I.D.C. ............................................................ 99
Forme normale pentru gramatici I.D.C. . .............................................. 105
Rezumat. . ............................................................................................ 114

M4.U2.1. Introducere
Regulile independente de context sunt de forma A ,, cu A variabil din VN, iar
un ir format din variabile i terminale, adic (VN VT)*. 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:
- 99 -

Fie G=(VN,VT,S,P) o gramatic I.D.C.; presupunem c S w pentru un anume


w VT* .
Considerm un arbore de derivaie al lui w n gramatica G. Presupunem c exist un
drum n arbore cu dou noduri n1 i n2 cu aceeai etichet A i cu n2 descendentul lui n1; fie w1
i w2 rezultatele arborilor n1 respectiv n2.
*

Astfel, avem derivaiile A w 1 i A w 2 , iar w2 este un subcuvnt al lui w1.


Rezult c w poate fi descompus n forma w=w3 w1 w4 , unde w3 sau w4 pot fi .
Dac nlocuim subarborele n1 cu n2, obinem:
*

S w 3 w 2 w 4 L(G) .
G

n aceast derivaie am eliminat cel puin un nod n1 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 A M, 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 VT , atunci L(G) este
nevid. n caz contrar, 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=(VN,VT,S,P) o gramatic I.D.C. Atunci exist o gramatic G1, echivalent cu G,
*

*
astfel nct A VN , VT astfel nct A ( adic L(G A ) ).
GA

Demonstraie:
Fie A VN . Considerm GA=(VN, VT, A, P). Conform teoremei 3.2.1, se poate
determina dac L(GA) este vid sau nu.
Dac L(G A ) , atunci scoatem A din VN, adic VN VN \ {A} 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 L(G A ) , obinem gramatica
G1=( VN1 ,VT,S,P1). Evident c L(G 1 ) L(G) . S artm c L(G) \ L(G 1 ) :
- 100 -

Presupunem c exist un cuvnt w L(G) \ L(G 1 ) . Atunci exist o derivare


*

S 1A 2 w , cu A VN \ VN1 .
Astfel, am obinut dou afirmaii contradictorii:
*

*
pe de o parte, w1 VT astfel nct A w 1 (deci w 1 L(G A ) );
G

pe de alt parte, deoarece A VN \ VN1 , avem L(G A ) .


Din contradicia obinut rezult c A VN , L(G A ) .

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


Definiia 3.2.1 Fie G=(VN,VT,S,P) o gramatic I.D.C.

i)
ii)

A VN este un simbol inaccesibil dac nu exist S 1A 2 ;


A VN este un simbol neutilizabil dac nu exist nici o derivare de forma:

S 1A 2 w 1 w 3 w 2 , unde w i VT* .
Teorema 3.2.3
Fie G=(VN,VT,S,P) o gramatic I.D.C., astfel nct L(G) . Atunci exist
gramatica G1, echivalent cu G, astfel nct VN1 nu conine simboluri neutilizabile,
adic:
*

A VN1 exist o derivaie S w 1Aw 2 w 1 w 3 w 2 cu w i VT* .


Demonstraie:
Presupunem c G este o gramatic deja redus conform Teoremei 3.2.2 (adic
A VN , L(G A ) }. Construim n continuare gramatica G1= (VN1 , VT , S, P1 ) .
Mulimea neterminalelor VN1 se determin iterativ:
S VN1
dac A VN1 , atunci adugm n VN1 toate variabilele B pentru care exist n P
cte o regul A 1 B 2
Procesul se oprete cnd nici o nou variabil nu mai poate fi adugat.
*

Fie atunci B VN1 ; n acest caz, exist mcar o derivaie B w 3 VT i exist


A1,A2,,Ak astfel nct:

S 1A11 P

A1 2 A 2 2 P

...

A i i 1A i 1i1 P, i 1, k

A k k 1 Bk1 P

i B w 3 ,

de unde rezult urmtoarea derivaie:

- 101 -

S 1A11 12 A 2 21 12 ...k 1Bk1k ...1 w1 w 3 w 2


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

Sintetiznd teoremele anterioare, rezult urmtorii algoritmi cu valoare practic:


Algoritm Eliminare Simboluri Inaccesibile:
Intrare
Ieire

G=(VN,VT,S,P)
1
G1=(V N ,VT,S,P)

Pas 1 V0={S} , i=1


Pas 2 Vi=Vi-1 { A VN B A P , B Vi-1 }
Pas 3 Dac Vi Vi-1 atunci i=i+1, salt la Pas 2 ;
1
altfel VN1=Vi , P1={ A A V N }
Algoritm Eliminare Simboluri Neutilizabile:
Intrare
Ieire

G=(VN,VT,S,P)
2
G2=( VN ,VT,S,P2)

Pas 1 Vo= , i=1


Pas 2 Vi=Vi-1 { A A P, ( Vi-1 VT)* }
Pas 3 Dac Vi Vi-1 atunci i=i+1, salt la Pas 2
2
altfel VN =Vi , P2= { A

A VN }
2

Exemplul 7 S se simplifice gramatica G=({S,A,B,C}, {a,b}, S, P), unde


mulimea regulilor este dat de urmtoarele reguli:

P:

S A
S B
B AB

B Ba
A aB
A bS
A b
C AS

C b

Rezolvare:
Eliminm simbolurile inaccesibile:
V0={S} , i=1
V1={S} {A,B}={S,A,B} , i=2
V2={S,A,B} { } V1=V2

- 102 -

VN1 ={S,A,B}

S A | B

P1=
B AB | Ba

A aB | bS | b

Eliminm i simbolurile neutilizabile:


V0= , i=1
V1= {A}={A} , i=2
V2={A} {S} , i=3
2
V3={A,S}
V3=V2 VN ={A,S}

S A

P2 =
A bS

A b

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.

1 2 3 ... n este o derivaie la stnga, atunci


i {1,..., n 1} w1i VT , A VN , i2 , i3 (VN VT ) astfel nct:
i w1i A i2 , i1 w1i i3 i2 .
Aadar,

dac

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 n-1 i fie o
derivaie n n pai : S 1 2 ... w .
Lum n considerare simbolurile primului cuvnt derivat 1 =A1A2Ak; atunci

w=w1 w2wk cu Ai wi n cel mult n-1 pai.

Deci exist o derivaie la stnga Ai wi, pentru fiecare i 1, k .


Atunci S A1A2Ak ... w1 w2wk i deci exist derivaia la stnga de forma:

S A1A2Ak w1A2Ak w1w2A3Ak ... w1 w2wk.

Definiia 3.2.3
Fie G o gramatic I.D.C. G = (VN, VT, S, P). O regul de forma
A B P, unde A, B VN , se numete redenumire.
Teorema 3.2.4
Fie G o gramatic I.D.C.; atunci exist gramatica G 1 G fr redenumiri.
Demonstraie
Fie G = (VN, VT, S, P). Construim o nou mulime de producii P1 prin includerea
tuturor produciilor din P care nu sunt redenumiri.

- 103 -

Presupunem c A B pentru A, B VN ; atunci adugm n P1 toate regulile de


G

forma A , unde B P nu este o redenumire. Se observ c este suficient s


*

considerm numai acele iruri de derivaii A B a cror lungime este mai mic dect
G

cardinalul mulimii VN, 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 G1=(VN,VT,S,P1). S verificm echivalena
acesteia cu gramatica G iniial:
*

a) dac A P1 , atunci A . Deci dac w L(G 1 ) , atunci w L(G) .


G

Aadar L(G 1 ) L(G) .


b) fie cuvntul w L(G) i considerm o derivaie la stnga a lui w n gramatica G:

S 0 1 2 ... n w .
G

Dac i i 1 (pentru 0 i n) printr-o producie care nu e redenumire, atunci

i i 1 .
G1

Dac

i-1 i printr-o regul care nu este redenumire (i 0)


G

i i1 printr-o regul de tip redenumire


G

i1 i2 ... j prin reguli care nu sunt redenumiri


G

j j1 printr-o regul care nu este redenumire,


G

atunci i , i 1 ,..., j au aceeai lungime i, pentru c derivaia este o derivaie la stnga,


simbolul nlocuit n fiecare pas este pe aceeai poziie. Dar atunci
i j1 printr-o producie din P1 \ P .
G1

Deci n L(G 1 ), L(G) L(G 1 ) .


Din a) i b) rezult c L(G 1 ) L(G) .

n practic putem aplica urmtorul algoritm:


Algoritm Eliminare Redenumiri:
Intrare Gramatica G, independent de context, G=(VN,VT,S,P)
Ieire
Gramatica G1, independent de context, fr redenumiri, echivalent cu G:
1
G1=( VN ,VT,S,P1)
Varianta I
Pas 1 P0={ A P nu este redenumire } , i=1
*

Pas 2 Pi=Pi-1 {A j A B P B j Pi 1}

- 104 -

Pas 3

Dac Pi Pi-1 atunci i=i+1, salt la Pas 2;


1
P1=Pi i V N {A VN A P1}

altfel

Sau
Varianta a II-a

Mai nti, pentru fiecare A VN se construiete RA=


B A B astfel:

Pas a R0={A} , i=1


Pas b Ri=Ri-1 {C B C P, B R i1}
Pas c Dac Ri Ri-1 atunci i=i+1, salt la Pas a;
altfel RA=Ri .
Construcia propriu-zis:
Pas 1 P1
Pas 2 Fie B P . Dac VN atunci salt la Pas 4 ;
altfel continu cu Pas 3 .
Pas 3 P1 P1 A B R A

Pas 4 P= P \ B . Dac P atunci salt la Pas 2 ;


altfel continu cu Pas 5 .
1
1
Pas 5 G1=( V N , VT , S, P1 ), unde VN A A P1

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
A BC sau A a, cu A,B,C VN i a VT.
Demonstraie:
Fie G o gramatic I.D.C. Din teorema 3.3.4 rezult c exist o gramatic echivalent
G1=(VN,VT,S,P) n care nu exist reguli A B, A,B VN. 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:
A B1B2Bm cu m 2
(3.3.1)
Dac Bi VT l nlocuim cu Ci, o nou variabil, i adugm regula Ci Bi la P.
Deci regula (3.3.1) se nlocuiete cu mulimea de reguli:
A C1C2Cm unde Ci=Bi dac Bi VN
- 105 -

Ci Bi dac Bi VT
Atunci mulimea variabilelor se modific n V'N =VN {Ci | Bi VT} iar P va fi mulimea
noilor reguli.
Fie G2=(V'N,VT,S,P). Vom demonstra c L(G2)=L(G1).

a1) Din construcia lui G2, dac ( ) atunci ( ) i deci L(G1) L(G2) .
G2

G1

a2) Vom demonstra prin inducie n raport cu numrul de pai ntr-o derivaie c dac

A w ,A VN, w VT atunci A w.
G2

G1

Pentru n=1 afirmaia este evident.

Presupunem afirmaia adevrat pentru orice derivaie n k pai i fie A w prin k+1
G2

pai. Primul pas n derivaie trebuie s fie de forma:


A C1C2Cm , m 2.
G2

Atunci w=w1 w2wm, unde Ci wi, 1 i m n cel mult k pai. Rezult c i n gramatica G
G2

avem:

Ci wi.
G1

Dac Ci V'N\VN atunci se poate folosi numai regula Ci ai pentru ai VT, de unde ai
= wi.
Aadar, din construcia lui P exist o regul A B1B2Bm a lui P cu Bi = Ci dac Ci VN i
Bi=ai dac Ci VN\VN.

Pentru aceti Ci avem derivaiile n G2: Ci wi pentru c nu sunt mai muli de k pai
G2

n derivaie. Atunci Bi wi.


G1

Deci A w, i n concluzie L(G2) L(G1).


G1

b) Modificm acum G2 prin adugarea unor noi simboluri i a unor noi reguli i anume:
- o regul de forma A B1B2Bm cu m 3, A,Bi VN se nlocuiete cu
A B1 D1

, unde Di sunt noi variabile.


D 1 B 2 D 2

...

D m 2 B m 1 B m

G2

G3

Astfel rezult G3 i evident (A w) (A w) .

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


S T+S
S T
T L*T
T L

- 106 -

L [S]
L a
L b
S se realizeze transformarea n forma normal Chomsky.
Aplicm algoritmul ce rezult din demonstraia teoremei 3.3.1 :
S T . Atunci mulimea de reguli
Pas 1: Eliminm nti redenumirile

T L
S L*T
S [S]
T [S]
Sa

Ta
Sb

Tb

S T S
T L * T
devine:

L [S]
L a

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

L b

Ta
Tb

S a

S b

Celelalte reguli sunt nlocuite fiecare n modul urmtor:

S TD1
S TC1S se nlocuieste cu
S T S se nlocuieste cu
D1 C1S
C
1

T LD 2
T LC 2 T se nlocuieste cu
T L * T se nlocuieste cu
D 2 C 2 T
C *
2

L C 3 D 3
L C 3SC 4 se nlocuieste cu

D 3 SC 4
L [S] se nlocuieste cu
C 3 [
C 4 ]

S LD 5
S LC 5 T se nlocuieste cu
S L * T se nlocuieste cu
D 5 C 5 T
C *
5

T C 6 D 6
T C 6SC7 se nlocuieste cu

D 6 SC7
T [S] se nlocuieste cu
C 6 [
C 7 ]
n final, gramatica n form normal Chomsky va fi G3=(VN,VT,S,P3),
unde VN= {S, L, T} {C i | i 1,7} {D i | i 1,6} iar P3 conine urmtoarele
reguli:
- 107 -

S TD1
D C S
1
1
C1

S LD 5

D 5 C 5 T
C *
5

S a

S b

T LD 2

L C3D3

D 3 SC 4

C3 [

C 4 ]

La

Lb

D2 C2T
C2 *
T C6 D6
D 6 SC7
C6 [
C 7 ]
Ta
Tb

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=(VN,VT,S,P) o
gramatic I.D.C. i fie A 1 B 2 o regul din
P, astfel nct
{B 1 ,B 2 ,,B r} este mulimea tuturor B-regulilor din P.
Atunci L(G)=L(G1) unde G1=(VN,VT,S,P1), n care P1 se obine din P prin eliminarea
regulei A 1 B 2 i adugarea regulilor A1 1 1 2 , A 1 2 2 ,, A

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

G1

Pentru a demonstra c L(G) L(G1) observm c A 1 B 2 este singura regul din


G care nu este n G1. Ori de cte ori este folosit A 1 B 2 , variabila B trebuie s fie
nlocuit ntr-un trziu de un i. Aceti doi pai pot fi nlocuii de unul singur: A 1 i 2 .

Lema 3.3.2
Fie G = (VN, VT, 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 A 1 ,
A A 2 , . . . , A A r }.
Fie A 1 , A 2 ,, A s , restul A-regulilor din P. Fie G1=(VN {Z},VT,S,P1)
gramatica I.D.C., format prin adugarea variabilei Z la VN i nlocuirea tuturor Aregulilor cu:
(1)
A i
- 108 -

(2)

A iZ, 1 i s
Z i
Z iZ, 1 i r

Atunci L(G)=L(G1)
Demonstraie:
nainte de a demonstra lema s observm c numai A-regulile genereaz, prin
derivarea la stnga, limbajul regulat:
{ 1 , 2 ,..., s}{ 1 , 2 ,.., r}* ,
aceasta fiind i mulimea generat de A-regulile lui G.
a)
Fie x L(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 tA j1 tA j2 j1 tA jp jp-1 t i jp jp-1 j1 ,
G

nlocuim ntreaga secven cu:


tA t iZ t i jpZ t i jp.. j2Z t i jp j2 j1 .
G1

G1

G1

G1

G1

Rezult o derivaie n G1, 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(G1).
b)
Considerm acum o derivaie la stnga a lui x n G1. 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 t i Z t i jp Z ... t i jp j2Z t i jp j2 j1
G1

prin

G1

G1

G1

tA tA j1 tA j2 j1 ... tA jp j1 t i jp j1
G

Rezultatul este o derivaie a lui x n G. Rezult L(G1) 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 A VN, a VT, VN ( un ir de variabile, posibil vid).


Demonstraie:
Fie G=(VN,VT,S,P) o gramatic n forma normal Chomsky genernd limbajul L
independent de context.
Presupunem c VN = {A1,A2,,Am}.
- 109 -

Pas I. n primul pas modificm regulile astfel nct dac Ai Aj este o regul atunci j > i.
Aceasta se poate face n modul urmtor, ncepnd cu A1 i terminnd cu Am:
Presupunem c produciile au fost modificate astfel nct pentru orice i,
1 i
k, Ai Aj este o regul numai dac j > i.
Vom modifica acum Ak+1- regulile.
Dac Ak+1 Aj este o regul cu j < k+1, generm o nou mulime de reguli,
nlocuind Aj cu partea dreapt a tuturor Aj-regulilor conform Lemei 3.3.1. Repetnd procedeul
de k-1 ori cel mult vom obine reguli de forma Ak+1 Al cu l k+1. Regulile cu l = k+1
sunt acum nlocuite n conformitate cu Lema 3.3.2, introducnd noi variabile Zk+1.
Repetnd procedeul pentru fiecare variabil vom avea reguli de forma:
Ak Al l > k
Ak a a VT
Zk
(VN {Z1,Z2,,Zm})*.
Pas II. Observm c pentru Am membrul drept trebuie s nceap cu un terminal. Partea
dreapt a oricrei Am-l reguli este sau Am sau un terminal. Cnd este Am, putem genera noi
reguli nlocuind Am cu membrul drept al unei Am-reguli conform cu Lema 3.3.1. Atunci aceste
reguli trebuie s aib membrul drept ncepnd cu un terminal. Continum de aceast manier
cu Am-2,,A1 pn cnd membrul drept al fiecrei reguli pentru un Ai, ncepe cu un terminal.
Pas III. La un ultim pas, examinm regulile pentru noile variabile Z1,Z2,,Zm. 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:


1) A 1 A 2 A 3
2) A A A
2
3
1

G=({A1,A2,A3},{a,b},A1,P) unde P:
3) A 2 b
4) A A A
3
1
2

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

3) A 2 b
4) A A A A
3
2
3
2

5) A 3 a
Dup nlocuirea lui A1 n regula 4, se vede c trebuie reaplicat Lema
3.3.1, deoarece A3-regula 4' obinut anterior are n membrul drept primul simbol
- 110 -

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

3) A 2 b

4)A 3 A 3 A1 A 3 A 2
4)A 3 bA3 A 2
5) A a

3
Pentru a avea toate A3-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 Z3, astfel:

A 1 A 2 A 3
A A A
3
1
2
A 2 b
A 3 bA 3 A 2 Z 3

A aZ
3
3
A 3 bA 3 A 2

A 3 a
Z A A A
1
3
2
3

Z 3 A1A 3 A 2 Z 3

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


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

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

A2-reguli:
A 2 bA 3 A 2 A 1
A aA
1
2

b
2
Similar, pentru A1-reguli, se nlocuiete setul de A2-reguli n apariiile din
membrii drepi, obinnd:
A 1 bA 3 A 2 Z 3 A 1 A 3
A aZ A A
1
3
1
3

A1-reguli:
A 1 bA 3 A 2 A 1 A 3
A aA A
1
3
1

A 1 bA 3
Astfel, toate regulile au ajuns s aib membrul drept ncepnd cu cte un
terminal.
- 111 -

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

(*)

Z 3
Z
3

Z 3
Z
3

Z 3

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

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


jos:

(**)

Z 3
Z
3

Z 3
Z
3

Z 3

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

Astfel, Ai-regulile ( i 1,3 ), obinute la pasul II, mpreun cu cele dou


seturi (*) i (**) de Z3-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

- 112 -

2. Considerm gramatica G = ({S, T, L},{a, b, +, -, x, /, [, ]}, S, P) unde


mulimea P este format din regulile:
ST+S
TLxT
L [S]
STS
TL/T
La
ST
TL
Lb
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 A BC sau A a, cu A,B,C VN i a VT.
Forma normal Greibach
Orice limbaj I.D.C. poate fi generat de o gramatic pentru care

fiecare regul este de forma A a cu A VN, a VT, VN


( 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
Aa
B aBB
B bS
Bb
S se gseasc o gramatic IDC, G, n form normal Chomsky,
echivalent cu G.
- 113 -

2. Fie gramatica G = ({x1, x2, x3},{a, b}, x1, P) cu regulile:


(a) x1 x2 x3
(b) x2 x3 x1 | b
(c) x3 x1 x2 | 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.

- 114 -

Unitatea de nvare M4.U3. Lema de pompare pentru limbaje


independente de context
Cuprins
M4.U3.1.
M4.U3.2.
M4.U3.3.
M4.U3.4.

Introducere ........................................................................................... 115


Obiectivele unitii de nvare ............................................................. 115
Lema de pompare pentru limbaje I.D.C. ............................................... 115
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 z L cu | z | p , atunci z poate fi scris sub forma: z = uvwxy, unde

| vwx | q
astfel nct pentru fiecare ntreg i 0 ,

| vx | 0 (v, x nu sunt ambele )

uv i wx i z L .
Demonstraie:
Fie G=(VN,VT,S,P) o gramatic I.D.C. n form normal Chomsky, pentru L. Dac G
are k variabile, atunci fie p=2k-1 i q=2k. 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,
- 115 -

atunci cuvntul derivat nu este mai lung dect 2j-1, aceast valoare reprezentnd maximul de
frunze ntr-un astfel de arbore (binar, datorit formei Chomsky).
Deci, dac z L i | z | p , 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 n1 i n2 n R astfel nct:
n1 i n2 sunt etichetate identic;
n2 este subarborele lui n1 ;
subarborele n1 nu are drumuri de lungime mai mare dect k+1.

Pentru a arta c n1 i n2 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 T1, cu rdcina n1, reprezint derivaia unui subcuvnt de lungime cel
mult 2 (i deci de lungime cel mult q), pentru c n T1 nu exist nici un drum de lungime mai
mare dect k+1, din cauz c R a fost drumul cel mai lung.
k

Fie z1 rezultatul subarborelui R. Dac T2 este subarborele generat de nodul n2 i z2 este


rezultatul lui T2, atunci z1 se poate scrie z3z2z4. n plus, z3 i z4 nu pot fi ambele , pentru c
prima regul folosit n derivaia lui z1 e de forma A BC , unde B,C VN . Subarborele T2
trebuie s fie completat n interior sau de subarborele lui B sau de subarborele lui C.

A z 3 Az 4 z 3 z 2 z 4 , unde | z 3 z 2 z 4 | q . De aici rezult c

Avem atunci
*

A z i3 Az i4 z i3 z 2 z i4 pentru i 0 .

Evident irul z poate fi scris sub forma uz 3 z 2 z 4 y , pentru anumii u i y.


Vom pune acum v=z3, w=z2 i x=z4, demonstraia fiind astfel ncheiat.
Exemplul 1 Fie gramatica G=({A,B,C},{a,b},A,P), unde
P: A BC
B BA
C BA
Aa
Bb
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
z3=bb
z2=a z4=
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.

- 116 -

a)

Legend: drum R

C
A n

A n
2

b)

c)
A n

A n

C
a

B A n

Figura 3.4.1

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 z L(G) i | z | > p, atunci z
poate fi scris ca uvwxy, unde pentru fiecare i 0, uviwxiy L 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,
uwy L 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 p+q.
Atunci L este infinit dac i numai dac el conine un cuvnt de lungime l,
p < l p+q.

- 117 -

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 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=2k ).

Observaia 3.4.1 Teorema 3.4.1 se poate aplica pentru a demonstra c


k 0} nu este I.D.C.

L={ak bkck |

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
= akbkck (k 0), nu este posibil alegerea vreunei descompuneri de forma z=uvwxy cu
proprietile specificate n teorema amintit i astfel nct

uv i wx i y L .

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
I.
am(an)ak-m-nbkck

w
n1

Motiv uv wx z L

x
n2

n3

a n1

a n2

a n3 b n

a n1

a n 2 b n3

b n4

a n1 b n 2

b n3

b n4

III.
akbm(bn)bk-m-nck

b n1

b n2

b n3

IV.
akbm(bk-mcn)ck-n

Similar cazului II.

II.
am(ak-mbn)bk-nck

Grupul de simboluri "a" se


alungete independent de grupurile
"b" i "c".
Grupurile de simboluri "a" i "b" se
alungesc n mod independent. n
plus, dac n3,n 0 , simbolurile "a"
i "b" se amestec.
Grupurile de simboluri "a" i "b" se
alungesc n mod independent.
Grupul de simboluri "b" se
alungete independent de grupurile
"a" i "c". n plus, dac n1,n2 0 ,
simbolurile "a" i "b" se amestec.
Grupul de simboluri "b" se
alungete independent de grupurile
"a" i "c".

Grupul de simboluri "c" se


alungete independent de grupurile
c
c
c
"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
V.
akbkcm(cn)ck-m-n

n1

n2

n3

- 118 -

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 {akbkck | k 0}L1 \ L2 deci clasa limbajelor independente de context este
diferit de cea a limbajelor dependente de context:
L1 L2 .

Teorema 3.4.3
Fiind dat o gramatic I.D.C., G1, se poate gsi o gramatic echivalent G2, pentru
care, dac A este o variabil n G2 alta dect simbolul iniial, atunci exist o infinitate
de cuvinte iniiale derivate din A.
Demonstraie:
Dac L(G1) este finit atunci L={u1,u2,,un} i putem considera G2 cu mulimea
regulilor P2={S ui | i=1,n}.
Dac L(G1) este infinit, G1=(VN,VT,S,P1), considerm pentru fiecare A VN gramatica
GA=(VN,VT,S,P1). Prin Teorema 3.4.2 se poate determina dac L(GA) este finit sau nu.
Presupunem c A1,A2,,Ak sunt variabilele care genereaz o infinitate de cuvinte i c
B1,B2,,Bm sunt variabilele care genereaz un numr finit de cuvinte.
Creem mulimea de reguli P2 din P1 n modul urmtor:
Presupunem c C0 C1C2Cr este o regul din P1, iar C0 {A1,A2,,Ak}. Atunci
regula C0 u1u2un este o regul din P2, unde:
1.
Dac Ci VT ui=ci
2.
Dac Ci {A1,A2,,Ak} ui=ci
3.
Dac Ci {B1,B2,,Bm} ui este unul din cuvintele (n numr finit) generate

de ci (ci ui).
Rezult c P2 nu conine nici o regul cu Bi la dreapta.
'
'
Considerm acum G2=( VN ,VT,S,P2) unde VN ={A1,A2,,Ak}. Observm c S trebuie
'

s aparin lui VN pentru c L(GS) este infinit.


*

G2

G1

a) Evident, dac ( ) atunci ( ) deci L(G1) L(G2).


b) Pentru a demonstra L(G2) L(G1), demonstrm prin inducie asupra numrului de

pai din derivaie c dac Ai w 1 i k unde w VT atunci Ai w.


*

G1

G2

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 Ai C1C2Cr .

Putem astfel scrie w sub forma w1 w2wr unde Ci wi , 1 i r.


G1

Atunci exist o regul n G2 de forma Ai u1u2ur,

w i dac C i VT {B1 ,..., B m }


.
C
dac
C

{A
,...,
A
}
i
i
1
k

unde u i

G1

G2

Dar ci wi n cel mult j pai (Ci wi) .


- 119 -

Deci A u1u2ur w1 w2wr .


G2

G2

Exemplul 2 Fie gramatica G=({S,A,B},{a,b,c,d},S,P), unde


P={S ASB,
S AB, A a, A b, B c, B d}). 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 G2=({S},{a,b,c,d},S,P2),
mulimea regulilor fiind:
P2 :

S aSc
S aSd
S bSc
S aSd

S ac
S ad
S bc
S bd

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 = {anbj | n = j2} nu este independent de
context.
2. S se arate c limbajul L = {ww | w {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.

- 120 -

Unitatea de nvare M4.U4. Automate push-down i legtura lor


cu gramaticile independente de context
Cuprins
M4.U4.1.
M4.U4.2.
M4.U4.3.
M4.U4.4.
M4.U4.5.

Introducere ........................................................................................... 121


Obiectivele unitii de nvare ............................................................. 121
Automate push-down ........................................................................... 122
Legtura dintre automate push-down i gramatici de tip 2 .................... 126
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.


- 121 -

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.
~ | w {0,1} }, care nu este regulat (posibil de
Fie limbajul I.D.C. L={ wcw
demonstrat acest lucru folosind lema de pompare) i fie gramatica
G=({S},{0,1,c},S,P)
unde mulimea regulilor este P= {S 0S0, S 1S1, S c} .
Pentru a recunoate limbajul L, vom utiliza un control finit cu dou stri
q1 i q2 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 q1.
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
q1, atunci plaseaz o farfurie verde pe stiv i, n ambele cazuri, rmne n starea
q1.
3)
Dac intrarea este c i starea q1, i schimb starea n q2 fr a
aciona asupra stivei.
Dac intrarea este 0, starea q2 i pe stiv se afl o farfurie albastr, scoate farfuria
i rmne n q2, iar dac este 1, starea q2 i pe stiv este o farfurie verde, scoate
farfuria i rmne tot n q2.
1) Dac dispozitivul este n starea q2 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:

ai

CONTROL
FINIT (Q)

Banda de intrare

Capul stivei

Z0

Figura 3.6.1
- 122 -

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 = (Q, , , , q 0 , Z 0 , F) ,
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 0 Q stare iniial
Z 0 simbol de start al memoriei push-down
F Q mulimea strilor finale
: Q ( ) P (Q )
*

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 (q, a, Z) {(p 1 , 1 ), (p 2 , 2 ),..., (p m , m )} , unde

q, p i Q, a , Z , i * , i 1, m , 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 pi nlocuind pe Z
cu i i apoi avanseaz cu un simbol pe banda de intrare.
Interpretarea expresiei (q, , Z) {(p 1 , 1 ), (p 2 , 2 ),..., (p m , m )} , unde

q, p i Q, Z , i * , i 1, m , 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 pi i nlocuiete pe Z cu i fr s avanseze pe banda de intrare.

- 123 -

Exemplul 2 n exemplul anterior, automatul push-down accept limbajul


~ | w {0,1} } prin memorie vid. S descriem formal acest automat.
{ wcw

M=({q1,q2},{0,1,c},{R,A,V},,q1,R, )

(q1 ,0, R) {(q 1 , AR)}


(q ,1, R) {(q , VR)}
1
1
(q1 ,0, A) {(q 1 , AA)}

(q1 ,0, V) {(q 1 , AV)}


(q1 ,1, A) {(q 1 , VA)}

(q1 ,1, V) {(q 1 , VV)}

(q1 , c, A) {(q 2 , A)}

(q1 , c, V) {(q 2 , V)}


(q1 , c, R) {(q 2 , R)}

(q2 ,0, A) {(q 2 , )}


(q2 ,1, V) {(q 2 , )}

(q2 , , R) {(q 2 , )}

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) (p,a,A)
sau, folosind forma din [13]:
(a, A, BC)
dac
(q, BC) (p,a,A)
S considerm automatul push-down, definit printr-o diagram de tranziie, din figura
2.3.2, care recunoate cuvintele limbajului:
{anbn | n 0}.

0, A AA
0, Z0 AZ0
q

1, A
, Z0
r

s
, Z0
Figura 3.2.2

- 124 -

1, A

Definiia 3.6.2 O configuraie instantanee este o pereche (q, ) , unde q Q i ,


unde cel mai din stnga simbol al lui este vrful stivei push-down, iar reprezint
coninutul stivei.
*
Dac a {} , , , Z i (p,) (q,a, Z) , atunci scriem:
*

a : (q,Z) M (p,) (Intrarea "a" trece automatul M din (q,Z) n (p,).)


*
Dac pentru fiecare a 1 ..., a n {} , q 1 ,...,q n 1 Q i irurile 1 ,..., n 1 ,

avem:
ai : (qi,i) M (qi+1,i+1)
i 1, n ,
atunci scriem:
*
a1 an : (q1,1) M (qi+1,i+1)
Similar, se poate folosi descrierea instantanee, constituit din tripletul q, aw, Z i
atunci scriem:
q, aw, Z M (p,w,) dac (p, ) (q,a, Z) .
Definiia 3.6.3

Limbajul acceptat prin stri finale de ctre automatul M este


L(M) {w w * , (q 0 , w, Z0 ) *M p, , , * , p F}.

Definiia 3.6.4

Limbajul acceptat prin stiv vid de ctre automatul M este


N(M) {w w * , (q 0 , w, Z0 ) *M p, , , p Q} .
Exemplul 3 S construim automatul push-down care accept limbajul
~ | w {0,1} }.
{ ww

M=({q1,q2},{0,1},{z0,A,B},,q1,Z0, )

(q1 ,0, Z 0 ) {(q 1 , AZ 0 )}


(q ,1, Z ) {(q , BZ )}
0
1
0
1
(q1 ,0, A) {(q 1 , AA), (q 2 , )}

(q1 ,0, B) {(q 1 , AB)}


(q1 ,1, A) {(q 1 , BA)}

(q1 ,1, B) {(q 1 , BB), (q 2 , )}

(q2 ,0, A) {(q 2 , )}

(q2 ,1, B) {(q 2 , )}

(q1 , , Z 0 ) {(q 1 , )}
(q2 , , Z 0 ) {(q 2 , )}

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:

(q 1 ,001100, Z 0 ) M (q 1 ,01100, AZ 0 ) M (q 1 ,1100, AAZ 0 ) M


M (q 1 ,100, BAAZ 0 ) M (q 2 ,00, AAZ 0 ) M (q 2 ,0, AZ 0 ) M
- 125 -

(q 2 , , Z 0 ) M
M (q 2 , , ) ,
deci 001100 N(M) .
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 q2, 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 q Q, a i Z corespunztoare, (q,a, Z) nu conine mai mult de
un element;
- pentru fiecare q Q i Z , dac (q,, Z) atunci (q,a, Z) , 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 M1, (L=N(M1)
) dac i numai dac el este acceptat prin stri finale de ctre un automat push-down
M2, ( L=N(M2) ).
Demonstraie:
I.

Fie L=T(M2), unde M2= (Q, , , , q 0 , Z 0 , F) .

Construim M1= (Q {q , q 0 }, , {X}, , q 0 , X, ) , unde este definit dup cum


urmeaz:
- 126 -

1) (q 0 , Z 0 X) (q 0 , , X)

2) (q, a, Z) (q, a, Z) , q Q, a , Z

3) Pentru toi q F, Z {X} q , (q, , Z)

4) Pentru toi Z {X} q , (q , , Z)


Regula 1) l face pe M1 s intre n configuraia iniial a lui M2, dar simbolul iniial al
stivei este X. Regula 2) simuleaz pe M2 pn cnd intr ntr-o stare final. Regulile 3) i 4)
golesc stiva cnd M2 intr ntr-o stare final.
Se observ c regulile 2) pot goli stiva lui M2 i pentru un cuvnt care nu este n T(M2),
iar acesta este motivul pentru care M1 are propriul su simbol iniial al stivei, X.
S demonstrm echivalena celor dou automate:
a)

Fie w T(M 2 ) . Atunci:

, w, Z 0 *M 2 (q,,) pentru q Q .

Fie acum w intrarea lui M1;


*
conform regulei 1), rezult c q 0 , w, Z 0 M1 (q0,w,Z0X)

conform regulei 2), rezult c q 0 , w, Z 0 X M1 (q,,X) (M1 simuleaz pe M2)


*

conform regulilor 3) i 4), rezult n final c q, , X M1 (q,,)


*

Aadar w N(M 1 ) .
b) Dac w N(M 1 ) , atunci se vede c stiva este complet tears numai dac sunt aplicate
regulile 3) i 4), deoarece regulile lui M2 nu pot terge pe X. Aadar, este necesar ca M2 s
intre ntr-o stare final cu aceeai intrare ca M1, ca s poat fi aplicate reguli de tip 3 i 4.
II.

Reciproc, fie M1= (Q, , , , q 0 , Z 0 , ) astfel nct L=N(M1).

Definim M2= (Q {q 0 , q f }, , {X}, , q 0 , X, {q f }) , unde este definit dup cum


urmeaz:
1) (q 0 , Z 0 X) (q 0 , , X)
2) q Q, a , Z (q, a, Z) (q , a, Z)

3) q Q (q f , ) (q, , X)
Regula 1) l face pe M2 s intre n configuraia iniial a lui M1. Regula 2) simuleaz pe
M1 pn i golete stiva la citirea intrrii. Regula 3) l determin pe M2 s intre ntr-o stare
final dac M1 i-a golit stiva iar n stiva lui M2 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=(VN,VT,S,P) n form normal Greibach,
astfel nct L=L(G). Presupunem c L(G) (demonstraia se poate adapta i pentru cazul
contrar).

- 127 -

Construim M= ({q 1 }, VT , VN , , q 1 , S, ) , unde (q 1 , a, A) conine (q 1 , ) pentru


fiecare regul A a P .
Pentru a arta c L(G)=N(M), observm c:

(xA xa ) q1 , a, A M q 1 , ,
G

Prin inducie asupra numrului de pai dintr-o derivaie rezult c:


*

(xA xy pentru x, y VT* , A VN , , VN* ) (q 1 , y, A ) *M (q 1 , , )


G

Atunci :
*

S x (q 1 , x, S) *M (q 1 , , ) .
G

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= (Q, , , , q 0 , Z 0 , ) .
Definim gramatica G= (VN , , S, P) , unde:

VN {[q, A, p] q, p Q, A } {S}
iar P este definit dup cum urmeaz:

S [q 0 , Z 0 , q] pentru q Q
-pentru fiecare tranziie (q 1 , B1 B 2 ...Bm ) (q, a, A) se genereaz un set de reguli n

gramatic, astfel:

q 2 ,...,q m , p Q [q, A, p] a[q 1 , B1 , q 2 ][q 2 , B 2 , q 3 ]...[q m , B m , p] P


Dac m=0, atunci q1=p, (p, ) (q,a, A) i apare doar regula [q, A, p] a P .
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:
*
[q, A, p]
x (q, x, A) *M (p, , )

(3.7.3)

Lund apoi q=q0 i A=Z0, rezult urmtoarele:


*
[q , Z , p]
x (q 0 , x, Z0 ) *M (p, , )
0 0
G

Dar prima regul din G este S [q 0 , Z 0 , p] pentru p Q , de unde rezult:

*
x x N(M) .
S
G

Rmne doar s demonstrm echivalena (3.7.3):


- 128 -

I. S artm prin inducie n raport cu i c

(q, x, A)

i
M

i
(p, , ) [q, A, p] x ,
G

a. Dac i=1,

(q, x, A) (p, , )

definitia

(p, ) (q,x, A)

|x| 1 (deoarece x VT sau x )


definitia G

*
[q, A, p] x P [q, A, p] x .
G

b. Presupunem afirmaia I adevrat pentru i i o demonstrm pentru i+1:


Fie
(q, x, A) iM1 (p, , ) i
exist a VT , y VT astfel nct x=ay, y=y1yt i
*

(q, ay, A) (q 1 , y, B1 ...Bt ) i (p, , ) .


Dar (q k , y i , B i ) (q k1 , , ) n cel mult i pai i qi+1=p, deci:
*

(q, ay, A) (q 1 , y1 ...y t , B1 ...Bt ) * (q 2 , y 2 ...y t , B 2 ...Bt ) * * (p, , ) .


Atunci, folosind regulile gramaticii G i ipoteza induciei, vom obine:

[q, a, p] a[q 1 , B1 , q 2 ][q 2 , B 2 , q 3 ]...[q k , B k , p]


*

i [q k , Bk , q k 1 ] y k k 1, t
*

rezult c [q, A, p] ay1 y 2 ...yt .


G

[q,
A,
p]

x (q, x, A) *M (p, , ) , prin inducie relativ la


II. Reciproc, se arat c
G

lungimea unei derivaii (demonstraia este similar celei de mai sus).


Astfel, demonstraia este ncheiat.

- 129 -

Exemplul 1 Fie automatul push-down:


M= ({q 0 , q 1 ),{0,1}, {X, Z 0 }, , q 0 , Z 0 , )

(q1 ,1, X) {(q 1 , )}


(q0 ,0, Z 0 ) {(q 0 , XZ 0 )}

unde (q ,0, X) {(q , XX)}


(q1 , , X) {(q 1 , )}
0
0
(q ,1, X) {(q , )}
(q1 , , Z 0 ) {(q 1 , )}
0
1

S se construiasc gramatica echivalent acestui automat.

Conform demonstraiei teoremei 3.7.3, construim G=(VN, ,S,P) care


genereaz chiar limbajul N(M) astfel:
VN {S,[q 0 , X, q 0 ], [q 0 , X, q1 ], [q 1 , X, q 0 ], [q 1 , X, q1 ],
[q 0 , Z 0 , q 0 ], [q 0 , Z 0 , q1 ], [q 1 , Z 0 , q 0 ], [q 1 , Z 0 , q1 ]}

S [q 0 , Z 0 , q 0 ]
S [q , Z , q ]
0
0
1

[q 0 , Z 0 , q 0 ] 0[q 0 , X, q 0 ][q 0 , Z 0 , q 0 ]

[q 0 , X 0 , q 0 ] 0[q 0 , X, q 1 ][q 1 , Z 0 , q 0 ]
[q 0 , X, q 0 ] 0[q 0 , X, q 0 ][q 0 , X, q 0 ]

[q 0 , X, q 0 ] 0[q 0 , X, q 1 ][q 1 , X, q 0 ]

[q , Z , q ] 0[q 0 , X, q 0 ][q 0 , Z 0 , q 1 ]
P: 0 0 1
[q 0 , Z 0 , q 1 ] 0[q 0 , X, q 1 ][q 1 , Z 0 , q 1 ]
[q 0 , X, q 1 ] 0[q 0 , X, q 0 ][q 0 , X, q 1 ]

[q 0 , X, q 1 ] 0[q 0 , X, q 1 ][q 1 , X, q 1 ]
[q , X, q ] 1
1
0
[q 1 , X, q 1 ] 1
[q , X, q ]
1
1

[q
,
Z
,
q
1 0 1]
n final, putem urmri i elimina regulile inutile i, de asemenea,
simbolurile neterminale neutilizabile, obinnd urmtoarea variant redus:

VN {S, [q 0 , X, q1 ], [q 1 , X, q1 ], [q 0 , Z 0 , q 1 ],[q 1 , Z 0 , q1 ]}
S [q 0 , Z 0 , q1 ]
[q , Z , q ] 0[q , X, q ][q , Z , q ]
0
1
1
0
1
0 0 1
[q 0 , X, q1 ] 0[q 0 , X, q1 ][q 1 , X, q1 ]

P : [q 0 , X, q1 ] 1
[q , X, q ] 1
1
1
[q 1 , X, q1 ]
[q , Z , q ]
1 0 1

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(M1) pentru un automat push-down M1 nedeterminist;
- 130 -

iii)

L=T(M2) pentru un automat push-down M2 nedeterminist.


1. Fie automatul push-down:
P = ({s0, s1, s2}, {a, b}, {z, a, b}, , s0, z, {s2})
cu funcia defint astfel:
(s0, a, z) = {(s0, az)}
(s0, b, z) = {(s0, bz)}
(s0, a, a) = {(s0, aa), (s1, )}
(s0, a, b) = {(s0, ab)}
(s0, b, a) = {(s0, ba)}
(s0, b, b) = {(s0, bb), (s1, )}
(s1, a, a) = {(s1, )}
(s1, b, b) = {(s1, )}
(s1, , z) = {(s2, )}
a. S se arate c L(P) = {u ~
u | u{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 {0,1}* N0(w) = N1(w)}, unde N0(w) reprezint numrul
de apariii ale simbolului 0 n w;
{ai bj | 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, e1, n forma polonez prefixat, e2, utliznd urmtoarea tehnic:
Se simulez funcionarea unui a.p.d. care analizeaz expresia
aritmetic e1 i se construiete un arbore de derivaie pentru e1;
Pentru fiecare vrf al arborelui de derivaie, determin
aciunea care definete traducerea n forma e2.

- 131 -

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

L(M) {w w * , (q 0 , w, Z0 ) *M p, , , * , p F}.

Limbajul acceptat prin stiv vid de ctre automatul M este


N(M) {w w * , (q 0 , w, Z0 ) *M p, , , p Q} .

Test de evaluare a cunotinelor


I. ntrebri.
1. S se defineasc automatele push-down deterministe i
nedeterministe.
II. Exerciii propuse.
S se construiasc o gramatic IDC i un automat push-down care
s recunoasc limbajul L = { w {a, b}* | w conine un numr egal
de a i b}
2. Fie automatul push-down:
P = ({s0, s1, s2, s3}, {a, b, c}, {z, a}, , s0, z, {s3})
cu dat prin:
(s0, a, z) = {(s0, aaz)}
(s1, a, a) = {(s1, aaa)}
(s1, b, a) = {(s2, )}
(s1, c, a) = {(s2, )}
(s2, b, a) = {(s2, )}
(s2, c, a) = {(s2, )}
(s2, , z) = {(s3, )}
a. S se arate c L(P) = {anw| w{b, c}+, |w| = 2n, n 1}.
b. Ce fel de automat push-down este P?

I.

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.

- 132 -

Unitatea de nvare M4.U4. Proprieti de nchidere pentru


familia limbajelor de tip 2
Cuprins
M4.U5.1.
M4.U5.2.
M4.U5.3.
M4.U5.4.

Introducere....................................................................................... 133
Obiectivele unitii de nvare ......................................................... 133
Proprieti de nchidere pentru limbaje I.D.C. .................................. 133
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:
- 133 -

Fie L1 i L2 generate de G 1 (V1 , T1 , S1 , P1 ) i G 2 (V2 , T2 , S 2 , P2 ) . Presupunem


c V1 V2= . Atunci putem realiza urmtoarele construcii de gramatici I.D.C:
a)

Limbajul L1 L 2 este generat de G 3 (V1 V2 {S3 }, T1 T2 , S3 , P3 ) , unde

P3 P1 P2 {S3 S1 , S3 S2 } .
S demonstrm c L1 L 2 L(G 3 ) :
Fie w L1 L 2 ; nseamn c w aparine cel puin unuia din cele dou limbaje:
i {1,2} : w L i , altfel spus i {1,2} : w L(G i ) . Exist deci o derivare a lui w
n una din cele dou gramatici date, Gi, pornind de la simbolul iniial al respectivei

gramatici: Si w . Deoarece toate regulile din gramatica Gi sunt i reguli ale gramaticii
Gi

construite G3, nseamn c aceeai derivare are loc i n gramatica G3. n plus, putem
obine simbolul Si printr-o derivare ntr-un pas pornind de la S3, i anume folosind una din
cele dou reguli nou adugate la P3, obinnd urmtoarea derivaie n G3:

i {1,2} : S3 Si w , deci w L(G 3 ) .


G3

G3

Rezult c L1 L 2 L(G 3 ) .
Fie w L(G 3 ) ; nseamn c w poate fi generat cu regulile P3, pornind de la S3:

S3 w .
G3

Deoarece singurele S3-reguli sunt cele dou redenumiri {S3 S1 , S3 S 2 } , rezult c


primul pas al derivaiei amintite nu poate fi dect rezultatul aplicrii uneia din aceste dou
reguli:

G3

G3

i {1,2} : S3 Si w , deci Si w .
G3

Putem observa faptul c, n afar de primul pas al acestei derivri, toate regulile
folosite n obinerea lui w pornind de la S3 sunt chiar reguli din Pi, i {1,2} , n funcie de
simbolul Si obinut n primul pas. Deoarece V1 V2= , rezult c

Si w ,
Gi

deci w L(G i ) =Li.


S-a artat astfel c w L 1 sau w L 2 , adic w L1 L 2 .
Rezult c L1 L 2 L(G 3 ) .
innd cont de cele dou implicaii rezult c limbajul L1 L 2 este generat de
gramatica G3.
Urmtoarele construcii se demonstreaz n mod asemntor, constituind un bun
exerciiu:

L1 L 2 este generat de G 4 (V1 V2 {S 4 }, T1 T2 , S 4 , P4 ) , unde


P4 P1 P2 {S 4 S1S 2 } .

b) Limbajul

- 134 -

L*1

c) Limbajul

este

generat

de

G 5 (V1 {S5 }, T1 , S5 , P5 ) ,

unde

P5 P1 {S 5 S5S1 , S5 } .

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 fie La un limbaj I.D.C.
Fie o gramatic G care genereaz limbajul iniial, L=L(G). De asemenea, pentru
fiecare simbol a considerm cte o gramatic astfel nct La=L(Ga).
Presupunem c variabilele lui G i ale lui Ga sunt distincte, oricare ar fi a .
Construim gramatica G I.D.C. n felul urmtor:
Variabilele lui G sunt variabilele lui G i cele ale lui Ga, pentru a ;
Terminalele lui G sunt terminalele lui Ga ;
Simbolul iniial al lui G este simbolul iniial al lui G;
Regulile lui G sunt cele ale lui Ga, pentru a , i regulile lui G n care fiecare a
se nlocuiete cu Sa (simbolul iniial al Ga).

Exemplul 1 Fie L limbajul cuvintelor cu numr egal de a i b. S urmrim


aplicarea celor demonstrate n teorema anterioar.

Avem gramatica generativ G ({S},{a, b},S, P) , unde mulimea

regulilor este P {S aSbS,S bSaS,S } . Se poate verifica faptul c


L=L(G). S considerm limbajele de substituie:

generat
de
regulile
La {0 n1n | n 1} ,
P(Ga)={Sa 0S a 1, Sa 01} ;

~ | w {0,2}* }, limbaj generat de mulimea de reguli


L b {ww
P(Gb)= {S b 0S b 0, S b 2S b 2, S b } .

Atunci, conform construciei efectuate n demonstraia Teoremei 3.8.2,


gramatica rezultat este G = ({S, Sa , S b },{0,1,2}, S, P) , cu mulimea de
reguli:

- 135 -

S Sa SSb S
S S SS S
b
a

Sa 0S a 1
P :
Sa 01
S b 0S b 0

S b 2S b 2
S
b
S generm un cuvnt la ntmplare cu aceste reguli:

S Sa SSb S 01SS b S 01S b S 012S b 2S 0120S b 02S


012002S 012002

Observaia 3.8.1 Teorema 3.8.1 se poate obine folosind Teorema 3.8.2 i innd cont c
a, b avem:
{a, b} este I.D.C.

{a b} este I.D.C.
a este I.D.C.

Dac acum f(a)=La i f(b)=Lb, atunci, datorit proprietii de nchidere la substituie,


rezult c:
L a L b este I.D.C.

L a L b este I.D.C.
La este I.D.C.

Pentru c homomorfismul este un caz special de substituie, n care card(La)=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 pushdown M (Q, , , , q 0 , Z 0 , F) astfel nct L=T(M).
Construim un automat push-down M care s accepte h (L) , astfel:
1

- 136 -

Intrarea lui M'

Controlul
lui M'

h
Buffer

Stiva lui
M i M'

Controlul
lui M

Figura 3.8.1
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')= {w h(w) L(M)} , adic:
1

L(M')= h (L(M))
Construcia formal este dat n continuare.

M (Q, , , ,[q 0 , ], Z 0 , F ) ,
unde:
Q = {[q,x] | q Q, iar x este un suffix al lui h(a),a }
Funcia de tranziie :
1) ([p, x], ) ([q, x], , Y) pentru fiecare (p, ) (q,, Y) .
Astfel, M' simuleaz -mutrile lui M, indiferent de coninutul din buffer.
2) ([p, x], ) ([q, ax], , Y) dac (p, ) (q,a, Y) .
Astfel, M' simuleaz mutrile lui M pe intrarea a din , elibernd a din capul buffer-ului.
3) ([q, h(a)], Y) ([q, ], a, Y) pentru toi a i Y .
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.

- 137 -

S demonstrm c L(M')= h (L(M)) .


a)
Mai nti, s observm c printr-o aplicare a regulii (3) urmat de o aplicare a
regulilor (1) i (2),
dac
(q, h(a), ) M (p, , ) ,

atunci ([q, ], a, ) M ([q, h(a)], , ) M ([p, ], , ) .

Astfel, dac M accept h(a), adic dac (q 0 , h(w), Z 0 ) M (p, , ) pentru p F i

, atunci
([q 0 , ], w, Z 0 ) M ([p, ], , ) ,
astfel nct M' accept w.
Deci L(M') h (L(M)) .
Reciproc, s presupunem c M' accept intrarea w=a1a2an. 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:
1

b)

c)

([q 0 , ], a 1a 2 ...a n , Z 0 ) M

M ([p 1 , ], a 1a 2 ...a n , 1 ) M ([p 1 , h(a 1 )], a 2 ...a n , 1 ) M

M ([p 2 , ], a 2 ...a n , 2 ) M ([p 2 , h(a 2 )], a 3 ...a n , 2 ) M


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .

M ([p n , ], a n , n ) M ([p n , h(a n )], , n ) M


M ([p n 1 , ], , n 1 ) , unde pn+1 F.

Tranziia din starea [p i , ] n [p i , h(a i )] se face prin regula (3) iar celelalte tranziii
prin regulile (1) i (2).
Astfel,

(p1 , 1 ) (q 0 , , Z 0 )
i i : (p i 1 , i 1 ) (p i , h(a i ), i )
deci obinem o recunoatere i din partea lui M:

(q 0 , h(a 1a 2 ...a n ), Z 0 ) M ([p 1 , ], a 1a 2 ...a n , 1 ) M

M ([p 2 , ], a 2 ...a n , 2 ) M M ([p n , ], a n , n ) M

M ([p n 1 , ], , n 1 ) , unde pn+1 F.

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
- 138 -

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:
i i i
Am demonstrat c limbajul L {a b c i 1} nu este independent de context (v.
Observaia 3.4.1). Considerm acum dou limbaje care sunt I.D.C.:

L1 {a i b i c j i 1, j 1}
L 2 {a i b jc j i 1, j 1}
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 L2 ar putea avea setul
de reguli:
{S AB, A aA, A a, B bBc, B bc}.
Dar L L1 L 2 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(A B)=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 L R este un
limbaj I.D.C.
Demonstraie:
Fie L=T(M), M fiind un automat push-down:

M (Q M , , , M , q 0 , Z 0 , FM )

Fie i R=T(A), unde A este un automat finit nedeterminist:

A (Q A , , A , p 0 , FA )

- 139 -

Construim un automat push-down M' pentru limbajul L R , ntr-un mod care s


simuleze funcionarea n paralel a lui M i A:

Intrarea lui A, M i M'

Controlul
lui M'

Controlul
lui A

Controlul
lui M

Stiva lui
M i M'

Figura 3.8.2
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:
M (Q A Q M , , , , [p 0 , q 0 ], Z 0 , FA FM ) ,
unde este definit astfel:

A (p, a) p
([p, q], ) ([p, q], a, X) atunci cnd
(q , ) M (q, a, X)
Desigur, dac a atunci p p .

S demonstrm acum faptul c L R =T(M').


a)

Se demonstreaz uor prin inducie relativ la i c:


i
dac ([p 0 , q 0 ], w, Z 0 ) M ([p, q], , ) , atunci

(q 0 , w, Z 0 ) iM (q, , )
i
i (p 0 , w) A (p, )
pentru i=0 rezultatul e trivial, deoarece lum p=p0, q=q0, =Z0 i w=.
presupunem afirmaia adevrat pentru i-1 i fie
([p 0 , q 0 ], xa, Z 0 ) iM-1 ([p', q'], a, ) M ([p, q], , ) ,
unde w=xa i a sau a=.
Conform ipotezei de inducie, rezult c:

A (p 0 , x) p
(q 0 , x, Z 0 ) M (q , , )

n plus, conform definiiei,

A (p, a) p
i (q , a, ) M (q, , )
- 140 -

Utiliznd toate acestea, obinem:

A (p 0 , xa) p
(q 0 , xa, Z 0 ) M (q, , )
xa T(A)
sau, altfel scris,
, ceea ce trebuia demonstrat.
xa

T(M)

b) Reciproc, se procedeaz ntr-o manier similar, pentru a arta c:

(q 0 , w, Z 0 ) iM (q, , )
dac
i
i (p 0 , w) A (p, )

atunci ([p 0 , q 0 ], w, Z 0 ) M ([p, q], , ) ,

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 = (VN, VT, S, P)
i L = L(G).
Construim o nou gramatic G = (VN, VT, 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 P}
Se observ c regulile din P sunt tot independente de context. Este uor de demonstrat
c:

L(G) = L

Exemplul 2 Fie limbajul

L {ww w {a, b} } . 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 L1 L a b a b ar fi i el
I.D.C.; dar L1 {a b a b i 1, j 1} nu este de acest tip, fapt ce se poate
vedea cu ajutorul teoremei de pompare:
q q q q
Fie p,q N . Alegem z = a b a b = uvwxy, unde |v| + |x| > 0, |vwx|
q. Posibilitile de alegere ale subcuvntului vwx sunt multiple (aibj cu i+j q , bi
i

- 141 -

cu i q , bj-iai cu i j q ), ele ns nu permit crearea de cuvinte uv wx y care


s fie tot din L1 (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 L1 nu este I.D.C. i
fr a folosi teorema de pompare, reducnd acest limbaj la limbajul
L 2 {a i b jc i d j i 1, j 1} .
i

Fie h(a)=h(c)=a i h(b)=h(d)=b. Atunci h (L1 ) este format din toate

cuvintele de forma x1x2x3x4, unde x1 i x3 au aceeai lungime n {a, c} , iar x2 i

x4 au aceeai lungime n {b, d} .


Atunci h (L1 ) a b c d L 2 .
Dac L1 ar fi I.D.C., atunci (din Teoremele 3.8.3 i 3.8.5) rezult c L2 ar
fi i el I.D.C., ceea ce tim c este fals.
Astfel s-a artat, din nou, faptul c L1 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 = {an bn | n 1} {an b2n| 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.)

- 142 -

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.

- 143 -

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 ECMBrasov 2000, pp 199-206.
[15]. MOLDOVAN, G., CIOBAN, V., LUPEA, M.A,M. Limbaje Formale i Teoria AutomatelorCulegere de probleme, Ed. Mesagerul, Cluj-Napoca, 1997.

- 145 -

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

- 146 -