Sunteți pe pagina 1din 17

1.

GRAMATICI I LIMBAJE FORMALE

Fie V un alfabet, adic o mulime finit i nevid. Notm: V k = mulimea cuvintelor de lungime k cu litere din alfabetul V

V* =

V
k =0

= mulimea cuvintelor de orice lungime peste alfabetul V

Cuvntul vid este notat prin i are lungimea | | = 0. Definiie: L se numete limbaj peste V (mulime de cuvinte peste V ) dac L V * . Definiie: Numim gramatic un quadruplu G = ( N , T , S , P) unde: N = alfabetul neterminalelor; T = alfabetul terminalelor; S N este simbolul iniial; P este o mulime de producii de forma unde , ( N T )* i conine cel puin un neterminal. ' Definiie: Spunem c din deriv i notm dac = 1 2 3 , = 1 2 3 i
' 2 2 P .

Fie nchiderea reflexiv i tranzitiv a relaiei . Deci = , fie 1 , , k cu 1 2 k . Definim limbajul generat de o gramatic prin:
*

dac fie

L(G ) = {w T * | S w} Atunci cnd vorbim despre gramatici, ne intereseaz n primul rnd limbajul generat. Gramaticile pot fi de urmtoarele tipuri (n funcie de forma produciilor) conform clasificrii lui Chomsky: Tip Gramatic Forma produciilor

0 1 2 3

general dependente de context independente de context regulate

oarecare cu
A cu A N , ( N T )* A aB sau A a cu A, B N , a T

Fie G familia gramaticilor de tip i. Avem G G G G . i 3 2 1 0 Definiie: Spunem c L este limbaj de tipul i dac exist o gramatic de tipul i pentru care limbajul generat este L.

Fie L familia limbajelor de tipul i. Avem L3 L2 L L . i 1 0 Ne vor interesa n special gramaticile/limbajele independente de context i cele regulate. Propoziie: Fie G gramatic de tipul i = 1,2,3 G ' de acelai tip, cu L G ' = L ( G ) i cu proprietatea c simbolul iniial nu apare n membrul drept al produciilor. Prezentm doar construcia: Fie G = ( N , T , S , P) i S ' un simbol nou, adic S ' N T . Construim G ' = ( N {S '}, T , S ' , P' ) unde P' = P {S ' | S } . Din forma produciilor pentru gramaticile de tipul i = 1,2,3 rezult c nu aparine limbajului generat de ele. Dac dorim ca i s aparin limbajului generat de o gramatic, admitem n mod excepional producia S , care nu poate avea alte repercusiuni, conform propoziiei precedente. Teorem: Pentru gramaticile de tipurile 1,2,3 este posibil s verificm apartenena unui cuvnt la limbajul generat de ele. Fie G = ( N , T , S , P) o gramatic dependent de context (g.d.c.) i fie w T * . Dorim s determinm dac w L ( G ) . Fie n = w . Vom folosi metoda irului cresctor de mulimi:

( )

T0 = {S} * Tk +1 = Tk { ( N T ) | Tk cu i n} T0 T1 Tk Tk +1 F unde F este mulimea finit a cuvintelor de lungime cel mult n formate din terminale i neterminale (care sunt n numr finit). Atunci irul se stabilizeaz: k0 cu Tk0 = Tk0 +1 = Tk0 + 2 =

Evident, w L(G ) w Tk0 .

2. GRAMATICI INDEPENDENTE DE CONTEXT

Definiie: O derivare se numete derivare stng dac la fiecare pas se nlocuiete neterminalul cel mai din stnga. Notm prin . Lem: Fie G o gramatic independent de context (g.i.c.) => w L(G ) exist o derivare stng a lui w din S. Art prin inducie dup numrul k de pai din derivare c:
s

A N i w T * , A w dac i numai dac A w " " evident " " Pentru k = 1 este evident. Presupunem adevrat pentru A N i orice derivare de lungime cel mult k. Consider o derivare de lungime k+1, n care pun n eviden primul pas:
A w
k *

*s

Atunci = A1 A2 An cu A1 , , An N T , iar w = w1w2 w3 wn cu Ai = wi dac Ai T


Ai wi dac Ai N
k *

Conform ipotezei de inducie, derivrile stngi Ai wi Vom obine derivarea stng A w cutat astfel: aplic A A1 An *s aplic pe rnd derivrile stngi Ai wi , i = 1, 2, , n n continuare art c orice g.i.c. poate fi adus la o form simpl, numit forma normal a lui Chomsky: Teorem: Fie G g.i.c. G ' g.i.c., L(G ' ) = L(G ) , n care produciile au numai una dintre formele A i A BC (a T ; A, B, C N ) . Demonstraia se face n 3 pai: Propoziia 1 Fie G g.i.c G ' g.i.c., L(G ' ) = L(G ) , astfel nct nu mai apar producii de forma A B (redenumiri). Fie G = ( N , T , S , P ) .
*s

*s

Fie P = { A B | A B P} i P2 = P \ P . Deci P = P P2 . 1 1 1 Fie G ' = N , T , S , P ' cu P ' = P2 { A | B N cu A B i B P2 }

Pentru aceasta determin toate derivrile A B (suficient s le aflu pe cele de lungime VN ) i dac B P2 , atunci adaug n P ' producia A . L(G ' ) = L(G ) :
""

Este suficient s observm c dac , atunci . '


G G

" " Fie S 1 2 w o derivare din G. Pot presupune c este derivare stng. Fie k cel mai mare indice cu S 1 , 1 2 , , k 1 k P . 1 Atunci S k +1 P ' i deci S k +1 . '
G

n continuare repet raionamentul, folosind faptul c dac se aplic succesiv mai multe redenumiri, ele au loc pe aceeai poziie, deoarece derivarea este stng. Propoziia 2: Fie G g.i.c. G ' g.i.c., cu L(G ' ) = L(G ) , astfel nct n G ' produciile au doar formele A i A B1 Bm cu Bi N i m 2. Pot presupune c n G = ( N , T , S , P ) nu exist redenumiri, adic produciile de forma A B. Fie T ' o dublur a lui T . Deci exist o bijecie T T ', a a .
Fie G ' = N T ', T , S , P ' produciile A din P. dac = 1 , atunci T i producia este trecut n P ' ;
dac > 1 , atunci n P ' se nscrie producia A , unde se obine din nlocuind terminalele cu corespondentul lor din T '. n final se adaug la P ' produciile {a a | a T '}. Trecem la demonstraia teoremei lui Chomsky, prezentnd numai construcia. Se pleac de la forma din propoziia precedent. Fie A B1 Bm cu m 2 unde A, B1 , , Bm VN . Ea trebuie nlocuit cu producia de forma X YZ , evident cu pstrarea limbajului generat de gramatic. O nlocuim cu A B1D1 D B D 1 2 2 Dn 2 Bm1Bm
' unde D1 , , Dn 2 sunt simboluri noi care vor fi adugate la VN , obinndu-se astfel VN . Observaie: Vom vedea c n g.i.c. derivrile pot fi reprezentate pe arbori. Dac gramatica este n forma normal a lui Chomsky, aceti arbori vor fi binari, deci lucrul cu ei va fi mai facil.
~

unde pentru construcia lui P ' se consider pe rnd

3. ARBORI DE DERIVARE

Arborii de derivare constituie o metod vizual de descriere a unei derivri ntr-o g.i.c. Fie G = ( N , T , S , P ) g.i.c. Un arbore de derivare n G este un arbore situat pe niveluri cu: Definiie: 1. vrfurile interne sunt etichetate cu neterminale; rdcina este etichetat cu S; 2. frunzele sunt etichetate cu terminale; 3. dac vrfurile v1 , , vk (etichetate cu A1 , , Ak ) sunt n ordine de la stnga la dreapta descendeni direci ai vrfului v (etichetat cu A), atunci A A1 Ak P. Exemplu: S aAS A SbA A SS S a A ba

S aAS aSbAS aSbAa a 2bAa a 2b 2 a 2 . Pentru dou vrfuri terminale v1 i v2 dintr-un arbore de derivare punem n eviden drumurile care le leag de rdcin i vrful v din care cele dou drumuri se despart. Definiie: Spunem c v1 este la stnga lui v2 dac drumul de la v la v1 se afl la stnga celui de la v la v2 . Frontiera unui arbore este cuvntul format din etichetele vrfurilor terminale, n ordine de la stnga la dreapta. Pentru exemplul de mai sus, frontiera este a 2b 2 a 2 . Fie G = ( N , T , S , P ) g.i.c. i fie A N . Atunci vom nota GA = ( N , T , A, P ) (aceeai gramatic dar cu A simbol iniial). Teorem: Fie w T *. Atunci w L(G ) exist un arbore de derivare de frontier w. Aceast teorem fundamenteaz folosirea arborilor de derivare.

Art c A N , A w dac i numai dac n GA exist un arbore de frontier w.


" " Inducie dup lungimea k a derivrii.

Pt. k = 1: A w P i arborele este:

Presupunem adevrat pentru A N i orice derivare de lungime k. Fie derivarea

A A1 A2 An w . Atunci w = w1w2 wk cu Ai w. Conform ipotezei de


k pai k pai

inducie, vor exista n GAi arbori de frontier Wi . Arborele cutat va fi:


" " Inducie dup k = numrul vrfurilor neterminale. Pentru k = 1:

i A A1 An P. afirmaia Presupunem adevrat pentru A N i orice arbore din GA cu cel mult k vrfuri neterminale. Fie n GA un arbore de derivare cu k + 1 vrfuri neterminale. Fie A1 , , An descendenii direci ai lui A; deci A A1 An P . Pentru i = 1, 2, , n consider

arborele de rdcin Ai ; fie wi frontiera sa. Cum aceti arbori au cel mult k vrfuri neterminale, rezult Ai wi (dac Ai VT , atunci Ai = wi ). Acum A A1 A2 An w1 wn = w .
* *

4. ELIMINAREA NETERMINALELOR "NEFOLOSITOARE"

Urmrim simplificarea gramaticilor independente de context, prin eliminarea unor neterminale nefolositoare, bineneles fr a modifica limbajul generat de gramatici. 1) Neterminale care nu sunt observabile Un neterminal A este observabil dac w T * cu A w. Este evident c numai aceste neterminale sunt utile n generarea cuvintelor din L(G ). Neterminalele observabile se pot obine prin metoda irului cresctor de mulimi: M 0 = { A N | A P cu T *} * M n+1 = M n { A N | A P cu ( N M n ) }, n 0 M 0 M 1 M n M n +1 N finit Fie k indicele unde irul de mulimi se stabilizeaz ( M k = M k +1 = ). M k este deci mulimea neterminalelor observabile. Putem elimina acum produciile care conin (n membrul stng sau drept) neterminale din VN \ M k . 2) Neterminale inaccesibile Un neterminal A este accesibil dac S cu A liter din . Este evident c produciile coninnd neterminale inaccesibile pot fi eliminate. Neterminalele accesibile se determin prin aceeai metod: M 0 = {S} M n+1 = M n { A N | B M n i B P cu A liter din } Pentru G g.i.c., L(G ) = S nu este observabil. Observaie: O generalizare a gramaticilor independente de context o constituie gramaticile independente de context cu -producii, n care sunt admise producii de forma A cu A N , n care deci lungimea membrului drept este mai mic dect a membrului stng. Existena unei producii A are semnificaia c A se poate terge n derivri. Generalizarea este doar formal, deoarece puterea generativ nu crete: Teorem: Limbajele generate de g.i.c. cu -producii sunt limbaje independente de context. Gramaticile independente de context cu -producii vor fi folosite la analiza sintactic. Urmtoare teorem expune o condiie necesar pentru ca o gramatic s fie independent de context.
*
*

Teorem

Fie

g.i.c.

p, q a.. w L(G ) cu w > p ,

admite

descompunere w = x y cu:
x y q x, y nu sunt concomitent nule i i x y L(G ), i = 0,1, 2, Teorema mai este cunoscut sub numele de lema de pompare. Ea poate fi folosit de exemplu pentru a demonstra c L = {x n y n z n | n 1} nu este limbaj independent de context. Teorem: Pentru G g.i.c., L(G ) este infinit w L(G ) cu p < w p + q.
" " Fie

w L(G ) cu w > p.

Conform

lemei

de

pompare,

w = x y

cu

x + y > 0 i wi = x i y i L(G ), i . Mulimea {w1 , w2 ,} L(G ) cuvinte de lungimi cresctoare, deci L(G ) este infinit.
" " Cum L(G ) este infinit, exist w L(G ) cu w > p + q .

este un ir de

Conform lemei de pompare, w = x y cu x y q i L (G ). Noul cuvnt w1 = L(G ) satisface w1 < w i w w1 q. Repet raionamentul pentru w1 . Obin un ir de cuvinte w, w1 , w2 , de lungimi strict descresctoare; la fiecare pas lungimea scade cu cel mult q. Deci cnd lungimea va fi mai mic sau egal dect p + q, ea va fi mai mare strict dect p. Observaie: Teorema ne ajut s determinm dac un limbaj este finit, caz n care generm toate cuvintele sale i studiul este ncheiat.

5. GRAMATICI REGULATE I AUTOMATE

Definiie: Un quintuplu A = (, X , , x0 , F ) se numete automat finit determinist (a.f.d.) dac: = alfabetul de intrare X = alfabetul strilor x0 X : starea iniial F X : mulimea strilor finale : X X X funcia de tranziie a strilor ( x, a) = y : dac automatul este n starea x i se aplic (se citete de pe banda de intrare) a, atunci automatul trece n starea y. Putem extinde funcia la X *: ( x, ) = x, x X * ( x, a ) = ( ( x, ), a ), , a Definim T(A) = limbajul acceptat de A prin: T ( A) = {w * | ( x0 , w) F } = mulimea cuvintelor care duc automatul din stare iniial ntr-una din strile finale. Mai introducem noiunea de automat finit nedeterminist (a.f.n.) care difer de a.f.d. prin faptul c: : X P ( X ) , adic dac automatul este n starea x i se aplic a , automatul trece ntr-una din strile din ( x, a) . La fel ca mai sus, se extinde la : X * P ( x) : ( x, ) = {x} ( x, a ) = ( y , a ) y = ( x , ) Pentru a.f.n., definim limbajul acceptat prin: T (A ) = {w * | ( x0 , w) F } Adic w T (A ) dac exist o traiectorie de stri prin care, aplicnd succesiv literele din w, se trece din starea iniial ntr-una dintre strile finale. Evident, a.f.n. sunt mai generale dect a.f.d. Puterea generativ rmne ns aceeai, conform urmtoarei teoreme: Teorema 1: Fie A a.f.n. A ' a.f.d. cu T (A ' ) = T (A ) . n continuare artm c automatele sunt echivalente cu limbajele regulate. Prezentm numai construciile: Teorema 2: Fie A a.f.d. G g.r. cu L(G ) = T (A ) . Fie A = (, X , , x0 , F ) . Construiesc G = ( N , T , S , P ) astfel:

N = X T = S = x0 P = { A aB | ( A, a ) = B} { A a | ( A, a ) F } adic pentru fiecare ( A, a ) = B : - introduc producia A aB - dac n plus B F , atunci introduc i producia A a . " " simplu " " simplu Teorema 3: Fie G g.r. A a.f.d. cu T (A ) = L(G ) . Conform echivalenei dintre automatele finite deterministe i cele nedeterministe, este suficient s construiesc A a.f.d. cu T (A ) = L(G ) .

Fie G = ( N , T , S , P ) g.r. Consider A un simbol nou (care nu apare n N T ). Construiesc A = (, X , , x0 , F ) astfel: X = N { A}


x0 = S =T F = { A} (unica stare final este simbolul nou introdus) Pentru B N i a definim mulimea ( B, a) astfel: introduc n ( B, a ) toate neterminalele C cu B aC P dac B a P, introduc n ( B, a ) i pe A. n plus, ( A, a ) = , a .

Cele dou teoreme de mai sus arat c atunci cnd lucrm cu limbaje regulate putem folosi fie gramatici (regulate), fie automate finite. Ca i pentru g.i.c., ne intereseaz dac pentru o g.r. G, limbajul L(G ) generat este - vid sau nu; - finit sau nu. Lema stelei: Fie L limbaj regulat k a.. w L, w k , w admite o
0 < w2 < k descompunere w = w1w2 w3 cu i toate w1w2 w3 L, i = 0,1, 2, Fie A a.f.d. cu T ( A) = L . Aleg k = X unde A = (, X , , x0 , F ) .

Fie w L = T ( A) cu w k . Deci ncepnd cu x0 i terminnd cu ( x0 , w) F , automatul trece prin cel puin k + 1 stri y stare care se repet: w1 w2 w3

x0

..

..

..

( x0 , w) F

10

Deci ( x0 , w1 ) = y, ( y, w2 ) = y, ( y, w3 ) F . Observm c:

w2 > 0 pentru c w2 w2 < k pentru c drept y pot alege cele mai apropiate stri care se repet
Pentru i = 0 : ( x0 , w1w2 ) = ( y, w2 ) F .
i i i Pentru i 2 : ( x0 , w1w2 w3 ) = ( y, w2 w3 ) = ( y, w21w3 ) = = ( y, w3 ) F Observaie: Cu ajutorul lemei stelei pot da exemple de limbaje i.c. care nu sunt regulate. Exemplu: L = {x n y n } este i.c. dar nu este regulat L este generat de G = {{S },{x, y}, S , P) cu P = {S xy, S xSy} .

Propoziia 1: Fie G g.r. L(G ) w L(G ) cu w < k .


" " evident " " Fie w L(G ) nevid.

Dac w < k , O.K. Dac

w k,

aplic lema stelei i consider

w' = w1w3 , w' < w

i repet

raionamentul pn obin w' cu w' < k . Propoziia 2: Fie G g.r. L(G ) infinit dac i numai dac w L(G ) cu k w < 2k , unde k este cel din lema stelei. " " Conform ipotezei, w L(G ) cu w k .

w = w1w2 w3 Conform lemei stelei, w2 > 0 i wi = w1w2 w3 L (G ), i 0 Observ c {wi } este infinit, pentru c lungimile acestor cuvinte sunt cresctoare.
" " Cum L(G ) este infinit w L(G ) cu w k .

Dac w < 2k O.K. Dac nu (adic w 2k ) , aplic lema stelei la fel ca n Propoziia 1 i obin cuvinte de lungimi din ce n ce mici. ns lungimea scade cu cel mult k!

11

6. OPERAII CU LIMBAJE

L = familia limbajelor dependente de context 1 Fie L = familia limbajelor independente de context 2 L = familia limbajelor regulate 3 Familia L i = (1, 2,3) este nchis la operaia de reuniune. Teorema1: i Fie L' , L" L i i

G ' = N ' , T ' , S ' , P ' cu L (G ' ) = L' G ''


'' '' '' '' ''

( ) = ( N , T , S , P ) cu L(G ) = L

''

Putem presupune c N ' N '' = . Fie S N ' N '' T ' T '' un simbol nou. Pentru i = 0,1, 2 consider G = ( N , T , S , P ) cu: N = N ' N '' {S }; T = T ' T '' ' '' ' '' P = P P {S S , S S } Pentru i = 3 , n construcia de mai sus: S S ' se nlocuiete cu {S | S ' P '} '' '' '' S S se nlocuiete cu {S | S P } L i = (1, 2,3) conine limbajele finite. Teorema 2: i Cum L L L , este suficient s art c L conine limbajele finite. Fie L 3 2 1 3 limbaj finit. L = este acceptat de automatul A = (, X , , x0 , F ) .
L = {} este acceptat de automatul

unde prin x0 este marcat unica stare final.

12

L = {w} cu w = a1a2 an , n 1 Consider A = ({x0 , x1 , , xn , y},{a1 , , an }, , x0 ,{xn })

ai , i 2

ai , i n ai

ai , i 1

L = {w1 , w2 , , wn } aplic T1. Familia L (i = 1, 2,3) este nchis la concatenare. i Fie G ' = N ' , T ' , S ' , P ' i G '' = N '' , T '' , S '' , P '' de tip I, cu L(G ' ) = L' , L(G '' ) = L'' .

Teorema 3:

Pentru i = 1, 2 : Fie S simbol nou. Consider gramatica: G = N ' N '' {S}, T ' T '' , S , P ' P '' {S S ' S '' }

' Evident L(G ) = LL'' Pentru i = 3 : Consider gramatica: '' G = ( N ' N N , T ' TT'' , S ' , P ) cu

P = { A aB | A aB P ' } { A aS '' | A a P '} P ''

adic atunci cnd urmeaz s fie aplicat o producie de tipul A a din P ' (care ncheie generarea unui cuvnt din L' ), aplic A aS '' entru a deschide calea generrii n continuare a unui cuvnt din L'' . Teorema 4: Familia L3 este nchis la complementar. Fie L L i A = (, X , , x0 , F ) cu T (A ) = L . 3 Atunci A = ( X , , , x0 , X \ F ) genereaz T (A ' ) = * \ L = L Corolar 1: Familia L3 este nchis la intersecie. Suficient s folosesc legile lui de Morgan:
L L = ( L L ) unde prin L am notat complementara lui L. Fie L limbaj. Definim: L* = {w1 wn | n 0, wi L} = mulimea concatenrilor de oricte cuvinte din L Teorema 5: Familia L3 este nchis fa de operaia *. Fie L L i G = ( N , T , S , P ) cu L(G ) = L. 3
' '' ___________ ' ''

Consider

G ' = N , T , S , P ' unde P ' = P { A aS | A a P}

(vezi

explicaia de la Teorema 3).

13

O caracterizare a familiei de limbaje L este dat de urmtoarea teorem, 3 datorat lui Kleene: L este cea mai mic clas de limbaje ce conine limbajele finite i este Teorema 6: 3 nchis la operaiile de reuniune, concatenare i *.

14

7. ANALIZA LEXICAL

Compilarea cuprinde n esen urmtoarele etape: 1) Analiza lexical 2) Analiza sintactic 3) Generarea codului. Vom evidenia rolul limbajelor regulate n analiza lexical, precum i rolul limbajelor (gramaticilor) independente de context n analiza sintactic. ntr-un program, anumite combinaii de caractere sunt tratate ca un tot, altfel spus constituie o entitate (de exemplu, constante, nume de variabile, cuvinte cheie, operatori, etc.). Analizorul lexical are ca scop detectarea acestor entiti n irul de caractere (peste un alfabet ) care constituie intrarea. Ca rezultat se obine o succesiune de entiti. Unora dintre acestea li se ataeaz un indicator ctre o locaie de memorie (care, de exemplu, n cazul numelor de variabile, pstreaz valoarea curent a variabilei). Ulterior, n cadrul analizei sintactice, se verific dac succesiunea de entiti este corect formulat. Indicatorii ctre locaii de memorie sunt folosii n etapa de generare a codului. Considerm textul de analizat (un ir de caractere) i folosim un indicator aflat la nceput n faa primului caracter. n continuare indicatorul va fi poziionat mereu dup ultima entitate detectat. Se consider pe rnd tipurile de entitate posibile pn cnd determinm pe acela cu care ncepe irul de caractere de la dreapta indicatorului; mutm apoi indicatorul. Fie un alfabet. Definim noiunile de expresie regulat i limbaj regulat asociat. 1) este o e.r. (expresie regulat), ce reprezint 2) este o e.r., ce reprezint {} 3) a este o e.r., ce reprezint limbajul {a} 4) Dac p,q sunt e.r. ce reprezint limbajele regulate P,Q atunci: a) p q este o e.r. ce reprezint P Q b) p q este o e.r ce reprezint PQ c) p* este o e.r. ce reprezint limbajul P* . 5) Orice expresie regulat se obine plecnd de la 1), 2), 3) i aplicnd de un numr finit de ori regulile 4). Observaii - limbajele ce reprezint expresiile regulate sunt limbaje regulate conform proprietilor de nchidere ale familiei L la operaiile considerate. 3

15

Pentru a nltura ambiguitile, n e.r. trebuie s definim prioriti pentru operatori sau/i s folosim parantezare. Pentru simplificare, n continuare vom mai nota diferit expresiile i limbajele reprezentate de ele. Definim n continuare expresiile regulate extinse (e.r.e.), care reprezint de asemenea limbaje regulate, conform proprietilor de nchidere ale familiei L a 3 limbajelor regulate. 1) Orice e.r. este e.r.e. 2) Dac R este e.r.e., atunci a) R + este e.r.e., ce reprezint RR* b) R*n este e.r.e., ce reprezint {} R R 2 R n c) R + n este e.r.e, ce reprezint R R 2 R n 3) Dac R1 , R2 sunt e.r.e. R1 R2 , R1 \ R2 sunt e.r.e. 4) Orice e.r.e. se obine plecnd de la 1) i aplicnd de un numr finit de ori regulile 2) i 3). Fie alfabet. Numim ir de definiii regulate peste o secven: A1 := R1 A2 := R2 An := Rn unde Ai sunt simboluri distincte ce nu apar n , iar Ri sunt e.r.e. peste { A1 , , Ai 1} Identificatorii formai din cel mult 8 caractere, care sunt litere i cifre, iar Exemplu n plus primul caracter este liter, pot fi definii prin: < liter >:= a|b|...|z|A|B|...|Z < cifr >:= 0 1 9 *7 < identificator >:=< liter > (< liter >|< cifr >)
' ' Definim R1' , R2 , , Rn prin:

R1' = R1 ' ' Ri se obine din Ri nlocuind pe fiecare A j ( j < i ) cu R j


' Obinem c Rn este e.r.e. peste alfabetul . Un tip de entitate este definit de un ir de definiii regulate, peste , deci este ' ' definit de e.r.e. Rn . Cum Rn reprezint un limbaj regulat, un cuvnt w Z * este o entitate de tipul respectiv este acceptat de automatul ataat limbajului. Apar multe probleme, dintre care menionm doar cteva: 1) Dac n irul de intrare apare A * B + BC 31 (unde reprezint poziia

indicatorului), trebuie ales BC 31 i nu de exemplu BC , dei ambii sunt identificatori. 2) Implementarea automatelor n programe.
16

3) Ordinea n care acioneaz automatele asupra irului de caractere ce constituie intrarea. etc. Am vrut doar s punem n eviden rolul limbajelor regulate n analiza sintactic.

17

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