LIMBAJE FORMALE

Embed Size (px)

Citation preview

Limbaje formaleMirceaDraganMay25,2010Cuprins1 Limbajeformale 31.1 Limbaje,gramatici,propriet at igenerale . . . . . . . . . . . . . . . 31.2 IerarhiaChomsky. . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 Propriet at ide nchidereafamiliilorChomsky . . . . . . . . . . . 141.4 Problemacompil arii . . . . . . . . . . . . . . . . . . . . . . . . . 191.5 Problemepropuse. . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Limbajeregulate 252.1 Automatenite silimbajeregulate . . . . . . . . . . . . . . . . . 252.2 Propriet at ispecialealelimbajelorregulate . . . . . . . . . . . . . 312.3 Lemadepomparepentrulimbajeregulate . . . . . . . . . . . . . 342.4 Expresiiregulate . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.5 Sistemetranzit ionale . . . . . . . . . . . . . . . . . . . . . . . . . 372.6 Analizalexical a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.7 Problemepropuse. . . . . . . . . . . . . . . . . . . . . . . . . . . 503 Limbajeindependentedecontext 533.1 Arboridederivare . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2 Decidabilitate siambiguitate nfamilia /2. . . . . . . . . . . . . . 563.3 Formenormalepentrugramaticidetipul2 . . . . . . . . . . . . . 593.4 Automatepush-down(APD) . . . . . . . . . . . . . . . . . . . . . 653.5 Automatepushdowndeterministe . . . . . . . . . . . . . . . . . 733.6 LemaBarHillel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.7Inchidereafamiliei /2lasubstitut ii . . . . . . . . . . . . . . . . . 803.8 Caracterizarealimbajelorindependentedecontext . . . . . . . . . 844 Limbajedependentedecontext 914.1 Gramaticimonotone . . . . . . . . . . . . . . . . . . . . . . . . . 914.2 Automateliniarm arginite . . . . . . . . . . . . . . . . . . . . . . 955 Limbajedetipulzero 1015.1 Formanormal a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.2 MasinaTuring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10212 CUPRINSCapitolul1Limbajeformale1.1 Limbaje,gramatici,propriet at igeneraleNot iuneageneraladelimbaj. Vomconsideraomult imenit asi nevidaV ,numit aalfabet sauvocabular. Elementelemult imii levomnumi simboluri (saulitere,caractere,variabile).Denit ie1.1Uncuv ant pesteunalfabet V esteunsirp=a1a2. . . an, ai V, i = 1, n.Numarul n, deci numarul simbolurilor cuv antului p, se numeste lungimeacuv antuluisi vanotatcu [p[ saul(p). Vomconsiderasi cuv antul vidsaue,carenucont inenici unsimbol; evident [[=0. Unrol deosebit l aresimbolulblancnotatcu(nucoincidecu)precumsi simbolul marcaj notat#pentrudelimitareacuvintelor. Not iuneadecuvantestefundamental a nteorialim-bajelorformalesau naltedomeniialeinformaticii;termenisinonimiutilizat i nliteratur asunt propozit ie, frazasausir. S aobserv amc anuexist aosimilitu-dine foarte buna ntre not iunile de alfabet, cuvant, etc. din teoria limbajelorformale sinot iunilecorespunz atoaredinlingvistic a.Mult imeatuturor cuvintelor pesteunalfabet V onot amcuV+. Aceastamult ime mpreunacucuv antulvidvanotat acuV .Ingeneral, vomutilizaliteremari delasf arsitul alfabetului pentrunotareadiverselor alfabete, U, V, W, etc.; litere de la nceputul alfabetului (mari sau mici)pentru notarea simbolurilor, A, B, C, . . . , a, b, c, . . . , i, j, . . . (uneori cifre 0,1,2,...);pentru notarea cuvintelor vom utiliza litere mici de la sf arsitul alfabetului, p, q, r, s, t, u, v, w, x, y, z,(aceast aconvent iedenotarenuvaabsolut a).Fiep=a1. . . an, q=b1. . . bm. Denimpemult imeaVoperat iadecon-catenaresaujuxtapunereprinpq= a1. . . anb1. . . bm.Se poate verica usor c a aceast a operat ie este asociativa. Prin urmare,mult imeaV+nzestratacuaceast aoperat ieesteunsemigrup(semigrupul liberpesteV ). Mult imeaV cuaceiasioperat ieesteunsemigrupcuunitate,deci unmonoid,unitateaindcuv antulvid(monoidulliberpesteV ).34 CAPITOLUL1. LIMBAJEFORMALEFie din nou p, q V . Vom spune c a q este un subcuv at sau un inx (eventualpropriu) al lui pdacap=uqv, u, v V (eventual u, v V+); qesteprex(propriu)al lui pdacap=qv, v V(v V+); qestesux(propriu)al lui pdacap = uq, u V (u V+).Denit ie1.2Unlimbaj LpesteunalfabetV esteoparteamonoidului liberV ,deciL V .Sa observ am c a V (sau V+) estentotdeauna o mult ime innit a (evident numarabila);n aceast a accept iune generala, un limbaj poate sa e o mult ime nit a sau innit a,uneorichiarvid a.Exemplu. FieV= 0, 1. AvemV+= 0, 1, 00, 01, 10, 000, . . .,V = , 0, 1, 00, 01, 10, 000, . . ..LimbajepestealfabetulV suntdeexemplumult imileL1= , 00, 11,L2= 1, 11, 111, . . . = 1n[n 1.Observat ie. Notat iaan, unde aeste unsimbol al unui alfabet, nseamn acuvantulconstituitdinnsimboluria,adic aaa . . . a. ..Inparticulara0= .Operat iiculimbaje. Limbajele indmult imi se pot efectuaculimbajeoperat iile obisnuite cu mult imi: reuniune, intersect ie, diferent a, complemen-tariere(fat adeV). Exist asioperat iispecicelimbajelor:Produsul(concatenarea)adou alimbajedenitprinL1L2= pq[p L1, q L2.Dac aL1=L2=LvomnotaLL=L2. Prinrecurent a, sedenesteLnastfelL0= , Lk= Lk1L, k 1.Inchiderea(Kleene) aunuilimbajLesteL=_k=0Lk.Ingeneral, o operat ie de n-aritate oarecare (cel mai adesea binar a sauunar a)pemult imeaVdenesteooperat iecorespunzatoarepemult imealimbajelor. Astfel,dac a : V T(V ) si : VV T(V )1.1. LIMBAJE,GRAMATICI,PROPRIETAT IGENERALE 5sunt douaoperat ii peV(unar asi respectivbinara)si L1, L2sunt doualimbajepesteV ,putemdenilimbajele(L1)respectiv(L1, L2)prin(L1) =_xL1(x), (L1, L2) =_xL1,yL2(x, y).Exemple:1. Limbajul Sub(L). FieVsi Sub(x)mult imeatuturorsubcuvintelorlui x (evident Sub este o operat ie unar a pe V ). Daca L este un limbajpesteV ,putemdenilimbajulSub(L) =_xLSub(x).adicalimbajulconstituitdintoatesubcuvinteletututorcuvintelorluiL.Semnicat iianaloagevoraveasilimbajelePref(L) siSuf(L).2. Limbajul Mi(L). Fie x =a1. . . anuncuvant peste alfabetul V .Cuvantul Mi(x) =an. . . a1se numeste r asturnatul lui x(Mi esteprescurtareacuvantului englezmirror). Semai noteaz aMi(x)= x.Avematunci sirasturnatulunuilimbajMi(L) =_xLMi(x).3. Operat iadesubstitut ie. FieUsi V douaalfabetesi eaplicat ias:V T(U). Extindem(prelungim)aceast aaplicat ielaV prins() = , s(xy) = s(x)s(y), x, y V.Oastfel deprelungiresenumestecanonic a; eap astreaz aoperat iadeconcatenare, n sensul c a dac a p = xy, atunci s(p) = s(x)s(y) este con-catenarealimbajelors(x), s(y). Operat iadesubstitut iealimbajelorestedatades(L) =_xLs(x).Saobserv amc aaceast aoperat ietransformaunlimbajpesteunalfa-betV ntr-unlimbaj pesteunalfabetUsi cap astreaz aoperat iadeconcatenare. Dac acards(a)< , a V ,vomspunec asubstitut iaestenit a, iardac acards(a) =1, a V vomspunecasesteunhomomorsm.Gramatici generativedetipChomsky. Un limbaj peste un alfabet poatesaeomult imenit asauinnit a. Dac aesteomult imenit a,elpoate denit6 CAPITOLUL1. LIMBAJEFORMALEprinscriereaefectivaacuvintelorlimbajului.Incazul ncareesteomult imein-nit a, el poate denit n anumite cazuri pun andn evident a structura cuvintelorlui. DeexempluL2= 01, 0011, 000111, . . . = 0n1n[n 1.Exist adou aprocedeemaigeneralepentrudenirealimbajelor:1. Procedeegenerative, carepermitgenerareatuturorcuvintelorlimbajului.Exist amaimultetipuridemecanismedegenerarealimbajelor, ntrecaregramaticileChomsky,sistemeLindenmayer,etc.2. Procedee analitice, care determinadacauncuv ant dat apart ine saunulimbajului. Suntasa-numiteleautomate, automatenite, automatepush-down,etc.Un rol deosebit n teoria limbajelor formale l au gramaticile Chomsky. Fie VNsi VTdoua alfabete disjuncte, numite respectiv alfabetul simbolurilor neterminale(VN)si alfabetul simbolurilorterminale(VT). Not amVG=VN VT(alfabetulgeneral)si ePV GVNV GVG. Mult imeaPvadeci format adinperechideforma(u, v), undeu=u

Au

, u

, u

V G, A VNiarv V G, deci usi vsuntcuvintepesteVG,cuobservat iac autrebuiesacont inacelput inunsimbolneterminal. Vom spune c a o astfel de pereche este o regula (product ie, regul a degenerare,regul aderescriere)siovomnotau v(vomspune: usetransformanv). Apartenent aunei reguli laPovomnota nmodobisnuit(u v) P,sau mai simplu,u v P(nuva exista confuzia cufaptul c aveste un elementalluiP).Denit ie1.3Ogramatic a(Chomsky) Geste unsistemG=(VN, VT, S, P),undeVNeste alfabetul simbolurilor neterminale, VTeste alfabetul simbolurilorterminale, SVNsi se numeste simbolul de start al gramaticii, iar P estemult imeadereguli.Observat ie. Simbolurile alfabetului VNle vomnotangeneral culitere mariA, B, C, . . . , X, Y, Z(maiput inU, V, W)iarcelealealfabetuluiVTculiteremicidela nceputa, b, c, . . .saucucifre0, 1, 2, . . ..Fie Go gramatica si p, q VG. Vom spune c a p se transform a direct n q si vomscriep Gq(saupqdacanuexist anicioconfuzie)dac aexist ar, s, u, v V Gastfel nctp = rus, q = rvs iar u v P. Vom spuneca p

setransform a np

(f ar aspecicat iadirect)dac aexist ap1, p2, . . . , pn, n 1astfel nctp

= p1 Gp2 G. . . Gpn= p

.1.1. LIMBAJE,GRAMATICI,PROPRIETAT IGENERALE 7Vomscriep

+Gp

(saup

+p

candnuexist anicioconfuzie)dac an > 1 sip

Gp

(saup

Gp

)dac an 1. Sirul demaisusvanumitderivareiarnum arul de derivari directe din sir l vom numi lungimea derivarii; se mai spunecap

deriva np

.Saobserv amc atransformarileastfel denite ,+,sunt relat ii peVG.Esteclarc arelat ia+este nchidereatranzitivaarelat iei , iarrelat iaestenchidereatranzitivasireexivaarelat ieidetransformaredirecta.Denit ie1.4. LimbajulgeneratdegramaticaGesteprindenit ielimbajulL(G) = p[ p V T, SGp.Observat ie. Dac ap V GsiSGpsespunecapesteoform apropozit ional a ngramaticaG.Exemple:1. FieG=(VN, VT, S, P), undeVN= A, VT= 0, 1, S=A(evident)si P = A 0A1, A 01. Oderivarenaceast agramaticaeste, deexempluA0A100A11000111 = 0313.Esteevidentc aL(G) = 0n1n[n 1.Observat ie.Incazul ncaremai multereguli auaceeasi partest ang a, levomscriecompactastfelu v1[v2[ . . . [vn,simbolul [av andsensuldesau;ncazulnostru,A 0A1[01.2. G = (VN, VT, S, P), undeVN= , , , , ,,,,,VT= o,orice,matrice,funct ie,derivabila,continu a,este ,S=,P= ,,,,,o[orice,matrice[funct ie,derivabil a[continu a,este.Observat ie.In acest exemplu, , , etc., reprezint aecarec ateunsimbol neterminal; deasemenea, o, orice, matrice,8 CAPITOLUL1. LIMBAJEFORMALEetc.,reprezintasimboluriterminale.Sepoateusorobservacaaceast agramaticagenereazapropozit iisimpledeformasubiect-atribut-predicat-complement care exprim ajudecat i asupraconceptelor de matrice si funct ie. De exemplu, se poate forma propozit ia:oricefunct iederivabilaestecontinu a, careestedinpunctdevederese-mantic corecta, precumsi propozit iaorice funct ie continua este deriv-abil a, care, dup acumsestie, estefalsa. Evident, sepot generasi nu-meroasepropozit ii carenuausens. Ceeaceneintereseazanacest mo-mentesteaspectul formal, deci dinpunctdevederesintactictoateacestepropozit ii suntcorecte; semantic, unelepropozit ii pots aeincorectesauchiars anuaibesens.Samai observ amc aogramatic aChomskyestenm asur as aconstituieunmodelmatematicpentusintaxaunei limbi, far as ainteresezeaspectelesemantice. Esteceeacea ncercat santeprind aNaomChomskypentrulimbaenglez a nlucr arilesaledinanii1957.3. G = (VN, VT, A0, P),undeVN= , , , , , ,,,,VT= begin,end,if,then,stop,t,i,+,*,(,),=,,,; ,A0 =P= begin end; [ [ [stop=if()then+ [ * [ ()[ t()[i, [ Gramaticadinacest exempludeneste unlimbaj de programaresimplucutrei tipuri de instruct ii: atribuiri, if-then, stop. Expresiile aritmet-iceaunumai operatorii +si *iar variabilele pot simple sauindexate(tablouri). Ment ion amc adenireanacest modaunui limbaj, inclusivutilizareacrosetelor pentrudesemnareasimbolurilor neterminale, poart aadeseadenumireadenotat ieBackusNaur; nacestmods-adenitlimba-julALGOL.Tipuridegramatici. Dup aformaregulilordegenerare,gramaticileChomskyse mpart nmaimultetipuri;clasicareaobisnuitaesteurm atoarea:Gramaticidetipul 0;suntgramaticifar arestrict iiasupraregulilor;1.1. LIMBAJE,GRAMATICI,PROPRIETAT IGENERALE 9Gramaticidetipul1(dependentedecontext); suntgramatici care au regulideformauAv upv, u, p, v V G, p ,= , A VNsauA si nacestcazA VNnuapare ndreaptavreuneireguli.Observat ie. Evident, reguliledeformaadouaausensnumai dac aAestesimboluldestart.Gramaticiledetipul 2(independentedecontext); sunt gramatici careauregulideformaA p, A VN, p V G.Gramaticiledetipul 3(regulate);suntgramaticicareauregulideforma_A BpC qsau_A pBC qcuA, B, C VNsip, q V T .VomnotacuLj, j =0, 1, 2, 3familiiledelimbajegeneratedegramaticiledetipurilej =0, 1, 2, 3; vomaveaastfel limbajedetipul 0, limbajedetipul 1(saudependentedecontext), limbajedetipul 2(sauindependentedecontext)si limbajedetipul 3(sauregulate). S aobserv amc aesteimportantastructuracuvintelorunuilimbaj sinu modul n care suntnotate simbolurileterminale. Deexemplu,limbajeleL

2= 0n1n[n 1, L

2= anbn[n 1suntnmodpracticidentice. Putemutilizaounicanotat iepentrualfabetulsimbolurilor terminale , de exemplu, VT= i1, . . . , in. Clasicareade maisusestefundamentala nteorialimbajelorformale,eaafostintrodusadeNaomChomsky n1958 siprintradit ienoileclasedelimbajesuntraportate laaceast aclasicare. Oalt aclasicareesteurm atoareaGramaticidetipul 0;far arestrict ii;Gramaticimonotone:u v, [u[ [v[, u, v V G;Gramaticidependentedecontext(detipul 1):uAv upv, u, p, v VG, p ,= , A VN;10 CAPITOLUL1. LIMBAJEFORMALEGramaticiindependentedecontext(detipul 2):A p, A VN, p V G;Gramaticiliniare:_A uBvC pA, B, C VN, u, v, p V T ;Gramaticist ang(drept)liniare:_A uB(A Bv)C pA, B, C VN, u, v, p VT ;Gramaticiregulate(detipul3);gramatici stangliniare saugramatici dreptliniare.Gramaticilemonotonecasi celedependente decontext nupot aveareguli cuparteadreapt avid a. Seintroduceurm atoareaconvent iedecompletare: ntr-ogramatic amonoton asaudependent adecontext seadmiteoreguladeformaA cucondit iacaAsanuapar a nparteadreapt aavreunei reguli. Dup acumvomvedea, existent asauinexistent aregulilor de formaA , regulinumitede stergere, poatemodicaesent ialputereagenerativaauneigramatici.Ogramaticancarenuavemastfel dereguli ovomnumi uneori -libera; deasemenea, unlimbajcarenucont inecuvantul vid, lvomnumi -liber. Samaiobserv amc aexistent aregulilordestergere ntr-ogramaticanuimplic a nmodnecesarexistent acuvantuluivid nlimbajulgenerat.Dou agramaticicaregenereaz aacelasilimbajsenumescechivalente.Gramaticilemonotone sigramaticiledependentedecontextsuntechivalente;deasemenea, gramaticiledreptsi stangliniaresuntechivalente, justicandu-seastfelclasagramaticilorregulate.1.2 IerarhiaChomskyLemele care urmeaz a vor avea o utilizare frecvent an cele ce urmeaza. LemadelocalizareagramaLema1.1FieGogramaticaindependent adecontextsiederivareaX1. . . Xmp, Xj VG, j= 1, m, p V G.Atunciexist ap1, p2, . . . , pm VGastfel nc atp = p1. . . pmsiXjpj, j= 1, m.1.2. IERARHIACHOMSKY 11Demonstrat ie. Proced amprininduct ieasupralungimiiderivariil.Dac al = 0atuncip = X1. . . Xmsiluampj= Xj.Presupunemcaproprietateaesteadev arat apentruderiv aridelungimelsieoderivaredelungimel + 1, X1. . . Xmp. Punem nevident aultimaderivaredi-rect aX1. . . Xmqp. Conformipotezeiinductive,q= q1. . . qmsiXjqj, j=1, m.Fie apoi A u regula care se aplican derivarea direct a qp si sa presupunemcaAintr a nsubcuv antulqk,deciqk= q

kAq

k. Vomluapj=_qj, j ,= kq

kuq

k, j= kEsteevidentc aXjpj, j ,= k,iarpentruj= kavemXkqk= q

kAq

kq

kuq

k= pk.2Vompune nevident a ncontinuareoproprietateasuprastructurii regulilorgramaticilor Chomsky. Parteadreapt aaunei reguli, pentrutoatetipuriledegramatici, este un cuvantformat din terminale sau neterminale. Este convenabildemulteoricaparteadreapt aaregulilors acont inaunsingurtipdesimboluri,terminalesauneterminale. Acestlucruesteposibilf ar amodicareatipuluigra-maticii.Lema1.2FieG = (VN, VT, S, P)ogramatic adetipul2. Existaogramatic aG

echivalent a,deacelasitip,cuproprietateac adacaoregul aare nparteadreapt aunterminal,atuncieaestedeformaA i, A VN, i VT.Demonstrat ie. Lu am gramatica G

de forma G

= (VN

, VT

, S, P

) unde VN

si P

se construiesc astfel: VN VN

si includemn P

toate regulile din Pcare convin.Fieacumoregul adinPcarenuconvineu v1i1v2i2. . . invn+1, ik VT, vk V N.Vomintroduce nP

urmatoarelereguli:u v1Xi1v2Xi2 . . . Xinvn+1, Xik ik, k= 1, n,undeXiksuntneterminalenoi pecarelead aug amlaVN

. Esteevident caG

pastreaz atipulluiG sicaL(G

) = L(G).2IerarhiaChomsky. Esteevident ca /3 /2si ca /1 /0, deoareceoriceregul aaunei gramatici detipul 3respectaprescript iileunei gramatici detipul2;analogpentrufamiliile /1si /2. Aparent, oregul adeformaA p(detipul2)esteuncazparticularauneiregulideformauAv upv(detipul1),pentruu=v=; totusi, realitateanuesteaceasta, deoarecelatipul 2degramatici12 CAPITOLUL1. LIMBAJEFORMALEsunt permise reguli de stergere, pe cand la tipul 1 se impune condit ia p ,= . Vomar atac aavem /2 /1.Siruldeincluziuni/3 /2 /1 /0poart adenumireadeierarhiaChomsky(vomar atapeparcursul acestui curscaincluziunilesunt stricte). Aceastaierarhiecaracterizeaz aputereagenerativaacelor patrutipuri de gramatici, aceast aputere indcrescatoare de la3la0.Oricealtemecanismegenerativeseraporteaz alaaceast aierarhiefundamental a.Vomdemonstramai nt aiurm atoarealem a.Lema1.3(Lemaeliminarii regulilordestergere). Oricelimbaj independentdecontext-liberpoategeneratdeogramatic adetipul 2f ar aregulidestergere.Demonstrat ie. FieG=(VN, VT, S, P)ogramatic aindependent adecontextsiL(G)limbajul generat. Prinipotez a ,L(G). Denimprinrecurent asirul demult imi UkkNastfel:U1= X[X VN, X PUk+1= X[X VN, X p P, p Uk.Saobserv amc aU1 U2 . . . Uk . . ..Intr-adevar, U1 U2deoarecedac aXU1rezultac aX Psi cum U1rezultac aXU2. Dac aacumUk1Uk, atunci evident Uk1Uksi dacaXUk, deci Xp,p Uk1 Uk,ceeace nseamn ac aX Uk+1,adic aUk Uk+1.Cum toate aceste mult imi sunt incluse n VNsi VNeste nit a, rezult a c a exist aomult imenalaUfastfelastfel ncatU1 U2 Uf= Uf+1=.Arelocdeasemeneasiimplicat iaX Uf X.Vomilustaaceastaimplicat iecuunexemplu. SapresupunemcaUf=U3sieX U3. Atunci nmodnecesar trebuies aavemX p P, p U2; deexemplup = X1X2siX1, X2 U2.Inmodanalog_X1 Y1Y2Y3X2 Z1Z2, Y1, Y2, Y3, Z1, Z2 U1,prinurmareY1 ,Y2 ,Y3 ,Z1 ,Z2 . PutemscriederivareaXX1X2Y1Y2Y3Z1Z2.Denimacumurm atoareagramatic aindependent adecontextf ar aregulidestergereG

= (VN, VT, S, P

)undeVN, VT, Ssuntca ngramaticadat a,iarP

seconstruiesteporninddelaPastfel. FieX p P, p ,=. Includematunci n1.2. IERARHIACHOMSKY 13P

aceasta regul a precum si toate regulile de forma X pj, unde pjse obt ine dinplas andlaoparte, ntoatemodurileposibile, simboluriledinUf. DeexempludacaX ABC PsiA, B Uf,vominduce nP

regulileX ABC, X BC, X AC, X C.Saobserv amc a nacestfel mult imeaPafostpedeopartemicsorat a(aufostexclusereguliledestergere), iarpedealt aparte mbog at itacueventualelenoireguli. Sa mai obsev am c a G

este independent a de context si ca nu cont ine regulide stergere.Vomar atac aL(G) = L(G

).Mai nt ai,s aar at amc aL(G) L(G

).Fiep L(G),deciSGp;vomar atac aSG

p.Vomar ataoimplicat iecevamaigeneral a, XGpimplicaXG

p,pentruoriceX VN(relat iacerut aseobt inepentruX=S). Proced amprininduct ieasupralungimiiderivariil. Dac al = 1avemX Gp, X p P, p ,= X p P

sideciXG

p.Presupunemcaarmat iaesteadev arat apentrul =nsi luamoderivareculungimeal = n + 1. Punem nevident aprimaderivaredirect aX GX1. . . XmGpConformlemei delocalizareavemp=p1. . . pmsi XjGpj, j=1, m. Un-eledincuvintelepjpots aevide; pentruprecizareaideilorsapresupunemcap2, p3, p5=. Atunci pentruderiv arileXjGpj, j ,=2, 3, 5,careaulungimeadecelmultn,conformipotezeiinductiveavemXjG

pj, j= 2, 3, 5.Pedealt aparte, pentruj =2, 3, 5avemX2G, X3G, X5G,deciX2, X3, X5 Uf. Rezult ac aX X1X4X6. . . Xm P

asa ncatputemscrieX G

X1X4X6. . . XmG

p1p4p6. . . pm= p.14 CAPITOLUL1. LIMBAJEFORMALEDeciXG

p siluandX= Sobt inemp L(G

). PrinurmareL(G) L(G

).Saar at amacumincluziuneainvers a,L(G

) L(G).Fiep L(G

), SG

p. Punem nevident aoderivaredirect aoarecareSG

u G

vG

p.Dac a n derivarea direct a u G

vse aplica o regul a care exist a si n G, atuncievident pasul respectiv poate facut si n G. S a presupunem ca se aplic a o regul anouintrodus adeexempluX BC,decipasulrespectivvaaveaformau = u

Xu

G

u

BCu

= vdarregulaX BCdinP

aprovenitdintr-oregul adinP, l as andlaopartesimboluri din Uf, n cazul nostru din X ABC, las andu-l la o parte pe A Uf.DeoareceAG,avemu = u

Xu

Gu

ABCu

Gu

ABCu

= v.Prinurmareoricepasalderiv ariiconsideratesepoateobt ine si ngramaticaG,deciA0Gp sip L(G),adic aL(G

) L(G).Sa consider am acum o gramatica G de tipul 2 si sa presupunemca L(G).ConstruimgramaticaG

casi mai sus; oricecuvant p ,=dinL(G) sepoateobt ine nG

siinvers,deciL(G

) = L(G) . Consider amatunciogramatic aG

=(VN S

, VT, S

, P

S

, S

S). Evident L(G

) =L(G).ToateregulileluiG

respectatipul1(cuu = v= )sicont ineosingur aregul adestergereS

iar S

nuaparenparteadreapt aavreunei reguli. DeciG

estedetipul1 sioricelimbajindependentdecontextesteinclus n /1,adic a/2 /1.21.3 Proprietat i de nchidereafamiliilorChom-skyFiind dat a o operat ie binar a notat a cu pe o familie de limbaje L, vom spunacafamiliaLeste nchisalaoperat iadac aL1, L2 LimplicaL1 L2L.Denit ianot iuniide nchiderepentruoperat iiunaresaucuaritateoarecareesteanaloag a.Vomnumi familiiledinclasicareaChomsky, mai scurt, familiileChomsky.SepoatedemonstracafamiliiledelimbajedinierarhiaChomskysunt nchisela1.3. PROPRIETAT IDE INCHIDEREAFAMILIILORCHOMSKY 15operat iileregulate, adicareuniune, produssi nchidereKleene. Odemonstrat iedetaliat a poate g asit a n Dragan[1998] sau Jucan[1999]. In cele ce urmeaz a vomprezentadoardemonstrat iilepentrucazulfamiliilor /j, j= 2, 3.InchidereafamiliilorChomskylareuniune.Teorema1.1FamiliiledelimbajeLj, j= 2, 3sunt nchisefat adereuniune.Demonstrat ie. FieGk=(VNk, VTk, Sk, Pk), k =1, 2dou agramatici deacelasitipj, j =0, 1, 2, 3. Putempresupune c aVN1 VN2= . Trebuie saar at amcalimbajul L(G1) L(G2) este de acelasi tipj.Inacest scopvomconstruiogramaticadetipul j caresagenerezelimbajul L(G1) L(G2). Consider amurmatoareagramatic a:G = (VN1 VN2 S, VT1 VT2, P1 P2 S S1[S2).Esteevidentc aGareacelastipjca siceledouagramaticidate.Vomar atac aL(G) = L(G1) L(G2).Fiep L(G),adic aSGp.InprimaderivaredirectatrebuiecunecesitatesaseutilizezeunadinregulileS S1sauS S2. Prinurmareavemunadinurmatoareledou avariante:S GS1Gp, deci S1G1p, p L(G1) L(G1) L(G2)S GS2Gp, deci S2G2p, p L(G2) L(G1) L(G2).Decip L(G1) L(G2),adic aL(G) L(G1) L(G2).Observat ie.Inimplicat iaS1p ngramaticaG1rezultaS1Gpseuti-lizeaza faptul c a neterminalele celor dou a gramatici sunt disjuncte. Astfel, derivareaS1psevascriedetaliatastfelG : S1u1u2. . . un= p.IntrucatS1 VN1siS1 , VN2 nderivareadirect aS1u1seutilizeazacunecesi-tateoregul adinP1;prinurmareu1 V G1,decitoateneterminaleledinu1suntdinVN1. Mai departe, nderivareadirect au1u2seutilizeazacunecesitateoregul a din P1, etc.In consecint a, n derivarea S1Gp toate simbolurile sunt dinVG1siseutilizeazanumairegulidinP1,deunderezultaimplicat ia.Invers, ep L(G1) L(G2). Daca,deexemplu,p L(G1),avemS1G1p,rezultaS1Gp,deciputemconstruiderivareaS GS1Gp.Prinurmare,p L(G)siL(G1) L(G2) L(G).2Exemplu. Fielimbajele16 CAPITOLUL1. LIMBAJEFORMALEL1= 1, 11, 111, . . ., L2= 01, 0011, 000111, . . ..SepoatevericacaacestelimbajesuntgeneratedegramaticileG1: A 1A[1,G2: B 0B1[01.Se vede ca L1 /3 /2, L2 /2deci ambele limbaje sunt de tipul 2. Problemanchideriifamiliei /2lareuniuneconst a n: estelimbajulL1 L2= 1, 11, . . . , 01, 0011, . . .deasemeneadetipul2(adic aexist aogramatic adetipul2cares a lgenereze) ?R aspunsul estearmativ; gramaticadetipul 2caregenereaz alimbajul L1 L2areregulileS A[B, A 1A[1, B 0B1[01.InchidereafamiliilorChomskylaprodus.Teorema1.2Familiiledelimbaje /j, j= 2, 3sunt nchisefat adeprodus.Demonstrat ie. FieGk= (VNk, VTk, Sk, Pk), k= 1, 2dou agramaticideacelasitipj, j =2, 3. Putempresupunec aVN1 VN2= . Vomconstrui ogramatic adetipuljcaresagenerezelimbajulL(G1)L(G2).Familia /2. Lu amgramaticaGastfelG = (VN1 VN2 S, VT1 VT2, P1 P2 S S1S2).Fiep L(G), SGp. AceastaderivarevaaveaformaS GS1S2Gp.Vomaplicalemade localizare de lalimbajele independente de context: dac aS1S2patuncip = p1p2siS1p1,S2p2.Maideparte,avemc ap1 L(G1), p2 L(G2) sidecip L(G1)L(G2).Invers, ep L(G1)L(G2). Atunci p=p1p2si S1G1p1, S2G2p2. Acestederivarisuntvalabile si ngramaticaG. Prinurmareputemscrie:G : S GS1S2Gp1p2= p,1.3. PROPRIETAT IDE INCHIDEREAFAMILIILORCHOMSKY 17adicap L(G)siL(G1)L(G2) L(G).2S amaiobserv amc aconstruct iademaisusnusepoateaplicalafamilia /3,deoareceregulanouintrodus aS S1S2nuestedetipul3.Familia /3. Lu amgramaticaGdeformaG = (VN1 VN2, VT1 VT2, S1, P

1 P2),undeP

1seobt inedinP1prin nlocuirearegulilordeformaA pcuA pS2.Evident,Gastfelconstruitaestedetipul3.VomnumireguliledeformaA pBdecategoriaIiarceledeformaC qdecategoriaaII-a. Evidentca ntr-oderivarecaretransformasimboluldestartntr-uncuvantal limbajului generatdegramatic a, ntoatederiv ariledirecteseaplica reguli de categoria I iar n ultima o regul a de categoria II. Sa mai observ amcaP

1areregulinumaidecategoriaI.Fie p L(G), deci S1Gp.In aceast a derivare, primele reguli care se aplicasunt dinP1, apoi oregul anouintrodus a(cunecesitate, caci altfel nuputemeliminaneterminalele)iarultimeleregulisuntdinP2. Prinurmare,derivareavaaveaformaS1GqA GqrS2= p1S2Gp1p2= p.Este clar c a S1G1qr = p1 (la ultima derivare s-a reutilizat regula de categoria IIdin P1 din care a provenit regula nou a) si S2G2p2, adic a p1 L(G1), p2 L(G2).Prinurmarep = p1p2 L(G1)L(G2) sideciL(G) L(G1)L(G2).Fieacump L(G1)L(G2). Rezult ac ap=p1p2, p1 L(G1), p2 L(G2)sideci S1G1p1, S2G2p2.InderivareaS1G1p1ultimaregulautilizat aestedecategoriaaII-a,s apresupunemA r,deciaceastaderivarevaaveaformaS1G1qAqr = p1.Tinandcontc a nGavemregulaA rS2,putemscrie nGderivareaS1GqA GqrS2= p1S2Gp1p2= p,adicap L(G)siL(G1)L(G2) L(G).2InchidereafamiliilorChomskylaoperat ia nchidereKleene.Teorema1.3Familiile /j, j =2, 3suntnchisefat adeoperat iadenchidereKleene.18 CAPITOLUL1. LIMBAJEFORMALEDemonstrat ie.Familia /2. ConstruimgramaticaGastfelG= (VN S, VT, S, P P

S SS[)Fiep L(G),deciSp. Aceastaderivarevaaveaforma(nG)(B) SSS . . . Sp.Conformlemeidelocalizare,p = p1. . . pn, Spj, j= 1, n sideciSpj,ceeace nseamn ac ap L(G)n L(G),adic aL(G) L(G).Invers,e p L(G); atunci p = p1. . . pn, Spj, j= 1, n. Putem scrie atunciderivarea(B) sip L(G),adic aL(G) L(G).2Familia /3. ConstruimgramaticaGastfelG= (VN S, VT, S, P P

S S[),undeP

seobt inedinreguliledecategoriaIIdinPsi anume, dacaA p PatunciA pS P

.Fie p L(G), adic a S p. Punandn evident a prima derivare direct a, avemG: SSp.Dac a n derivarea Sp se aplica numai reguli din P, atunci SGp, p L(G) L(G).Sapresupunemc aseaplic a siregulidinP

;derivareavaaveaforma(C) SSp1Sp1p2S. . .p1. . . pn.Evident, Spj,deci pj L(G),adic ap L(G), ceeace nseamn ac aL(G) L(G).Invers, e p L(G); atunci p = p1. . . pn, Spj, j= 1, n, sau Spj si putemscriederivarea(C). Aceasta nseamn ac ap L(G)sauL(G) L(G).2Recapitulareasupraconstruct iilorgramaticilor:Reuniunej= 2, 3 :G = (VN1 VN2 S, VT1 VT2, P1 P2 S S1[S2).Produsj= 2 :G = (VN1 VN2 S, VT1 VT2, P1 P2 S S1S2).j= 3 :G = (VN1 VN2, VT1 VT2, S1, P

1 P2),1.4. PROBLEMACOMPILARII 19undeP

1seobt inedinP1prin nlocuirearegulilordeformaA pcuA pS2.InchidereKleenej= 2 :G= (VN S, VT, S, P S SS[)j= 3 :G= (VN S, VT, S, P P

S S[).1.4 ProblemacompilariiUnlimbaj deprogramareesteunlimbajcarearedreptscopdescriereaunorprocesedeprelucrareaanumitor datesi astructurii acestora(nunelecazuridescriereastructuriidatelorestepreponderenta),prelucrarecareserealizeaza ngeneralcuajutorulunuisistemdecalcul.Exist a n prezentun numar mare de limbaje de programare de nivel nalt sauevoluate care se caracterizeaza printr-o anumit a naturalet e, n sensul c a descriereaprocesuluideprelucrarecuajutorullimbajuluiesteapropiat adedescriereanat-ural aaprocesului respectivprecumsi prinindependent aunorastfeldelimbajefat a desistemulde calcul. Dintrelimbajelede acesttipcu oanumit ar asp andirenmomentuldefat ament ion amlimbajelePASCAL,FORTRAN,C,JAVA,etc.Oalt a clas aimportantadelimbaje,suntlimbajeledeasamblare, saude nivelinferior, alecarorcaracteristici depinddesistemul decalcul considerat. Ingen-eral, ecaresistemdecalcul (sautipdesistemdecalcul), arepropriul s aulim-baj deasamblare; deexemplu, limbajul deasamblarealesistemelor decalculechipatecuprocesoaredetipIntel Z-80estedenumitnmodcurent ASSEM-BLER. Instruct iileunui limbaj deasamblarecorespundcuoperat iilesimplealesistemului decalcul iarstocareadatelor nmemorieesterealizat adirectdeuti-lizator la nivelul locat iilor elementare ale memoriei. Exist ade asemeneaanumitepseudo-instruct ii sau directive referitoare la alocarea memoriei, generarea datelor,segmentareaprogramelor, etc., precumsi macroinstruct iicarepermitgenerareaunorsecvent etipicedeprogramsauaccesullabiblioteciledesubprograme.Inafara delimbajeleevoluate side limbajeledeasamblare,exist anumeroaselimbaje specializate, numite uneori si de comand a, care se refera la o anumit a clas adeaplicat ii. Ment ion amdeexemplulimbajul pentruprelucrarealistelorLISP,limbajeleutilizate ncadrulsoftwareluimatematic(Mathematica,Maple,MAT-CAD,etc.) simultealtele.Ingeneral nsaastfeldelimbajenusuntconsideratelimbajedeprogramarepropriuzise.Un program redactat ntr-un limbaj de programare poarta denumirea de pro-gramsursa. Fiecare sistem de calcul, n funct ie de particularit at ile sale, posed aunanumitlimbajpropriu,numitcodmasin a, acestaindsingurullimbaj nt elesdeprocesorul sistemului. Unastfel delimbaj depindedestructurainstruct iilorprocesorului, desetul deinstruct ii, deposibilit at iledeadresare, etc. Unpro-gram redactat n limbajul cod masin aal sistemuluide calcul l numim program20 CAPITOLUL1. LIMBAJEFORMALEobiect.Procesul de transformare al unui program sursa n program obiect se numestecompilaresautranslatare, uneori chiartraducere. Deobicei termenul decom-pilare este utilizat numai ncazul limbajelor evoluate, ncazul limbajelor deasamblareindutilizattermenuldeasamblare.Compilarea(asamblarea)esteefectuat adeunprogramal sistemului numitcompilator(asamblor). Demulteoricompilatoarelenuproducdirectprogramobiect, ci untextintermediarapropiatdeprogramul obiect, care nurmaunorprelucr ari ulterioare devine programobiect. De exemplu, compilatoarele sis-temelor deoperareDOSproducuntext numit obiect (sierecuextensiaobj)carenurmaunui proces numit editaredeleg aturi si ancarc ariinmemoriedevineprogramobiectpropriuzis, numitprogramexecutabil (sierecuextensiaexe). Exist amaimulterat iunipentruoastfeldetratare, ntrecareposibilitateacuplarii maimultormoduledeprogramrealizateseparatsauprovenitedinlim-bajesurs adiferite, posibilitateacrearii unorbiblioteci deprograme nformatulintermediarsiutilizarealor nalteprograme,etc.Unprogramsurs apoatedeasemeneas aeexecutat dec atresistemul decalcul direct, far atransformarealui prealabila nprogramobiect.Inacestcaz,programul surs aesteprelucrat deunprogramal sistemului numit interpretor;acestancarc asuccesivinstruct iile programului surs a, le analizeaz adinpunctdevederesintacticsi semanticsi dupacaz, leexecut asauefectueazaanumiteoperat iiauxiliare.Procesul de compilare este un proces relativ complex si comporta operat ii careauunanumitcaracterdeautonomie. Dinacestemotiveprocesul decompilareestedeobicei descompus nmai multesubprocesesaufaze, ecarefaz aindooperat iecoerenta, cucaracteristici binedenite.Inprincipiuacestefazesuntparcursesecvent ial (pots aexistesi anumitereveniri) iarprogramul surs aestetransformatsuccesiv nformateintermediare. Sepoateconsideracaecarefaz aprimeste de la faza precedent aun sier cu programul prelucrat ntr-un mod core-spunzatorfazei respective,l prelucreaz asi furnizeazaunsier deiesire, iar asintr-un format bine precizat, sier utilizat n faza urmatoare. Exista cinci faze decompilare principale: analiza lexical a, analiza sintactic a, generarea formatului in-termediar, generarea codului, optimizarea codului si doua faze auxiliare, tratareaerorilor sitratareatabelelor(vezigura1.1).Analizalexicalaarecaobiectivprincipal determinareaunit at ilorlexicalealeunui program, furnizareacoduriloracestorasi detectareaeventualelorerori lex-icale. Pelang aacesteoperat ii debaza, laanalizalexical asemai pot efectuaanumiteoperat ii auxiliareprecum: eliminareablank-urilor(dacalimbajul per-mite utilizarea f ar a restrict ii a acestora), ignorarea comentariilor, diferite conver-siuni aleunordate(caresepotefectualaaceast afaz a), completareatabelelorcompilatorului.Analizasintactic adetermin a unit at ile sintactice ale programului (secvent edetext pentrucaresepoategeneraformat intermediar) si vericaprogramul1.4. PROBLEMACOMPILARII 21Analiza LexicalaAnaliza sintacticaGenerarea formatuluiintermediarGenerarea coduluiOptimizarea coduluiTratareaerorilorPrelucrareatabelelorProgramObiectProgramSursaFigura1.1: Fazelecompil arii22 CAPITOLUL1. LIMBAJEFORMALEdin punct de vedere sintactic. Este faza centrala a unui compilator, deseori toatecelelalte faze sunt rutine apelate de analizorul sintactic pe m asur a ce este posibil aefectuaraunei p art i din faza respectiva. Totla analiza sintactic ase denitiveaz atabeleledeinformat ii siserealizeazaprelucrareaerorilorsintactice.Fazadegenerareaformatuluiintermediarserefer alatransformareaprogra-mului ntr-oformanumit aintermediar apornindde lacare se poate, printr-oprocedur arelativsimpl a, s aseobt inaprogramul obiect. Structuraacestei fazedepindedeformatul intermediar ales decatreproiectantsi demodalitateadeimplementare;uzualsefolosesccvadruple,tripletesau sirurilepoloneze.Generareacodului esteo faz ain care serealizeazacodul obiectcorespunzatorprogramului. Practic n aceast afaz a seobt ine programul n limbajde asamblarecorespunzator programului surs a redactat ntr-un limbaj evoluat.In mod obisnuitgeneratorul de cod este constituit din rutinele generatoare de cod corespunz atoarediverselorunit at ialeformatuluiintermediar.In faza de optimizare a codului se realizeaza o anumit a mbun at at ire a coduluiobiectastfel ncatprogramulrezultats aec atmai performant(nprivint acon-sumului de timp si memorie). Cele mai tipice exemple sunt eliminareancarc arilorsiamemor arilorredundantesauoptimizareaciclurilor.FazeledePrelucrareatabelelorsi deTratareaerorilorvoratinsenumaipart ial naceastcurs. Facem nsament iuneacaprelucrareatabelelorpoates aaibaoinuent aimportantaasupraperformant elorunuicompilator, nmodspe-cial dinpunctul de vedere al timpului de execut ie (compilare) si ca tratareaerorilorareoanumit aimplicat ie neliminareaerorilorsintactice.1.5 Problemepropuse1. G asit i limbajul generatdegramaticaG=(VN, VT, S, P), preciz andtipulgramaticii(cf. clasic ariiChomsky):(a) VN= S;VT= 0, 1, 2;P= S 0S0[1S1[2S2[0.(b) VN= S;VT= a, b;P= S aSb[ab.(c) VN= S, A, B;VT= a, b, c;P = Sabc[aAbc, Ab bA, Ac Bbcc, bBBb, aB aaA[aa.(d) VN= S, A, C;VT= +, , 0, 1, . . . , 9;P= S A[ + A[ A, A AC[C, C 0[1[ . . . [9.(e) VN= S, A, B;VT= 0, 1;P= S 0S[1A, A 0B[1S[0, B 0A[1B[1.(f) VN= A,VT= a, b,S= A,P= A aA[b;1.5. PROBLEMEPROPUSE 23(g) VN= x0,VT= A, B, . . . , Z,S= x0,P= x0 x1D,x1 x2N, x2 E;(h) VN= A,VT= 0, 1, 2, S= A,P= A 0A0[1A1[2A2[;(i) VN= S, A,VT= 0, 1, . . . , 9, .,P= S A.A, A 0A[1A[ . . . [9A[0[1[ . . . [9;(j) VN= S,VT= PCR, PDAR, UDMR,P= S PCR[PDAR[UDMR;(k) VN= A, B, C,VT= 0, 1, S= A,P= A 0A[1B[1,B 0C[1A, C 0B[1C[0;(l) VN= S, A, B, C,VT= 0, 1, . . . , 9, +, ,P= S +A[ A[A, A 0A[1A[ . . . [9A[0[1[ . . . [9;(m) VN= S,VT= (, ),P= S S(S)S[;(n) VN= E, T, F,VT= (, ), i, +, , S= E,P= E E + T[T, T T F[F, F (E)[i;(o) VN= S, A, B,VT= a, b, c,P= S abc[aAbc,Ab bA, Ac Bbcc, bB Bb, aB aaA[aa;(p) VN= S, A, B, C, D, E, VT= a, P= S ACaB, Ca aaC, CB DB[E, aD Da, AD AC, aE Ea, AE ;(q) VN= S, A, B, C, D, E, VT= a, b,P= S ABC,AB aAD[bAE, DC BaC, EC BbC, Da aD, Db bD, Ea aE, Eb bE, AB , C , aB Ba, bB Bb;2. Precizat icaredintregramaticileprecedentesuntechivalente.3. G asit igramaticipentrugenerareaurm atoarelorlimbaje:(a) L = ;(b) L = ;(c) L = 0n[n N;(d) L = a, ab, aab, ba, baa.(e) L = ancbn[n 1.(f) L = w a, b, c[wcont inecc siseterminacua.(g) L = BEGIN[END[IF[WHILE[UNTIL.(h) L = w 0, 1[reprezentareabinar ape8bit iaunui ntreg .(i) L = anbn+3an+1[n 0.(j) L = w a, b, c[w ncepecua siaremaxim4litere .(k) L = aibjck[i, j, k> 0.24 CAPITOLUL1. LIMBAJEFORMALE(l) L = w 0, 1[wmultiplude8 .(m) L = constantereale nscriereaobisnuitacupunctzecimalpi.pz.(n) L = aibjaibj;(o) L = awbbw

[w, w

0, 1;(p) L = w 0, 1[wcont inemaxim2de0 ;(q) L = wa w[w 0, 1;(r) L = w[woctetcereprezint aunnum arpar ;(s) L = A, B, C, . . . , Z;4. Construit i o gramatica ce cont ine reguli de stergere, dar genereaz a un limbaj-liber.5. Folosindteoremas aseconstruiasc aogramaticaindependent adecontext,far aregulide stergerecaregenereaz alimbajuldelapunctulprecedent.Capitolul2Limbajeregulate2.1 AutomatenitesilimbajeregulateAutomatenite. Automatelenitesuntmecanismepentrurecunoasterealim-bajelordetipul 3(regulate). Unautomatnit(AF)secompunedintr-oband adeintrare siundispozitivdecomanda.Pebandadeintraresuntnregistratesimboluri aleunui alfabetdeintrare,constituindpebandauncuv antp. Laecarepasdefunct ionarebandasede-plaseazacuopozit iesprestanga.Dispozitivul decomandaposed aundispozitivdecitiredepebanda; dispoz-itivul seaapermanentntr-oanumit astareintern a, element al unei mult iminitedest ari. Schemaunuiautomatnitesteredata ngura2.1.Automatul nitfunct ioneaz a npasi discret i. Unpasdefunct ionareconst adin: dispozitivul decomandacitestedepebandadeintraresimbolul aatndreptul dispozitivului decitire; nfunct iedestareainternasi desimbolul citit,automatul trece ntr-onouastaresi mut abandacuopozit iesprestanga. Au-tomatul si nceteazafunct ionareadupaces-acititultimulsimbol nregistratpes Si1i2i3. . .ik. . .in1inBandadeintrareDispozitivdecitireDispozitivdecomandaFigura2.1: Reprezentareaschematic aaunuiautomatnit2526 CAPITOLUL2. LIMBAJEREGULATEbanda; nacestmomentel sevaaa ntr-oanumit astare, care, dupacumvomvedea,vajucaunrolimportant nrecunoastereacuvintelor.Dinpunctdevederematematic,unautomatnitesteunsistemAF= (, I, f, s0, f),undeestemult imeadestari;Iestealfabetuldeintrare;f: I T()estefunct iadeevolut ie;s0 estestareainit ial a;f estemult imeadestarinale.Dac apentruorice(s, i) I, avem [f(s, i)[ 1automatul senumestedeterminist; ncazcontrarsenumestenedeterminist.Observat ii:(1) T() este mult imeap art ilor lui ; deoarece T() este posibil capentruunanumits Ssii Isaavemf(s, i) = .(2)In cazul unui automat determinist vom scrie f(s, i) = s

(n loc de f(s, i) s

.(3) Denit iadat aestespecicateoriei limbajelor formale. Oalt adenit ie(mai general a) , nt alnit anteoriaautomatelor esteurm atoarea: unautomatnitesteunsistemAF= (, I, O, f, g, s0, F)unde,, I, f, s0, Fausemnicat iade mai sus, O este alfabetul de iesire iar g: I T(O) este funct ie de iesire.Funct ionalitateaunui astfel deautomatnitesteanaloag acuceadescrisamaisus,cudeosebireacalaecarepasautomatulfurnizeaz aoiesireo g(s, i).Funct ionareaunui automatnitsepoatebloca nsituat ia ncareel sea anstareas,citestedepebandasimbolul isi f(s, i)= ; evidentca nacestcazfunct ionarea ncontinuarenumaiesteposibil a.Prin diagrama de st ari a unui automat nit nt elegem un graf orientat care arenodurileetichetatecustariles iararceleseconstruiescastfel: noduriles, s

seunesccuunarcorientatdelaslas

dacaexist ai Iastfel ncats

f(s, i);arculrespectivvanotatcui.ExempluAF= (, I, f, s0, f)unde = s0, s1, s2,I= i1, i2,f= s2,iarfestedatadetabeluls0s1s2i1s1 s2 s0i2 s0, s1 s0, s1Diagramadest aricorespunz atoareesteprezentat a ngura2.2.Funct iadeevolut ieFunct iafseprelungestedelaIla T() Idecif: T() I T(),astfel:(a)f(s, ) = s, s ,(b)f(, i) = , i I,2.1. AUTOMATEFINITESILIMBAJEREGULATE 27

_`_`_'

`-i1i1i2s1s0s2i1, i2i1i2`Figura2.2: Diagramadest ari(c)f(Z, i) = sZ f(s, i), Z T(), Z ,= ,(d)f(Z, pi) = f(f(Z, p), i).Sa observ amc a relat iile de mai sus constituie o denit ie prin recurent a,corecta; inddat f, putemdeni mai nt ai toate valorile f(Z, i) (unnum arnit, deoarece Ieste o mult ime nit a), apoi f(Z, p) pentru [p[ = 2, n continuaref(Z, p)pentru [p[ = 3,etc.Propriet at ilefunct ieif:1. Dac aZkesteofamiliedep art ialui,avemf(_kZk, i) =_kf(Zk, i)Demonstrat ie. Utilizand(c)putemscrie_kf(Zk, i) =_k(_sZkf(s, i)) =_sZkf(s, i) = f(_kZk, i).22. f(Z, p) = sZ(f(s, p)), p I.Demonstrat ie. Prininduct ieasupralungimiiluip.Pentru [p[ = 1avemf(Z, i) = sZ f(s, i),adic a(c).Presupunem ca relat ia este adev arat a pentru [p[ = m si consideram un p astfelncat [p[ = m + 1,decip = p

i, [p

[ = m. Putemscrief(Z, p) = f(Z, p

i) = f(f(Z, p

), i) = f(

sZ f(s, p

), i) == sZ f(f(s, p

), i) = sZ f(s, p

i) = sZ f(s, p).23. f(s, pq) = f(f(s, p), q), p, q I.Demonstrat ie. Induct ieasupralungimiiluiq.Dac a [q[ = 1,atunciq= i sirelat iasereducela(d).Presupunem ca proprietatea este adev arat a pentru r si consideram [q[ = r+1.Deciq = q

i. Avem28 CAPITOLUL2. LIMBAJEREGULATEf(s, pq) = f(s, pq

i) = f(f(s, pq

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

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

i) = f(f(s, p), q).2Limbajeregulate.Denit ie2.1LimbajulrecunoscutdeautomatulnitAF= (, I, f, s0, f)esteL(AF) = p[p I, f(s0, p) f ,= Deci p L(AF) dac a automatul a andu-se n starea init ial a s0, dupa [p[ pasidefunct ionarepoates aajung a ntr-ostarenala.Incazul unui automatnit determinat limbajul recunoscut poatedenitnmodul urmator. Pentruecares denimfunct iafs: I T()prinfs(p) = f(s, p).Atuncif(s0, p) f ,= f(s0, p) = fs0(p) f,deciL(AF) = p[f(s0, p) f ,= = f1s0(f)Limbajele recunoscute de automate nite le vom numi limbaje regulate; familiaacestor limbajeovomnotacu 1. Evident, familialimbajelor recunoscutedeautomatenitedeterministe, 1d, esteopartealui 1, 1d 1. Vomar atac aceledouafamiliicoincid.Teorema2.1 1d= 1.Demonstrat ie. Fie AF= (, I, f, s0, f) un automat nit (n general nedeter-minist). Construim urmatorul automat nit determinist AF

= (

, I, f

, s0,

f)unde

= T(), f

= f(prelungirea la T()I ),

f= Z[ Z T(), Zf ,=.Evident,automatulAF

estedeterminist.Fiep L(AF). Atunci f(s0, p) f ,= si f(s0, p)

f. Pedealt aparte,conformcuproprietatea2afunct ieideevolut ie,avemf

(s0, p) = f(s0, p)sidecif(s0, p)

f,adic ap L(AF

) siL(AF) L(AF

).Peocaleanaloag asearat ac aL(AF

) L(AF).2Observat ie. Faptul c a un cuv ant este recunoscutde un automat nit se poatevericaprincalculdirectsaupediagramadest ari.Exemplu. Consider amautomatuldinexemplulanterior siep = i1i2i1. Princalculdirect:f(s0, i1i2i1) = f(f(f(s0, i1), i2), i1) = f(f(s1, i2), i1) == f(s0, s1, i1) = f(s0, i1) f(s1, i1) = s1 s2.2.1. AUTOMATEFINITESILIMBAJEREGULATE 29Astfelc af(s0, i1i2i1) f= s2 ,= sip L(AF).Pediagramadest ariexist atraiectoriile:s0i1s1i2s0i1s1;s0i1s1i2s1i1s2;Adouatraiectorieneduce ntr-ostarenala,decip L(AF).Limbajedetipultreisilimbajeregulate. Vom ar ata n cele ce urmeazaca familia limbajelor de tipul 3 coincide cu familia limbajelor regulate.In prealabilvompune nevident aoform aspecial aalimbajelordetipul3,pecareconvenimsaonumimform anormal a.Denit ie2.2Vomspunec aogramatic adetipul3este nformanormal adacaareregulidegeneraredeforma_A iB,C j,unde A, B, C VN, i, j VTsaureguladecompletareS sinacest cazSnuaparendreaptavreuneireguli.Lema2.1Oricegramatic adetipul 3admiteoformanormal a.Demonstrat ie. Dac aG=(VN, VT, S, P) este gramaticadat a, elimin amnprimul r and regulile de stergere (teorema de la ierarhia Chomsky) apoi construimgramaticaG

=(V N, VT, S, P

), undeV Nsi P

sedenescastfel: introducem nV NtoatesimboluriledinVNiar nP

toatereguliledinPcareconvin; eacumnPoregul adeformaA pB, p = i1. . . inVomintroduce nP

regulile:A i1Z1,Z1 i2Z2,. . . ,Zn1 inB,iarsimbolurileZ1, . . . Zn1leincludeminV N.In cazul unei reguli de forma A p cu [p[ > 1 proced am analog, except and ul-tima regula nou introdus a care va avea forma Zn1 in. Sa mai facem observat iacasimbolurileZ1, . . . , Zn1leluamdistinctepentruecarecaz.Sepoatearatausorc aL(G) = L(G

).2Teorema2.2Familialimbajelordetipul 3coincidecufamilialimbajelorregu-late.30 CAPITOLUL2. LIMBAJEREGULATEDemonstrat ie. ParteaI:E /3E 1.FieEunlimbajdetipul3 siG = (VN, VT, S, P)gramaticacare lgenereaz a;putempresupunecaGeste nformanormal a. ConstruimautomatulnitAF=(, I, f, s0, f)unde = VN X(Xsimbolnou),I= VT, s0= Ssif=_ X, S , pentru PX , pentru , PFunct iadeevolut ieestedenit ade:dacaA iB PluamB f(A, i),dacaC j PluamX f(C, j),nrest Observat ie. Automatulastfeldeniteste ngeneralnedeterminist. Deexemplu,dacaA 0B[0atuncif(A, 0) = B, X.Fiep L(G), p=i1. . . in, deci Sp. Detaliat, aceast aderivarevaaveaforma(1) Si1A1i1i2A2i1i2. . . in1An1i1i2. . . in.S-auaplicatregulile:(2)S i1A1,A1 i2A2,. . .An1 in.Inautomatavemcorespunz ator:(3) :A1 f(S, i1),A2 f(A1, i2),. . .X f(An1, in)Putemscrietraiectoria(4) Si1A1i2A2i3. . .inX fDecip L(AF).Dac ap =, atunci Ssi S P. Dar atunci L(AF), caciautomatul este nstareaSsi ramne naceast astaredup acitirealui ; cumnsanacest cazS frezultac asinacest cazp L(AF).Inconsecint aL(G) L(AF).Fieacump=i1. . . in L(AF); atunci avemtraiectoria(4), relat iile(3),reguliledegenerare(2) siputemscriederivarea(1),adic ap L(G) siL(AF) 2.2. PROPRIETAT ISPECIALEALELIMBAJELORREGULATE 31L(G).2ParteaIIE 1 E /3.Vom indica numai modul de construct ie a gramaticii. Fie AF= (, I, f, s0, f)automatul nitcarerecunoastelimbajul E, pecare l presupunemdeterminist.ConstruimgramaticaG = (, I, s0, P)undemult imeaPestedenit aastfelf(A, i) = Bgenereaz aregulaA iB P,nplusdacaB fsegenereazasiregulaA i P.Putemar atac aL(G) = L(AF).22.2 Proprietat ispecialealelimbajelorregulateCaracterizarealimbajelorregulate. Limbajeleregulate, indpart i dinI,se pot caracteriza algebric, independentde mecanismele de generare (gramaticiledetipul3)saudecelederecunoastere(automatelenite).Teorema2.3FieE Iunlimbaj. Urmatoarelearmat iisuntechivalente.(a)E 1;(b)Eesteoreuniunedeclasedeechivalent eauneicongruent ederangnit;(c)Urm atoareacongruent a = (p, q)[E(r1pr2) = E(r1qr2), r1, r2 I,undeEestefunct iacaracteristic aaluiE,estederangnit.Demonstrat ie: Vom ar ata urm atoarele implicat ii: (a) (b), (b) (c), (c) (a).(a) (b).Fie AF= (, I, f, s0, f) automatul nit care recunoaste limbajul E. DenimpeIrelat ia= (p, q)[f(s, p) = f(s, q), s .Se poate vedea cu usurint a c a este o relat ie de echivalent a (reexiva , simetrica, tranzitiv a).In plus, dacar Isi(p, q) , atunci (pr, qr) si(rp, rq) .Deexemplu,primaapartenent asededuceastfelf(s, pr) = f(f(s, p), r) = f(f(s, q), r) = f(s, qr), etc.Prinurmareesteorelat iedecongruent a.Saar at amc aaceast acongruent aestederangnit,adic amult imeacatI/estenit a.Fie : oaplicat ieoarecare siemult imeaI() = p[p I, f(s, p) = (s), s .32 CAPITOLUL2. LIMBAJEREGULATESaobserv amc adac aestefunct iaidenticaatunci I(). DecinutoateI()suntvide;nacestcazI()esteoclas adeechivalent a.Intr-adevar, ep I() Ixat sie Cpclasade echivalent a a lui p. Ar at am c a Cp= I().Dac aq I(), atunci f(s, q)=(s), s , ceeace nseamn ac af(s, q)=f(s, p), s , sideci(p, q) adicaq CpsiI() Cp. Inversdac aq Cpatunci f(s, q)=f(s, p)=(s), s si q I(), adic aCp I(). Aceastanseamn ac aI() = Cp,adic aI()esteoclas adeechivalent a.Intremult imeacatI/si mult imeafunct iilordenitepecuvalori nputemstabili urmatoareacorespondent abiunivoca: unei funct ii: icorespunde clasa de echivalent a I(). Invers, ind data o clas a de echivalent a C,luam p C(oarecare) si atasam lui Cfunct ia (s) = f(s, p)s . T inand contcadac aq Catunci f(s, p)=f(s, q), s , rezultac afunct ianudepindedeelementulpales.Dar mult imeafunct iilordenite pe cu valori n este nit a,deci I/estenit a,adic acongruent aestederangnit.Fieacump L(AF) siqastfelca(p, q) . Avemf(s0, q) = f(s0, p) f;adicaq L(AF). Aceastanseamn ac aodat acuelementul p, L(AF)cont ineclasadeechivalent aalui p. Deaici rezult ac aL(AF)esteconstituitdintr-unanumitnum ardeclasedeechivalent aalui.2(b)(c)Fieocongruent aderangnitsiEoreuniunedeclasedeechivalent a. Fieapoi(p, q) ;aceasta nseamn ac ar1pr2 E r1qr2 E,deciE(r1pr2) = E(r1qr2), r1, r2 I.Prinurmare, (p, q) . Orice clasade echivalent adinI/ este inclus antr-oclasadeechivalent adinI/, asancatcard(I/)< id > [ < num > [ < cc > [ < op > [ < opr >< id >l < id1 > [l, < id1 >l < id1 > [c < id1 > [l[c< num >c < num > [c< cc >if[do[else[for< op >+[ [ [/< opr >< [ [ >=,undel-litera,c-cifra.44 CAPITOLUL2. LIMBAJEREGULATEPorninddelaaceastagramaticasepoateconstrui unaechivalent a nformanormal a, apoi se extrage funct ia de evolut ie a automatului nit deterministechivalentcerecunoasteunit at ilelexicale.Descrieri echivalente ale unitat ilor lexicale cu ajutorul expresiilor regulate suntcuvinte cheie = if | do | else | foridentificatori = ( a|b|c|...z )( a|b|c|...z|0|1|...|9 )*Numar = ( 0|1|...|9 )( 0|1|...|9 )*Operatori aritmetici = + | - | * | /Operatori relationali = < | | >=Limbajul generat de gramaticaprecedent ase obt ine prinsumaexpresiilorregulate. Ment ion amc aexist aprograme specializate (Lex, Flex, JavaCC) cegenereaz aunanalizorlexical (nCsauJava)porninddelaexpresiileregulate.Sintaxafolosit anscrierea expresiilor regulate este dependenta de programulfolosit.Programareaunui analizorlexical Realizarea efectiva a unui analizor revinela simularea funct ion arii unui automat nit. Ovariant a de programare esteatasareaunei secvent edeprogramlaecarestareaautomatului. Dac astareanuestestarenal aatunci secvent acitesteurm atorul caracterdintextulsursa sig asesteurm atorul arcdindiagramadest ari. Depinz andderezultatul caut ariisetransferacontrolulalteist arisausereturneaz aesec(posibil aeroarelexicala).Dac a starea este nal a atunci se apeleaz a secvent a de returnare a codului unitat iilexicalesieventualainstalareaunitat iilexicale ntabelelecompilatorului.Pentrusimplicareaimplement ariisecautaurm atoareaunitatelexical aprinncercareasuccesivaa diagramelorcorespunz atoareec areiunitat i lexicale(ntr-oordineprestabilit a). Eroarealexicalasesemnaleaz adoar atunci c andtoatencercarilese ncheiecuesec.De obicei textul surs a cont ine si secvent e ce se pot descrie cu ajutorul expresi-ilorregulate,darcare nusuntunitat ilexicale(de exemplucomentariile). Acestesecvent e nu vor genera cod lexical, dar au asociate diverseact iuni specice. Pen-truaevitaaparit iaunor caracterenecunoscuteintextul surs aseconsider asilimbajulce constadintoate simbolurileASCII.Astfel,indiferentde unde ncepeanalizatextului,programuldeanaliz alexical ag asesteopotrivirecuodescriere.Spunemcaspecicat iaestecompleta.Exist a posibilitatea ca mai multe secvent e cu aceeasi origine sa corespund a ladiferite descrieriale unit at ilor lexicale. Se consideraunitate lexical acel mai lungsircesepotrivesteuneidescrieri(longestmatchrule). Dacasuntdou aregulicare se potrivesc la acelasi sir de lungime maxim a atunci se consider a o prioritateasupradescrierilor(rulepriority).2.6. ANALIZALEXICALA 45Deexemplu,intextulurm ator,i if if8unit at ile lexicale delimitate vor iidenticator, ifcuv ant cheie, if8identicator.Reguladeprioritateseaplicapentrupotrivirealui if cuidenticatorsi cuvantcheie,iarcriteriuldelungimemaximapentruif8.Pentrudepistareaceleimai lungi potriviri,dinpuntde vedereal program ariianalizorului, estesucientsaprevedemunpointersuplimentarpecaracterul cecorespundeultimeist arinaleatinsepeparcursulcitirii.Studiudecaz. Seconsideraproblemarealiz ariiunui analizorlexical cedelim-iteazantr-untext sursacuvintedinlimbajul cecont ineidenticatori, cuvintecheie (pentrusimplicare folosimdoar cuv antul cheie if), constante numerice(ntregi f ar asemn). Deasemeneasefacesaltpestespat iilealbesi seignor aco-mentariile. Presupunemcauncomentariu ncepecudouacaractereslashsi setermin a cu newline. Orice caracter ce nu se potriveste descrierii este semnalat casicaracterilegalintext.EtapaI.Descriemsecvent elecuajutorulexpresiilorregulateIF = "if"ID = (a|b|c|...|z)(a|b|c|...|z|0|1|...|9)*NUM = (0|1|...|9)(0|1|...|9)* = (0|1|...|9)+WS = (\n|\t|" ")+COMMENT = "//"(a|b|c|...|z|0|1|...|9|" ")*\nALL = a|b|...|z|0|...|9|\t| ... toate caracterele ASCIIEtapaII. Corespunzator expresiilor avem urm atoarele automate nite deter-ministeechivalente, prezentate ngura2.9(st arileaufostnotateprinnumerentregi):Etapa III. Se construieste sistemul tranzit ional (vezi gura 2.10) ce re-cunoaste limbajul reuniune, adaug andonouastare init ial a(notat acu1), pecareoconect amprinarcepunctate(cecorespund-tranzit iilor). Construct iaprovinedinlegareasistemelortranzit ionale nparalel. S-aurenumerotatst arilesistemuluitranzit ional,asign andnumesimbolicest arilornale.EtapaIII. Construct iaautomatului nitdeterministgeneral cerecunoastereuniunealimbajelor. Pentruaceastasistemultranzit ionalsetransform acuteo-remadeechivalent a nautomatnitdeterminist(practicsetrecedelastarialesistemuluitranzit ional la submult imi de stari, ce devin starile automatului nit).46 CAPITOLUL2. LIMBAJEREGULATE42 12 12 13 2 1a- z0- 9//\ n0- 90- 9a - z\ n\ t \ b\ n\ t \ b2 1IDNUMWSCOMERRoricea- z ,\bFigura2.9: Automatelenitecorespunz atoareexpresiilorregulateIn cazul particular al automatului nostru, diagrama de st ari este dat an gura2.11.EtapaIV.Programareaanalizoruluilexical.Automatul nit obt inut are st arile nale asociate cu clasele de cuvinte recunos-cute. Seasociazaact iunist arilornale,corespunz atordenit iilorunit at ilorlexi-cale (de exemplu pentru constante numerice se genereaz a reprezentarea interna, sememoreaz a n tabelul de constante si se returneaza codul unit at ii lexicale NUM).Pentruprogramarea analizorului sefolosesc trei variabile de tip pointerin textulsursa: FirstSymbol, CurrentSymbol, LastFinalSymbol, ceret inindicelecarac-terului de nceputal secvent ei, indicelecaracteruluice urmeazalacitire, indiceleultimului caractercecorespundeatingerii unei st ari nale. Cei trei pointeri aufostreprezentat i prin semnelegrace [, respectiv . De asemeneaconsider amovariabil aState,ceret inestareacurentaaautomatului.Intabelul 2.12esteindicat aevolut iaanalizorului lexical (inclusivact iunileasociate)pentrucazulanalizeiurmatoruluitextsurs a.if if8%// ha\nPentrusimplicareacodicarii, st arileautomatului nitdeterminist aufostredenumite prin numerentregi ncepand cu starea init ial a 1, starea 3, 6, 16 = 2,4, 6 = 3, 6, 16 = 4, s.a.m.d. de la st anga la dreapta si de sus n jos. De obicei2.6. ANALIZALEXICALA 47143 210 98 76 513 12 114i fa - z0- 9//\ n0- 90- 9a - za - z\ n\ t \b\ n\ t \ b,\b16 15IFIDNUMWSCOMERRorice1Figura2.10: Sistemultranzit ionalcerecunoastereuniunealimbajelor48 CAPITOLUL2. LIMBAJEREGULATE3,6,16 4,612,166,1610,168,1613161416ID IFfiIDIDNUMWSERR/ \ nCOMERRa- eg - z0-9a- z0-9 a- z0-9 a- z0-9a-hj - z0-9/a- z , \b\ n\ t \boricealtceva0-9\ n\ t \bFigura2.11: Automatulnitdeterministcerecunoastereuniunealimbajelor2.6. ANALIZALEXICALA 49Last Current CurrentInput AcceptActionFinal State0 1 [

i f i f8 % / / h a n2 2 [ i

f i f8 % / / h a n3 3 [ i f

i f8 % / / h a n returncc =< if>0 [ i f

i f8 % / / h a n resume0 1 i f[

i f8 % / / h a n7 7 i f[

i f8 % / / h a n0 i f[

if8 % / / h a n resume0 1 i f [

i f8 % / / h a n2 2 i f [ i

f8 % / / h a n3 3 i f [ i f

8 % / / h a n5 5 i f [ i f8

% / / h a n returnid =< if8 >0 i f [ i f8

%/ / h a n resume0 1 i f i f8[

% / / h a n11 11 i f i f8[ %

/ / h a n print(illegalcharacter: %);0 i f i f8[ %

// h a n resume0 1 i f i f8 %[

/ / h a n0 8 i f i f8 %[

// h a n0 9 i f i f8 %[

/ /h a n. . . . . . . . .Figura2.12: Evolut iaanalizoruluilexicalpentrutextulifif8%//han50 CAPITOLUL2. LIMBAJEREGULATEint edges[][] = { /* ... 0 1 2 ... e f g h i j ... *//* state 0 */ {0,0, ...,0,0,0, ...,0,0,0,0,0,0, ... },/* state 1 */ {0,0, ...,6,6,6, ...,4,4,4,4,2,4, ... },/* state 2 */ {0,0, ...,5,5,5, ...,5,3,5,5,5,5, ... },etc}Figura2.13: Reprezentareafunct ieideevolut ieaautomatuluinitfunct ia de evolut ie asociat a automatului nit determinist se memoreaza sub formaunuitabloubidimensionalde ntregi,ca ngura2.13. Starea0esteasociat acublocareaautomatului. Ajungerea naceast astareechivaleaz acug asireaultimeiunit at i lexicale, ntrepointerii [si . Seexecut aact iuneaasociatast arii nalesi sereiacautarea(resume)urm atoarei unit at i lexicalencepandcucaracterulimediaturm atorpointerului .Observat ie: Cele mai costisitoareoperat iuni (catimp) dinanalizalexical asunt ignorareacomentariilor si tratareaerorilor lexicale. Primele generatoareautomate de analizoare lexicale si sintactice au ap arut n anii 70 si au fost inclusensistemuldeoperareUnix.2.7 Problemepropuse1. Construit iautomatenitepentrurecunoasterealimbajelor:(a) L = PSDR, PNL, PUNR;(b) L = w[ siruride0 si1terminatecu1 ;(c) L = w[widenticatorPASCAL ;(d) L = w[wconstant a ntreag acusemn nPASCAL ;(e) L = w 0, 1[wmultiplude3 ;(f) L = aibj[i, j> 0;(g) L = .2. Construit i automate nite echivalente cugramaticile de tipul trei de laproblema1capitolul1.2.7. PROBLEMEPROPUSE 513. Construit i automatenitedeterministeechivalentecucelenedeterministeobt inutelaproblemaprecedent a.4. G asit igramaticiregulateechivalentecuautomateledelaproblema1.5. Folosind lemade pompare pentrulimbajeregulate dovedit i caurm atoarelelimbajenusuntregulate:(a) L = 0i2[i 1;(b) L = 02n[n 1;(c) L = 0n[nestenum arprim ;(d) L = 0m1n0m+n[m 1, n 1;6. Specicat ilimbajeledenotatedeurmatoareleexpresiiregulate:(a) (11[0)(00[1);(b) (1[01[001)([0[00);(c) 10[(0[11)01;(d) ((0[1)(0[1));(e) 01[1;(f) ((11)[101).7. Construit i sistemetranzit ionalecerecunosclimbajelespecicatelaprob-lemaprecedent a. Pentruecaresistemtranzit ionalconstruit i unautomatnitdeterministechivalent.52 CAPITOLUL2. LIMBAJEREGULATECapitolul3Limbajeindependentedecontext3.1 ArboridederivareCaracterizarealimbajelorindependentedecontextcuajutorularborilordederivare.Unadincaracteristiciledebaz aalelimbajelorindependentedecontextesteaceeac aoderivare ntr-unastfel delimbaj poatereprezentat adeunarbore,numitinacestcontextarboredederivare. Aceastareprezentareesteimportant an mod special pentru faptul c a permite o imagine intuitiv a simpl a a unei deriv arisideciposibilitateadealucrausorculimbajedetipul2.Vomprezenta nprimul r andc atevanot iuni elementaredeteoriagrafurilor,cuscopuldeaprecizanotat iile siterminologia.Ungraf orientat (esteopereche (=(V, )undeV esteomult imenit aiaroaplicat ie: V T(V ). Mult imeaV senumestemult imeav arfurilor(nodurilor)grafuluiiardac av2 (v1), perechea(v1, v2)esteunarc ngraf;v1esteorigineaiarv2esteextremitateaarcului. Spunemc av2estesuccesordirectal nodului v1, iarv1estepredecesordirectal nodului v2. Undrumdelavrfulv

lav arful v

ngraful (esteomult imedearce(v1, v2)(v2, v3) . . . (vn1, vn)cuv

= v1si v

= vn. Num arul n 1 estelungimeadrumului. Un drum pentrucarev1= vnsenumestecircuit. Uncircuitdelungime1poart anumeledebucla.Denit ie3.1Unarboreorientatsiordonatesteungraforientat (,caresatis-faceurm atoarelecondit ii:1. v0 V numitradacinaarborelui astfel nc atv0 ,(v), v V sidelacareexist aundrumlaecarealtv arfal grafului;2. v V v0,!wcuv (w); altfel spusoricev arf diferitdev0esteextremitateaunuisingurarc;3. Mult imeasuccesorilordirectiaioric aruivarfv V esteordonat a.Exemplu. V= v0, v1, v2, v3, v4iarfunct iaestedatade:x v0v1v2v3v4(x) v1, v2 v3, v2 5354 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXT

_

_v1v3v4v0v2Nivel0Nivel1Nivel2Figura3.1: Reprezentareagrac aaarborelui (= (V, )Considerandmult imileordonatedesuccesori direct i (gracordineasucceso-rilor este de la st anga spre dreapta) si sensul arcelor grafului de sus n jos, obt inemreprezentarea nplanaacestuiarboreca ngura3.1Nodurile vpentru care (v) = se numesc noduri terminale (nale); celelaltesenumescinterne. Mult imeanodurilorterminaleconstituiefrontieraarborelui.Spunem ca un nod x precede pe ydaca drumul de la r ad acin a la ytrece prin x (yeste succesoral lui x, sau yeste descendental lui x). Ordinea succesorilordirect iai unui nodinduce nmodnatural oordinepefrontieraarborelui (dacav1estepredecesor direct pentru v2 atunci orice succesor al lui v1 precede orice succesor allui v2, samd).In general vomnota un arbore cu literemari, specicandcaindicir ad acina si frontiera; n gur a /v0, v1v3v4. Un arbore comport a mai multe ramuri;nexempluavemurm atoareleramuri : v0v1, v0v2v3, v0v2v4. Unsubarborecur ad acinaxalunuiarbore /r,wseobt ineprinextragereanoduluix mpreunacutot isuccesoriis ai(deexemplu /v2, v3v4estesubarborepentru /v0, v1v3v4).FieG = (VN, VT, S, P)ogramatic adetipul2.Denit ie3.2Unarboredederivare ngramaticaGesteunarboreorientatsiordonatcuurm atoareletreipropriet at i.(1)NodurilesuntetichetatecuelementeledinVG ;(2) Daca un nod vare descendent i direct i v1, . . . , vn(n aceast a ordine) atunciv v1v2. . . vn P.(3) Daca unnod are eticheta atunci el este singurul descendent al preceden-tuluisaudirect.Exemplu. G = (A, B, a, b, A, P)undeP= A aBA[Aa[a[, B AbB[ba[abb.3.1. ARBORIDEDERIVARE 55AABa lBbba aVarianta 2AAABalB bba aAVarianta 1Figura3.2: Variantedereprezentareaarborelui /A, aabba`_`_`_`_. . .Xi1i2 in(A)Figura3.3: Arborecorespunz atoruneideriv aridirecteArborele /A, aabbareprezentatngura3.2(Varianta1) este unarboredederivare(poatedesenatcobor andfrontierapenivelulultim,Varianta2):Teorema3.1FieGogramatic adetipul 2, X VNsip VG. Atunci Xpdacasinumaidac aexist aunarbore /X, p.Demonstrat ie. Xpimplica /X, p.Procedamprininduct ieasupralungimiiderivariil.Dac al =1, Xp = i1. . . insi Xi1. . . in P. Arboreledingura3.3corespundecerint elorteoremei.Presupunemcaproprietateaesteadev arat apentruderiv ari delungimel siconsideram o derivare de lungime l +1, Xp. Punemn evident a prima derivaredirectaXX1. . . Xnp56 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXT`_`_`_`_. . .XX1X2 Xm. . .p1p2. . .pmFigura3.4: Construct iaarborelui /X,p1...pm.Conformlemei de localizare, p =p1. . . pnsi Xjpj, j =1, n. Putemfaceurmatoareaconstruct ie: conformipotezei inductive, ecarei derivari Xjpjicorespundecateunarbore /Xj,pj; dac aa=Xj VTatunci pj=a; unimapoitoatenodurileXjnnodul Xplasatlanivelul zero. Obt inemastfel unarbore/X,p1...pm= /X,p(vezigura3.4)carecorespundecerint elorteoremei.Pentruimplicat ia,/X,p Xp, se parcurge ocale invers a, f ac andoinduct ieasupranum arului denivele. Deexemplu, dacaacest num ar este2,arborele de derivare trebuie s a arate can 3.3 si deci avem X i1i2. . . in= p PsiXp,etc. 23.2 Decidabilitatesiambiguitate nfamilia /2.Decidabilitate. Problemele de decidabilitate sunt acele probleme n care se ceresadecidemdacaunanumitfaptaresaunuloc. Deobicei acesteproblemeserezolvaprinconstruireaunuialgoritmdedecizie.ExempluFiegramaticaG = (A, B, C, a, b, A, A aA[bB[C, B abA[aC, C aabA).SepoateusorvedeacaL(G) = (nuputemeliminaneterminalele).Problema: Putemdecidengeneral dac alimbajul generat deogramatic adetipul 2estevidsaunu?Teorema3.2Faptul calimbajul generat deogramatic adetipul 2estenevidestedecidabil.Demonstrat ie. Vom construi un algoritm cu ajutorul c aruia se poate decidedacalimbajulgeneratdeogramatic adetipul2estevidsaunu.3.2. DECIDABILITATESIAMBIGUITATEINFAMILIA /2. 57 Sv1= xv2= xr1p2r2p1Figura3.5:Presupunem ca limbajul nu este vid, L(G) ,= si e p L(G). Exist a arborele/S,p. Sapresupunemc a nacestarboreexist aundrumcudou anoduri interneetichetatecuacelasi simbol, v1=v2=X. Descompunemarboreleca ngur a3.5Avemp =r1p1r2; evident p2Sub(p1). Efectuamurm atoareamodica-re: scoatemsubarborele /v1,p1= /X,p1silnlocuimcusubarborele /v2,p2=/X,p2; obt inem nacestfel unarbore /S, r1p2r2(careeste ntradev arunarboredederivare). Conformcuteoremadecaracterizarealimbajelordetipul2,avemSr1p2r2 L(G). Dar arborele corespunz atornu mai cont ine perecheav1, v2denodurietichetatecuacelasisimbolX.Repet and procedeul, elimin am pe r and nodurile de pe aceleasi ramuri etichetateidentic.Innal vomobt ineunarbore /S, q, q L(G)careareproprietateac apeoriceramur anodurilesuntetichetatecusimboluri distincte. T inandcontc aoriceramur aaretoatenodurileetichetatecusimboluri neterminalecuexcept iaultimului (depefrontier a)careesteetichetatcuunsimbol terminal, rezult ac an /S, qoriceramur acont inecelmultcard(VN) + 1noduri. Darmult imeaunorastfeldearboriestenita;obt inemurmatorulalgoritmdedecizie:Construimtot i arborii cu r ad acina Ssi care au proprietatea de mai sus;dac aprintreacestiase g asesteun arbore cu frontieraconstituit anumaidin terminale,atunci L(G) ,= (evident) iardac anici unul dinacesti arbori nuaufrontieraconstituitanumaidinterminale,atunciL(G) = . 2Ambiguitate. FieGogramaticadetipul 2. OderivareS=u0 u1 . . . unncarelaecarederivaredirect asenlocuiestesimbolul neterminalcel mai dinst anga(dreapta)senumestederivareextremst ang a(dreapt a). S aobserv amc a nparticular ntr-ogramaticadetipul 3oricederivareesteextrem58 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTdreapt a(scriereadreptliniar a).Denit ie3.3Ogramatic aGdetipul 2 ncareexist auncuv antp L(G)carese poate obt ine cudou aderiv ari extremst angi (drepte) distincte, se numestegramaticaambigua. Incazcontraresteneambigua.Exemplu. GramaticaA aBA[Aa[a, B AbB[ba[abbesteambigu a.Intr-adev ar,avemAaBAaBaaAbBaaAbbaaaabbaa;AAaaBAaaBaaaabbaa.Denit ie3.4Unlimbaj este ambigudac atoate gramaticile carel genereaz asuntambigue.Incazcontrar(adic adac aexist aogramatic aneambigu acares al genereze)limbajulesteneambigu.Dac aGesteambigu asi p L(G)esteuncuvantcaresepoateobt inecudouaderivari extremst angi distincte, atunci exist aarborii /S, psi /

S, p, diferit i, darcareauaceiasirad acin a sifrontier a.Teorema3.3DacaL1si L2suntlimbajedisjuncteneambigue, atunci L1 L2esteneambigu.Demonstrat ie. FieGk=(VNk, VTk, Sk, Pk), k=1, 2dou agramatici detipul 2neambigue cu L(Gk) = Lksi e G = (VN1VN2S, VT1VT2, S, P1P2S S1[S2)gramaticacegenereazalimbajulreuniuneL(G1) L(G2).Sapresupunemprinreducerelaabsurdc aL(G)esteambigu. Atunci exist ap L(G) care se poate obt ine cudouaderiv ari extreme stangi diferite. S apresupunemcap L(G1), p ,L(G2). Atunci obt inemdou aderiv ari distinctengramaticaG(ncaredetalieremprimaderivaredirect a)(1) S GS1Gp, deci S1Gp;(2) S GS1Gp, deci S1Gp,deci si doua deriv ari extrem st angi distincte n gramatica G1. Aceasta ar nsemnacaG1esteambigu a. Contradict iecuipoteza!2Teorema3.4Limbajeledetipul 3suntneambigue.Demonstrat ie. Fie L un limbaj de tipul 3 si G gramatica care l genereaz a; e apoiAFautomatul nit care recunoaste limbajul L si AFD automatul nit echivalentdeterminist. ConstruimgramaticaG

astfel ncatL(G

) = L(AFD). ReamintimcaregulileluiG

seconstruiescastfelf(A, a) = B A aB, f(A, a) f A a.3.3. FORMENORMALEPENTRUGRAMATICIDETIPUL2 59Sa presupunem acum c a L este ambigu; atunci orice gramatic a carel genereaz a,inclusivG

,esteambigu a. Aceasta nseamn ac aexist aunp L(G

)astfel ncatSi1A1i1i2A2. . . i1. . . in1An1_ i1. . . inA

n i1. . . inA

n _p.Deciexist aregulileAn1 inA

nsi An1 inA

n, adic a nautomatulAFDavemf(An1, in) = A

n, f(An1, in) = A

n,ceeacecontrazicefaptulcaAFdestedeterminist.23.3 Formenormalepentrugramaticidetipul2FormanormalaChomsky.Denit ie3.5O gramatic a n forma normal a Chomsky este o gramatic a cu regulideformaA BC,D i,undeA, B, C, D VNsi i VT. Seaccept asi reguladecompletareS cucondit iacaSsanuapar a ndreaptavreuneireguli.Lema3.1(lema substitut iei). Fie G o gramatic a de tipul 2 si X uY vprecumsiY p1. . . pntoatereguliledinGcareauYnst anga. AtunciGesteechiva-lentacuogramatic aG

ncareamf acutsubstitut iile;adic afacemurm atoareanlocuireX uY vse nlocuiestecuX up1v[ . . . [upnv(RegulileY p1[ . . . [pnlevompastraneschimbate).Demonstrat ie. Fiep L(G) siSp. Punem nevident adoipasiconsecutivioarecare:G : Srst p.Dac anrs se utilizeazaregulaXuY v atunci nmodnecesarnpasulurmatorseutilizeazaunadinregulileYp1[ . . . [pn, sapresupunemYpj(evident,esteposibilcaaceast aregul as anuseaplice npasulimediaturm ator,dareapoateadus a naceast apozit ie). Prinurmare(A) G : r = r

Xr

r

uY vr

r

upjvr

= t.Acestidoipasisepotobt ine si nG

(ntr-unsingurpas):(B) G

: r = r

Xr

r

upjr

= t.60 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTDeciSG

p, p L(G

) siL(G) L(G

).Invers,daca p L(G

) si SG

p, atunci dac a la un pas se utilizeazao regul anouintrodus a(pasul (B)), transformarearespectivasepoateobt inesi nGcudoipasi(pasii(A));decip L(G) siL(G

) L(G).2Corolar3.5Orice gramatic a de tipul 2 este echivalent a cu o gramatic a de acelasitip n care mult imea de reguli nu cont ine redenumiri. (O redenumire este o regul adeformaA B, A, B VN).Intr-adevar,dac aA B PesteoredenumiresiB p1[ . . . [pnsunttoateregulilecareauB nst anga,efectu amsubstitut iile,deci nlocuimregulaA BcuA p1[ . . . [pn.Incazulncareprintreacesteaapareonou aredenumire,repet amprocedeul.2Exemplu. Gramatica GE care genereaz a expresii aritmetice E E+T[T, T T F[F, F (E)[isepoatepunesuburmatoareaform a(f ar aredenumiri):E E + T[T F[(E)[iT T F[(E)[iF (E)[iTeorema3.6(teoremaluiChomsky deexistent aaformei normale). Oricegra-matica independent a de context este echivalent a cu o gramatic a n forma normal aChomsky. ema2Demonstrat ie. Putem porni de la o gramatic a Gcare nu are redenumire si ale c areireguli cuterminaleauformaA i, A VN, i VT. DeasemeneapresupunemcaGnuareregulide stergere.Rezult ac aregulileluiGauunadinformele:(1) A BC,(2) D i,(3) X X1. . . Xn, n > 2.Construim o gramatica G

= (V N, VT, S, P

) unde VN V

Nsi P

cont ine toatereguliledinPdeforma(1) si(2). Fiecareregul adeforma(3)o nlocuimcu:X X1Z1,Z1 X2Z2,. . .Zn2 Xn1XnsiincludemneterminaleleZ1, . . . , Zn2(altelepentruecareregul adeforma(3)nV

N.Se poate relativ usor ar ata c a L(G) = L(G

). De exemplu, dac a uv(direct)n G si de aplica o regul a de forma (1) sau (2), atunci evident derivarea respectiv asepoateobt ine si nG

; ncazul ncareseaplicaoregul adeforma(3),avem3.3. FORMENORMALEPENTRUGRAMATICIDETIPUL2 61G : u = u

Xu

u

X1. . . Xnu

= v.Aceastaderivaresepoateobt ine si nG

nmaimult ipasi sianumeG

: u = u

Xu

u

X1Z1u

u

X1X2Z2u

. . . u

X1. . . Xnu

= v.2Observat ie. Ogramatic acearereguli deformaA BC, A B, A aundeA, B, C VNsia VTspunemcaeste nforma2canonic a. Esteevidentcaoricegramatic adetip2esteechivalentacuogramatic a nforma2canonic a.Gramatici recursiveDenit ie3.6Unsimbol neterminal Xaluneigramaticidetipul2esterecursivdacaexistaoregul adeformaX uXv, u, v VG.Dac au = (v= )simbolulXestest ang(drept)recursiv. Ogramatic acearecel put inunsimbol recursivsenumesterecursiva. Deexemplu, gramaticaGEcaregenereaz aexpresiilearitmeticearedouasimbolurist angrecursive,EsiT.Existent a simbolurilor stang recursive poate provoca dicult at i n aplicarea al-goritmilor de analiz a top-down.Intr-adevar, ntr-o astfel de gramatica, ncercareadeaconstrui arboreledederivarecorespunz ator unui cuvant pprinaplicareantotdeauna a primei reguli pentru simbolul cel mai din stanga, poate s a conduc alauncicluinnit(deexemplu nGEs-arobt ineEE + TE + T+ T. . .).Teorema3.7Oricelimbaj detipul 2poatesaegenerat deogramatic afar arecursiest ang a.Demonstrat ie. FieG=(VN, VT, S, P)ogramatic adetipul2; presupunemc aGareunsingursimbolrecursivXsie(A) X u1[u2[ . . . [un[Xv1[ . . . [XvmtoateregulilecareauXnst anga. ConstruimgramaticaG

=(V

N, VT, S, P

),undeVN V N, P P

cuexcept iaregulilor(A);acestease nlocuiesccuX u1[u2[ . . . [un[u1Y [u2Y [ . . . [unY,Y v1[ . . . [vm[v1Y [ . . . [vmYG

estedetipul2si nuaresimboluri stangrecursive; sevede nsac aY esteunsimboldreptrecursiv.Fiep L(G), SGp. Dac anaceast aderivarenuintervinesimbolul re-cursiv, atunci evidentcaSG

p. SapresupunemcaXintervinelaunanumitpas: Sup, unde u = u

Xu

. Putemaplica, ncepand de la u spre dreapta, nprimulr andregulilepentruXsisaurm arimnumaisubarborelerespectiv,deci62 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTG : X GXvj1 GXvj2vj1 G. . . GXvjs . . . vj1 Gujvjs . . . vj1.Aceeasiform apropozit ional aoputemobt ine si ngramaticaG

astfelG

: X G

ujYG

ujvjsYG

. . . G

ujvjs . . . vj1.PrinurmareavemS G

u G

p,adic ap L(G

)siL(G) L(G

). Analog,L(G

) L(G).2FormanormalaGreibach.Denit ie3.7O gramatic a n forma normal a Greibach este o gramatic a cu regulideformaA ip, unde A VN, i VTp V N.Se accept a si regulade completare S cu condit iaca Ssa nu apar a n dreaptavreuneireguli.Teorema3.8(Teoremadeexistent aaformei normaleGreibach). Oricegra-maticadetipul 2esteechivalentacuogramatic a nformanormal aGreibach.Demonstrat ie. FieGogramaticadetipul 2 nformanormalaChomskysi eVN= S =X1, X2, . . . , Xn. Vomconstrui ogramatic aechivalent a care s asatisfac acerint eledinformanormalaGreibach nmaimulteetape.EtapaI. Vom modica regulile de generare astfel ncat toate regulile care nu suntdeformaX isasatisfac acondit iaXj Xkp, j 2plusregulicuparteast ang aneterminalenoi.Infelulacestatoateregulilecareau nst angaX1siX2satisfaccondit iacerut a; ncontinuarej:= j + 1 = 3,etc.EtapaII.Avemacumtreicategoriidereguli:(1)Xj i;(2)Xj Xkp, j< k, p VN;(3)Y iq, q VN, i = 1, . . . , m.Aranj am toate neterminalelentr-un sir unic, lanceput Y1, . . . , Ym apoi X1, . . . , Xnsileredenumim,deexemplucuX1, . . . , Xm+n:Y1, Y2, . . ., Ym, X1, X2, . . ., XnX1, X2, . . ., Xm, Xm+1, Xm+2, . . ., Xm+nVomnotan + m=N.Infelul acestaregulilegramaticii vor aveanumaiformele(1) si(2).Etapa III. Toate regulile care auXNnst anga vor avea forma (1). FieXn1 XNp1[ . . . [XNpntoateregulilecareauXN1nst angasi carenusuntdeforma(1). Efecuamsubstitut iilelui XN;nacestfel regulilecareauXNsiXN1nst angasatisfaccerint eledinformanormalaGreibach.Incontinuare,consideramtoate regulile care au XN2 n st anga siefectuamsubstitut iile,etc.2Formanormalaoperator.FormanormalaoperatorUnadinformeleimportantepentrugramatici independentedecontext, uti-lizat a n analiza sintactic a prin metoda precedent ei, este forma operator a acestorgramatici.Denit ie3.8Ogramatic a independent a de context G = (VN, VT, S, P) se spunec aeste nformanormal aoperatordac aoricarearproduct iaA P, nnuapardou aneterminale(variabile)consecutive,adic aP VN [(VN VT) (VN VT)V2(VN VT)].Teorema3.9Orice gramatic a independent a de context este echivalent a cu o gra-matica nformanormal aoperator.Demonstrat ie. FieG=(VN, VT, S, P)ogramatic adetipul 2si L(G)limbajulgenerat. F ar aarestr ange generalitateapresupunemc a ,L(G) si Gestenforma2canonic a(regulilesunt deformaA BC, A B, A aveziteorema??). Denimogramatic aechivalent aG

=(V N, VT, S, P

)astfel: V

N=64 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTS (VN VT),iarP

= P1 P2 P3 P4undei) P1= S (S, a)a[ a VT;ii) P2= (A, a) [ A VN, a VT, A a P;iii) P3= (A, a) (B, a)[ A, B VN, a VT, A B P;iv) P4= (A, a) (B, b)b(C, a)[ A, B, C VN, a, b VT, A BC P.Saobserv amc aG

estenformanormalaoperator. Pentruademonstra c aL(G) = L(G

)vomdenimai nt aiofunct ie : P2 P3 P4 Pastfel:((A, a) ) = A a pentru (A, a) P2;((A, a) (B, a)) = A Bpentru (A, a) (B, a) P3;((A, a) (B, b)b(C, a)) = A BC pentru (A, a) (B, b)b(C, a) P4.Funct ia se extinde n mod natural la

: (P2P3P4) P. Vom ar ata c angramaticaG, w VT,a VTarelocderivareaextremdreapt aAGwafolosindproduct iile 1, 2, . . . , ndacasi numai dac aexist anP

product iile

1,

2, . . . ,

nastfel ca(

i)=i, 1 i nsi nG

arelocderivareaextremdreapt a(A, a)G

wfolosindproduct iile

1,

2, . . . ,

n.Sademonstr amarmat iaprininduct iedupan,lungimeaderivarii.Dac an=1atunci w=, A a Psi nP

exist aproduct ia(A, a) ,deci(A, a) si((A, a) ) = A a.Invers, daca(A, a)w nG

atunci w=(dupaformaproduct iilordinG

)siarelocproprietateaenunt at a.Sa presupunem armat ia adev arat a pentru deriv ari de lungime cel mult n1si saodemonstr ampentruderiv ari delungimen>1. Fieasadar AGwaoderivaredelungime nngramaticaGsi punemnevident aprimaderivaredirecta. Distingemdou acazuri:I.Primaproduct ieutilizat a nderivareesteA B. Atunci,A GBGwasi conform ipotezei inductive avemn G

o derivare (B, a)G

w (de lungine n1)cuproduct ii satisfac andcondit iilearatate. DarcumA B P, nP

avemproduct ia(A, a) (B, a)deci(A, a)G

w ngramaticaG

.II.Primaproduct ieestedeformaA BC. AtunciA GBCGwa.3.4. AUTOMATEPUSH-DOWN(APD) 65Inacest caz wa =ubva(conformlemei de localizare), astfel c a BGub siCGva. Dup aipotezainductiva,vomavea nG

derivarile:(B, b)G

u, (C, a)G

v.CumA BC PvomaveanP

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

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

(B, b)bvG

ubv= wsiproduct iilecares-auaplicat ndeplinesccondit iiledinenunt .Inmodanalogsedemonstreaz areciproca.Dinaceast aarmat ie,luand nparticularA = S,obt inem:SGwa (S, a)G

w, w VT, a VT.Cum nG

exist asiproduct iaS (S, a)a,amg asit: wa L(G)dac asinumaiwa L(G

),deciceledou agramaticisuntechivalente.Pentru ancheia demonstrat ia trebuie s a consider amsi cazul L(G).Aplicam construct ia de mai sus unei gramatici ce genereaza L(G) si obt inemG

= (V N, VT, S, P

) gramatica operator corespunz atoare. Consideramacum gra-maticaG1= (VN1, VT, S1, P1)undeV1= V S1,P1= P

S1 , S1 Scareeste nformanormalaoperator siL(G1) = L(G).23.4 Automatepush-down(APD)Automatele push-down sunt mecanisme pentru recunoasterea limbajelor indepen-dentedecontext.UnAPDsecompunedin(vezigura3.6):1. O band a de intrare care cont ine simboluri ale unui alfabet de intrare; acestesimboluri constituie pe o band a un anumit cuv ant peste alfabetul de intrare.Bandasemiscanumaisprestanga;2. Omemoriepush-down (memorieinvers a,stiv a,pil a,etc)carecont inesim-boluri ale unui alfabet propriu, numit alfabetul memoriei push-down. Aceastamemoriefunct ioneaz acaostiv a- ultimulintrodus,primulextras(LastIn,FirstOut);3. Undispozitivdecomandacaresea apermanent ntr-oanumit astarein-tern aapart inandunei mult imi nite de st ari. Dispozitivul de comandaposed aundispozitivdecitiredepebandadeintraresi undispozitivdescriere-citire nmemoriapush-down.66 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTs i1i2i3. . .ik. . .in1inz0z1...zmqpFigura3.6: Reprezentareschematic aaunuiautomatpush-downCasi unautomatnit, unautomatpush-downfunct ioneaz a npasidiscret i;unpasdefunct ionarecomport a:1. Dispozitivul de comad a citeste simbolul de pe banda de intrare din dreptuldispozitivuluidecitire simut abandacuopozit iesprestanga.2.Infunct ie de stareainterna, de simbolul citit si de simbolul dinvarfulmemorieipush-downdispozitivuldecomandaefectueazaoperat iile:(a)Trece ntr-onouastare;(b) Scrie n memoria push-down un anumit cuv ant peste alfabetul memorieipush-down;nparticular, acestapoates aecuv antul vid, ceeacearecaefectstergereasimboluluidinvarfulmemorieipush-down.Funct ionareaunuiAPDsetermina ngeneraldupaces-acititultimulsimbolalcuvantuluiscris pe banda de intrare dar este posibil ca el sa efectuezeun anumitnum ardepasi,citinddeecaredat adepebandacuv antulvid. Deasemenea,esteposibilca ntimpulfunct ion arii,deci naintedeaajungelaultimulsimbol,automatul s ase blocheze. De exemplu, automatul ajungentr-ocongurat ie(stare,simbolpebanda,simbol nv arfulmemorieipush-down)inadmisibil asausegolestememoriapush-downdarnus-aepuizatcuvantuldepeband a,etc.Matematic,unAPDsedenesteastfel:Denit ie3.9Unautomatpush-downesteunsistemAPD = (, I, Z, f, s0, z0)unde:estemult imeadest ari(nit asinevid a);Iestealfabetul deintare;Zestealfabetul memorieipush-down;3.4. AUTOMATEPUSH-DOWN(APD) 67f: (I ) Z T( Z)estefunct iadeevolut ie;s0 estestareainit ial a;z0 Zestesimbolulinit ialal memorieipush-down.Un APD aren general o funct ioanre nedeterminist a, card f(s, i, z) 1; mult imeaautomatelorpush-downdeterministeformeazaoclas aspecial a.In termenii funct iei de evolut ie, un pas de evolut ie comport a citirea simboluluii de pe banda, citirea simbolului z din v arful memoriei push-down, apoi, n funct iede starea interna s si de aceste doua simboluri, automatul trece ntr-o noua stares

siscrie n memoriapush-downun cuvantq Zastfel ncat(s

, q) f(s, i, z).In cazul n care f(s, i, z) = evolut ia esteoprit a; estesituat ia n care automatulseblocheza.Ostareaautomatului (saucongurat ie) esteunsistem =(s, p, q) undes Sestestareainterna,p Iestesubcuv antuldepebandadeintrarer amasdecitit(inclusivsimbolul dindreptul dispozitivului decitire), iarq Zestesubcuvantuldinmemoriapush-down.VomspunecaunAPDtrecedirectdinstarea1=(s1, p1, q1) nstarea2=(s2, p2, q2)si vomscrie12dacaseexecut aunpasdeevolut ie; dacap1=ip

1, q1=zq

1putemavea(s2, q) f(s1, i, z) si atunci p2=p

1, q2=qq

1sau(s2, q) f(s1, , z) siatuncip2= p1, q2= qq

1.Vomspunecaautomatul evolueaz a(f ar aspecicat iadirect)dinstarea

nstare

sivomscrie

daca:(1)

=

;(2) 1, . . . , nastfel ncat

= 12. . . n1n=

.LimbajulrecunoscutdeunAPDsepoatedeni ndouamoduri:(1) Limbajul recunoscut deunAPDcugolireamemoriei push-down, este,prindenit ieL(APD) = p[p I(s0, p, z0)(s, , ).Aceatanseamn ac a, porninddinstareaintern as0si av andnv arful memo-riei push-downsimbolul z0, cuajutorul cuvantului pde pe bandade intrare,automatul poates aevoluezeastfel ncats agoleasc amemoriapush-downdupacitireacuvantului. Ment ion amc agolireamemoriei push-downnutrebuienea-parats acoincid acucitireaultimului simbol al lui p; esteposibil caautomatulsamaiefectuezecat ivapasicitinddepebandasimbolul.(2) Limbajul recunoscut de un APD cu st ari nale; n denit ia automatului seadaug aosubmult imefaluinumitamult imeadestarinale. Prindenit ie,limbajulrecunoscutdeunAPDcust arinaleeste:L(APD) = p[p I(s0, p, z0)(s, , q), s f, q Z.Prinurmare, estenecesarcadupacitirealui p, eventual dupa ncac at ivapasi,APDsaajung a ntr-ostarenala. Vomvedeac aceledou adenit iisuntechiva-lente.68 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTLimbajerecunoscutedeautomatepush-downcugolireamemoriei. Vomar ata c a familia limbajelor recunoscute de APD cu stari nale coincide cu familialimbajelorindependentedecontext.Infelul acesta, APDconstituiemecanismeanaliticededenirealimbajelordetipul2.Teorema3.10Unlimbajesteindependentdecontextdac asinumai dac aesterecunoscutdeunautomatpushdowncugolireamemorieipushdown.Demonstrat ie. ParteaIE /2E= L(APD).Fie G = (VN, VT, S, P) o gramatic a de tipul 2 n forma normala Greibach caregenereaz alimbajulE. Construimunautomatpushdownastfel:APD = (s, VT, VN, f, s, S),funct iadeevolut ieinddenit ade:A ip P (s, p) f(s, i, A),altfel .Fiep L(G), p=i1. . . in, SGp. Aceastaderivaretrebuies aaib aforma(extremst ang a):(A) Si1X1u1i1i2X2u2u1i1i2i3X3u3u2u1. . . i1. . . in,undeu1, u2, u3, . . . VN= Z.Observat ie. Aparent, parteausus1. . . u1semarestecuecarederivaredi-recta.Inrealitate, uneledincuvintele ujsunt vide, si anumeatunci c andseaplicaoregul adeformaXi; nparticular,nultimelederivari directeseaplicanumairegulideaceast aform a.AvemS i1X1u1 (s, X1u1) f(s, i1, S),X1 i2X2u2 (s, X2u2) f(s, i2, X1),X2 i3X3u3 (s, X3u3) f(s, i3, X2),. . ..Prinurmareautomatulpoates aaib aurm atoareaevolut ie:(s, i1i2i3i4. . . in, S)(s, i2i3i4. . . in, X1u1)(s, i3i4. . . in, X2u2u1)(s, i4. . . in, X3u3u2u1). . . .Dac a compar am aceast a evolut ie cu derivarea (A) putem observa c a pe bandade intrare avem la ecare pas partea complementar a a cuv antului (fat a de derivare)iarn memoria push-down se reproduce partea de neterminale din formele propozit ionalealederivarii. Cum nderivareseajungelai1. . . in, nevolut iesevaajungela(s, , ).Decip L(APD) siL(G) L(APD).3.4. AUTOMATEPUSH-DOWN(APD) 69Fieacump L(APD); vatrebui s aar at amc ap L(G), deci caSGp.Vomar ataoimplicat iecevamaigeneral a, sianume,pentruoriceu V N,avem(s, p, u)(s, , )uGp.Inparticular,dacau = Sobt inemimplicat iadorit a.Procedamprininduct ieasupralungimiiluip.Dac a [p[ =1, atunci p =i, u =Xiar evolut ia va avea un singur pas(s, i, X)(s, , ), deci (s, ) f(s, i, X)si Xi P. Putemscrieu=X Gi = p.Presupunemcaimplicat iaesteadev arat apentruuncuvant [p[ =l si con-sideramunpastfel ncat [p[ =l + 1. Fieisi Xprimelesimboluri dinpsi u,decip = ip

si u = Xu

.In evolut ia (s, p, u)(s, , ) punem n evident aprimaevolut iedirecta(s, p, u) = (s, ip

, Xu

)(s, p

, vu

)(s, , ).Dindenit iaevolut ieidirecterezultac a(s, v) f(s, i, X)deciX iv P. Pedealtapartedinipotezainductivarezult ac avu

Gp

. Avemu = Xu

Givu

Gip

= p,ceeacedemonstreazaimplicat ia.Prinurmarep L(G) siL(APD) L(G),deundeL(G) = L(APD).2ParteaII.E= L(APD) E /2FieAPD=(, I, Z, f, s0, z0). ConstruimGdeformaG=(VN, VT, S, P)undeVN= s0 (s, z, s

)[s, s

, z Z, VT=I, S=s0, iarreguliledegenerareledenimastfel:(1)s0 (s0, z0, s), s ;(2)Dac a(s1, z1. . . zm) f(s, i, z)vomintroduce nPregulideforma(s, z, s

) i(s1, z1, s2)(s2, z2, s3) . . . (sm, zm, s

),undes

, s2, . . . , sm ;(3)Dac a(s

, ) f(s, i, z)vomintroduce nPregulideforma(s, z, s

) i,undes

.Saobserv amc agramaticaastfel construitaesteindependentadecontext, sianume nformanormalaGreibach.70 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTFiep L(APD),deci(s0, p, z0)(s

, , );trebuies aar at amc as0Gp.Vomar ataimplicat iacevamaigeneral a(s, p, z)(s

, , ) (s, z, s

)Gp.In particular pentru s = s0, z= z0 rezulta (s0, z0, s

)Gp si putem scrie s0(s0, z0, s

)Gp,adicap L(G).Procedamprininduct ieasupralungimiievolut ieil.Dac al =1atunci (s, p, z)(s

, , ), deci p =i si (s

, ) f(s, i, z) si(s, z, s

) iesteoregul a,adic aputemscrie(s, z, s

)i = p.Presupunemca implicat ia este adev arat a pentru evolut ii de lungime oarecarel si consideramoevolut iedelungimel + 1; punem nevident aprimaevolut iedirecta(s, p, z) = (s, i1p

, z)(s1, p

, z1. . . zm)(s

, , ).Descompunemcuvantulp

nformap

= p1. . . pmastfel ncat(s1, p1, z1) (s2, , ),(s2, p2, z2) (s3, , ),. . .(sm, pm, zm) (s

, , ).Observat ie. Putem punen evident a felul n care se deneste cuvantul p1 urmarindevolut ialuiAPD;(s1, i1i2. . . in, z1z2. . . zm) (s

1, i2i3. . . in, qz2. . . zm) (a) (b). . . (s2, ij1 . . . in, z2. . . zm)(c)Laprimul pas(situat iaa)automatul este nstareas1, pebandaestei1iar nmemoria push-down este z1. Dup a efectuarea unui pas, automatul trece n stareas

1,mut abandacuopozit iesprestanga,extragepez1siscrie nmemoriapush-downuncuvantq(situat iab). Sepoateobservac az2acobor at;cum stimcamemoria push-down se goleste (p L(APD)), trebuie ca la un moment dat z2saajung a nv arful stivei (situat iac).Inacestmomentparteadinpcitit avap1iarstarea ncareaajunsautomatulonot amcus2. Esteclarcadac apebandaamaveascrisnumaip1amaveaevolut ia(s1, p1, z1)(s2, , ).Analogp2, . . . , pm.Dindenit iaderiv ariidirecte(s, i1p

, z)(s1, p

, z1. . . zm)avem(s1, z1. . . zm) f(s, i1, z)iar nPvaexistaregula3.4. AUTOMATEPUSH-DOWN(APD) 71(s, z, s

) i1(s1, z1, s2)(s2, z2, s3) . . . (sm, zm, s

)undeluamst ariles2, . . . , smcelerezultateladescompunerealui p

. Pedealt aparte,dinipotezainductiva,avem(s1, z1, s2) p1,(s2, z2, s3) p2,. . .(sm, zm, s

) pm.Putemscriederivarea(s, z, s

)i1(s1, z1, s2)(s2, z2, s3) . . . (sm, zm, s

) i1p1. . . pm= i1p

= p.Dup acumamv azut,rezult amaidepartep L(G) siL(APD) L(G).Pentruademonstraincluziuneainvers a,vomar atamai nt aiimplicat ia(s, z, s

) p(s1, z1s2) . . . (sm, zm, s

)implic a(s, p, z)(s1, , z1. . . zm).Procedamprininduct ieasupralungimiiderivariil.Dac al = 1atuncip = i siseaplicaregula(s, z, s

) i(s1, z1, s2) . . . (sm, zm, s

)deci(s1, z1. . . zm) f(s, i, z) si(s, i, z)(s1, , z1. . . zm).Presupunemcaimplicat iaesteadev arat apentrul oarecaresi consideramoderivaredelungimel + 1. Fiep = p

i sipunem nevident aultimulpas.(s, z, s

) p

(s

j1, z

j1, s

j)(sj, zj, sj+1) . . . (sm, zm, s

)p

i(s1, z1, s2) . . . (sj1, zj1, sj)(sj, zj, sj+1) . . . (sm, zm, s

),undes

j= sj;laultimulpass-aaplicatregula(s

j1, z

j1, sj) i(s1, z1, s2) . . . (sj1, zj1, sj).Rezult a(s1, z1. . . zj1) f(s

j1, i, z

j1) siputemscrieevolut ia(s

j1, i, z

j1)(s1, , z1. . . zj1).Pedealt aparte,conformipotezeiinductive,avem(s, p

, z)(s

j1, , z

j1zj . . . zm)Prinurmare(s, p, z) = (s, p

i, z)(s

j1, i, z

j1zj . . . zm)(s1, , z1. . . zm)siimplicat iaestedemonstrat a.72 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTFieacump L(G), deci s0Gp. T inandseamadeformaregulilordinG,naceast aderivaresevaaplicaprimadat aoregul adeforma(1),apoi reguladeforma (2) iar la sfarsit reguli de forma (3). La aplicarea regulilor (2) putem rescrielaecarepassimbolulneterminalcelmaidinst anga,decis aobt inemoderivareextremstang a. S aobserv amc anacest cazstructuraformelor propozit ionaleintermediareesteceament ionat a,p(s1, z1, s2)(s2, z2, s3) . . . (sm, zm, s

).Prinurmare,derivareavaaveaformas0(s0, z0, s

) p(s1, z1, s2) . . . (sm, zm, s

) p.Trebuiesaavemregulile(sj, zj, sj+1) , j=1, . . . , m, sm+1=s

si putemscrie(s0, p, z0)(s1, , z1. . . zm)(s2, , z2. . . zm). . . (s

, , )adicap L(APD) siL(G) L(APD).2Automatepushdowncustarinale. Vom nota un automat push-downcustarinalecuAPDf.Teorema3.11Unlimbaj este recunoscut de unautomatpushdown daca si nu-maidac aesterecunoscutdeunautomatpushdowncustarinale.Demonstrat ie. ParteaIE= l(APD)E L(APDf).Dac aAPD=(, I, Z, f, s0, z0) construimunautomat pushdowncustarinaleastfelAPDf= ( s

0, sf, I, Z z

0, f

, s

0, z

0)undemult imeadestarinaleeste siarfunct iadeevolut ieestedenit ade:f

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

(s

0, , z

0) = (s0, z0z

0);f(s, , z

0) = (sf, ), s ;nrest .Fiep L(APD); atunci (s0, p, z0)(s, , ). Evidentcaaceiasi evolut ieopoate avea si