lftc

Upload: max-ciceu

Post on 14-Jul-2015

191 views

Category:

Documents


2 download

TRANSCRIPT

Limbaje Formale si Tehnici de CompilareDraganMirceaApril19,20061PREFATAMaterialul prezentat constituienoteledecurs t inutestudent ilor dinprimiidoi ani laSect iaInformaticaaFacult at ii deMatematicasi InformaticadelaUniversitateadeVestTimisoara.Inprimul capitol, Introduceresetrecnrevistanot iunilefundamentaledinteorialimbajelorformale siseprezint aproblemageneralaacompilarii.Capitolul al doilea, Limbajeregulatesi analizalexicala, prezint achestiunileteoreticefundamentaleprivindteoriaautomatelor siechivalent aculimbajeledetipul trei, proprietat i speciale si mecanisme echivalente cu automatele nite. Suntprezentate de asemenea si principiile analizei lexicale, nalizate cu realizarea unuianalizorlexical.Capitolul al treilea, Limbajeindependentedecontext estededicatstudiuluiteoretic al mecanismelor de generaresi de recunoastere alimbajelor de tipuldoi. Suntprezentateformelenormalealegramaticilorindependentedecontextsicatevaproprietat ispeciale.Capitolul patru, Analizasintacticaestededicatprezent arii principiilorgen-erale deanaliza sintactica siaalgoritmilorspecializat ideanaliza. Pentruecaretipdealgoritmanalizats-auconsideratexemplepracticedeaplicare.Capitolul al cincilea, Sinteza programelor trateaza formele intermediare uzualepentrutraducereaprogramelor si generareacodului obiect pornindde lafor-matul intermediar. Pentru cazul expresiilor aritmetice sunt prezentat i si algoritmidirect i degenerareaaformatului intermediar, mpreun acuproceduri standarddeoptimizareacoduluigenerat.Ultimul capitol, MasinaTuringprezintasuccint mecanismul formal cede-nestemodeluldecalculabilitate.Lasfarsitul ecarui capitol suntdatecatevaexercit ii (nerezolvate), aplicat iidirecte la chestiunile teoretice prezentate. Acestea pot parcurse n cadrul orelordeseminar silaborator.In expunerea algoritmilor s-a folosit un limbaj mai put in rigid, fara prea multereguli stricte.In general s-a urmarit descrierea cat mai simpla a structurilor careapar ntext.2Cuprins1 Introducere 51.1 Limbajeformale. . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 GramaticigenerativedetipChomsky. . . . . . . . . . . . . . . . 81.3 IerarhiaChomsky. . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4 Traducereaprogramelor . . . . . . . . . . . . . . . . . . . . . . . 171.5 Problemepropuse. . . . . . . . . . . . . . . . . . . . . . . . . . . 202 LimbajeRegulatesiAnalizaLexicala 232.1 Automatenite silimbajeregulate . . . . . . . . . . . . . . . . . 232.2 Proprietat ispecialealelimbajelorregulate . . . . . . . . . . . . . 292.3 Expresiiregulate sisistemetranzit ionale . . . . . . . . . . . . . . 342.4 Analizalexicala . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.5 Problemepropuse. . . . . . . . . . . . . . . . . . . . . . . . . . . 483 LimbajeIndependentedeContext 513.1 Arboridederivare . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2 Ambiguitate nfamilia /2. . . . . . . . . . . . . . . . . . . . . . . 543.3 Formenormalepentrugramaticidetipul2 . . . . . . . . . . . . . 563.4 LemaBarHillel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.5 Automatepush-down(APD) . . . . . . . . . . . . . . . . . . . . . 653.6 Automatepushdowndeterministe . . . . . . . . . . . . . . . . . 733.7 Problemepropuse. . . . . . . . . . . . . . . . . . . . . . . . . . . 764 AnalizaSintactica 794.1 AlgoritmiTOP-DOWN . . . . . . . . . . . . . . . . . . . . . . . . 804.1.1 Algoritmulgeneraldeanalizatop-down. . . . . . . . . . . 804.1.2 Analizatop-downfar areveniri . . . . . . . . . . . . . . . . 814.1.3 Programareaunuianalizorsintactic. Studiudecaz . . . . 844.2 AlgoritmiBOTTOM-UP. . . . . . . . . . . . . . . . . . . . . . . 904.2.1 Gramaticicuprecedent asimpla . . . . . . . . . . . . . . . 904.2.2 Relat iideprecedent a . . . . . . . . . . . . . . . . . . . . . 924.2.3 Proprietat ialegramaticilorcuprecedent asimpla . . . . . 9334 CUPRINS4.2.4 Determinarearelat iilordeprecedent apentrugramaticicuprecedent asimpla. . . . . . . . . . . . . . . . . . . . . . . 954.2.5 Studiudecaz . . . . . . . . . . . . . . . . . . . . . . . . . 954.2.6 Gramaticioperatoriale . . . . . . . . . . . . . . . . . . . . 974.2.7 Gramaticioperatoriale . . . . . . . . . . . . . . . . . . . . 1004.2.8 Determinarea relat iilor de precedent a pentru gramatici op-eratoriale . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.2.9 Studiudecaz . . . . . . . . . . . . . . . . . . . . . . . . . 1045 SintezaProgramelor 1075.1 Formeinternealeprogramelor . . . . . . . . . . . . . . . . . . . . 1075.1.1 Tabelelecompilatorului. . . . . . . . . . . . . . . . . . . . 1075.1.2 Cvadruple sitriplete . . . . . . . . . . . . . . . . . . . . . 1095.2 Generareaformatuluiintermediar . . . . . . . . . . . . . . . . . . 1145.2.1 Generareacvadruplelor . . . . . . . . . . . . . . . . . . . . 1155.2.2 Generareatripletelor . . . . . . . . . . . . . . . . . . . . . 1175.2.3 Generarea siruluipolonez . . . . . . . . . . . . . . . . . . 1185.3 Generareaformatuluiintermediarpentruinstruct iiclasice . . . . . 1215.3.1 Instruct iuneadeatribuire . . . . . . . . . . . . . . . . . . 1215.3.2 InstructiuneaIf . . . . . . . . . . . . . . . . . . . . . . . . 1215.3.3 Variabileindexate . . . . . . . . . . . . . . . . . . . . . . . 1216 MasinaTuring 1236.1 Limbajedetipulzero. . . . . . . . . . . . . . . . . . . . . . . . . 1236.2 MasinaTuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Capitolul1Introducere1.1 LimbajeformaleNot iuneageneraladelimbaj. Se numeste alfabet sau vocabular orice mult imenitasi nevida. Elementeleunui alfabetV levomnumi simboluri(saulitere,caractere,variabile).Denit ie1.1Un cuvant peste un alfabet Veste o secvent a p = a1a2. . . an, ai V, i = 1, . . . , n.Numarul n, deci num arul simbolurilor cuvantului p, se numeste lungimea cuvantuluisi va notat cu [p[ sau l(p). Vom considera si cuvantul vid sau e, care nu cont ineniciunsimbol;evident [[ = 0.Not iunea de cuvant este fundamentala n teoria limbajelor formale sau n altedomenii aleinformaticii; termeni sinonimi utilizat i nliteraturasuntpropozit ie,fraza sau sir. Sa observam ca nu exista o similitudine foarte buna ntre not iunilede alfabet, cuvant, etc. dinteoria limbajelor formale si not iunile core-spunzatoaredinlingvistica.Mult imeatuturor cuvintelor pesteunalfabet V onotamcuV+. Aceastamult ime mpreunacucuvantul vidvanotatacuV.Ingeneral, vomutilizaliteremaridelasfarsitulalfabetuluipentrunotareadiverseloralfabete,U, V, W,etc.; litere de lanceputul alfabetului (mari sau mici) pentru notarea simbolurilor,A, B, C, . . . , a, b, c, . . . , i, j, . . . (uneori cifre 0,1,2,...); pentrunotareacuvintelorvomutilizalitere mici de lasfarsitul alfabetului, p, q, r, s, t, u, v, w, x, y, z, etc.(aceastaconvent iedenotarenuvaabsoluta).Fiep=a1. . . an, q =b1. . . bm. Denimpemult imeaVoperat iadecon-catenaresaujuxtapunereprinpq= a1. . . anb1. . . bm.Se poate verica usor ca aceasta operat ie este asociativa. Prin urmare,mult imeaV+nzestratacuaceastaoperat ieesteunsemigrup(semigrupul liberpesteV ). Mult imeaVcuaceiasioperat ieesteunsemigrupcuunitate,deciunmonoid, unitateaindcuvantul vid(monoidul liberpesteV ). Structuraaresi56 CAPITOLUL1. INTRODUCEREproprietateadesimplicarelastanga siladreapta,adica:ua = uba = b, respectiv, au = bua = b, a, b, u VFie din nou p, q V. Vom spune ca q este un subcuvat sau un inx (propriu)alluipdacap = uqv, u, v V(u, v V+);qesteprex(propriu)alluipdacap=qv, v V(v V+); qestesux(propriu)alluipdacap=uq, u V(u V+).Denit ie1.2UnlimbajLpestealfabetulV esteoparteamult imiituturorcuvintelorpesteV ,deciL V.SaobservamcaV(sauV+) estentotdeaunaomult imeinnita(evidentnumarabil a);naceastaaccept iunegenerala, unlimbaj poatesaeomult imenitasauinnita,uneorichiarvida.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 acuvatulconstituitdinnsimboluria,adicaaa . . . a. ..Inparticulara0= .Operat iiculimbaje Limbajele ind mult imi se pot efectua cu limbaje ope-rat iileobisnuitecumult imi: reuniune, intersect ie, diferent a, complementariere(fat adeV). Exista sioperat iispecicelimbajelor.In general, o operat ie de n-aritate oarecare (cel mai adesea binara sau unara)pemult imeaVdenesteooperat iecorespunzatoarepemult imealimbajelor.Astfel,daca : V T(V) si : VV T(V)suntdouaoperat iipeV(unara sirespectivbinara) siL1, L2suntdoualimbajepesteV ,putemdenilimbajele(L1)respectiv(L1, L2)prin(L1) =_xL1(x), (L1, L2) =_xL1,yL2(x, y).Exemple:1.1. LIMBAJEFORMALE 71. Produsul(concatenarea)adoualimbajedenitprinL1L2= pq[p L1, q L2.DacaL1=L2=LvomnotaLL=L2. Prinrecurent a, sedenesteLnastfelL0= , Lk= Lk1L, k 1.2.Inchiderea(Kleene)aunuilimbajLesteL=_k=0Lk.3. Limbajul Sub(L). FieVsi Sub(x)mult imeatuturorsubcuvintelorlui x(evident Sub este o operat ie unara pe V). Daca L este un limbaj peste V ,putemdenilimbajulSub(L) =_xLSub(x).adicalimbajul constituit dintoatesubcuvinteletututor cuvintelor lui L.Semnicat iianaloagevoravea silimbajelePref(L) siSuf(L).4. LimbajulMi(L). Fiex = a1. . . anuncuvantpestealfabetulV . CuvantulMi(x) = an. . . a1se numeste rasturnatul sau oglinditul lui x (Mi este pres-curtareacuvantului englezmirror). Semai noteazaMi(x) = x. Avematunci sirasturnatulunuilimbajMi(L) =_xLMi(x).5. Operat iadesubstitut ie. FieUsiV douaalfabetesieaplicat ias : V T(U). Extindem(prelungim)aceastaaplicat ielaVprins() = , s(xy) = s(x)s(y), x, y V.Oastfel deprelungiresenumestecanonica; eapastreazaoperat iadecon-catenare, n sensul ca daca p = xy, atunci s(p) = s(x)s(y) este concatenarealimbajelors(x), s(y). Operat iadesubstitut iealimbajelorestedatades(L) =_xLs(x).Saobservamcaaceastaoperat ietransformaunlimbajpesteunalfabetVntr-unlimbajpesteunalfabetUsicapastreazaoperat iadeconcatenare.Dacacard(a)< , a V , vomspunecasubstitut iaestenita, iardacacard(a) = 1, a V vomspunecasesteunhomomorsm.Operat iile reuniune, produs si nchidere Kleene se mai numesc operat iireg-ulateasupralimbajelor.8 CAPITOLUL1. INTRODUCERE1.2 GramaticigenerativedetipChomskyUn limbaj peste un alfabet poate sa e o mult ime nita sau innita. Daca este omult ime nita, el poate denit prin scrierea efectiva a cuvintelor limbajului.Incazul n care este o mult ime innita, el poate denit n anumite cazuri punandnevident astructuracuvintelorlui. DeexempluL2= 01, 0011, 000111, . . . = 0n1n[n 1.Existadouaprocedeemaigeneralepentrudenirealimbajelor:1. Procedeegenerative, carepermitgenerareatuturorcuvintelorlimbajului.Existamaimultetipuridemecanismedegenerarealimbajelor, ntrecaregramaticileChomsky,sistemeLindenmayer,etc.2. Procedee analitice, care determinadacauncuvant dat apart ine saunulimbajului. Suntasa-numiteleautomate, automatenite, automatepush-down,etc.Unroldeosebit nteorialimbajelorformale laugramaticileChomsky.Not iuneadegramaticaFie VNsi VTdouaalfabete disjuncte,VN VT= numiterespectivalfabetul simbolurilorneterminale(VN) sialfabetul simbolurilorterminale(VT). NotamVG=VN VTalfabetul general si PVGVNVGVGalfabetul regulilor.Mult imeaPvadeciformatadinperechideforma(u, v), undeu=u

Au

,u

, u

VG, A VNiarv VG,deciusivsuntcuvintepesteVG,cuobservat iacautrebuiesacont in acel put inunsimbol neterminal. Vomspunecaoastfeldeperecheesteoregula(product ie,reguladegenerare,reguladerescriere) siovomnotau v(vomspune: usetransforma nv). Apartenent auneiregulilaPovomnota nmodobisnuit(u v) P,saumaisimplu,u v P(nuvaexistaconfuziacufaptulcavesteunelementalluiP).Denit ie1.3OgramaticaesteunsistemG=(VN, VT, X0, P), undeVNestealfabetulsimbolurilorneterminale,VTestealfabetulsimbolurilorterminale,X0 VNsisenumestesimboldestartal gramaticii,iarPestemult imeadereguli.Observat ie. Simbolurile alfabetului VNle vomnotangeneral culitere mariA, B, C, . . . , X, Y, Z(maiputinU, V, W)iarcelealealfabetuluiVTculiteremicidela nceputa, b, c, . . .saucucifre0, 1, 2, . . ..FieGogramaticasi p, q VG. Vomspunecapsederiveazadirect nqsi vomscriep Gq(saumai simplupq)dacaexistacuvinteler, s, u, v VGastfel nctp = rus, q= rvsiaru v P. Vomspunecap

sederiveaza np

(far aspecicat iadirect)dacaexistap1, p2, . . . , pnn 1astfel ncatp

= p1 Gp2 G. . . Gpn= p

.1.2. GRAMATICIGENERATIVEDETIPCHOMSKY 9Vomscriep

+Gp

(saup

+p

candnuexistanici oconfuzie)dacan>1si p

Gp

(saup

p

)dacan 1. Sirul demai susvanumitderivareiarnum aruldederivaridirectedin sir lvomnumilungimeaderivarii;semaispunecap

deriva np

.Saobservamcatransformarileastfel denite ,+,suntrelat ii peVG.Esteclarcarelat ia+este nchidereatranzitivaarelat iei ,iarrelat iaestenchidereatranzitiva sireexivaarelat ieidetransformaredirecta.Denit ie1.4. Limbajul generatdegramaticaGesteprindenit iemult imeaL(G) = p VT, X0Gp.Observat ie. Dacap VGsi X0Gpsespunecapesteoformapropozit ionalangramaticaG.Exemple:1. FieG=(VN, VT, X0, P), undeVN= A, VT= 0, 1, X0=A(evident)si P = A 0A1, A 01. Oderivarenaceastagramaticaeste, deexempluA0A100A11000111 = 0313.EsteevidentcaL(G) = 0n1n[n 1.Observat ie.Incazul ncaremai multereguli auaceeasi partestanga, levomscriecompactastfelu v1[v2[ . . . [vn,simbolul [av andsensuldesau;ncazulnostru,A 0A1[01.2. G = (VN, VT, X0, P),undeVN= , , , , ,,,,,VT= o,orice,matrice,funct ie,derivabila,continu a,este ,X0=,P= ,,,,,o[orice,matrice[funct ie,derivabil a[continu a,este.Observat ie.In acest exemplu, , , etc., reprezintaecarecateunsimbol neterminal; deasemenea, o, orice, matrice,10 CAPITOLUL1. INTRODUCEREetc., reprezinta simboluri terminale. Se poate usor observa ca aceastagramaticagenereazapropozit ii simple de formasubiect-atribut-predicat-complement care exprima judecat i asupra conceptelor de matrice si funct ie.Deexemplu,sepoateformapropozit ia: oricefunct iederivabil aestecon-tinua, care este din punct de vedere semantic corecta, precum si propozit iaoricefunct iecontinu aestederivabil a, care, dupacumsestie, estefalsa.Evident,sepotgenera sinumeroasepropozit iicarenuausens. Ceeaceneintereseaza nacestmomentesteaspectulformal,decidinpunctdevederesintactic toate aceste propozit ii sunt corecte; semantic, unele propozit ii potsaeincorectesauchiarsanuaibesens.Samai observamcaogramaticaChomskyestenmasur asaconstituieun model matematic pentru sintaxa unei limbi,fara sa intereseze aspectelesemantice. Esteceeacea ncercatsafacaNaomChomskypentrulimbaengleza nlucrarilesaledinanii /50.3. G = (VN, VT, X0, P),undeVN= , , , , , ,,,,VT= begin,end,if,then,stop,t,i,+,*,(,),=,,,; ,X0=P= beginend; [ [ [stop=if()then + [ [ ()[ t()[i, [ Gramatica din acest exemplu deneste un limbaj de programare simplu cutrei tipuri de instruct ii: atribuiri, if-then, stop. Expresiile aritmetice au nu-maioperatorii+ si *;variabilele potsimple sauindexate(tablouri),iar it ine loc de identicator sau constant a. Ment ion am ca denirean acest moda unui limbaj, inclusiv utilizarea crosetelor pentru desemnarea simbolurilorneterminale,poartaadeseadenumireadenotat ieBackusNaur; nacestmods-adenitlimbajulALGOL60.Tipuridegramatici Dupaformaregulilordegenerare, gramaticileChomskyse mpart nmaimultetipuri;clasicareaobisnuit aesteurmatoarea:Gramaticidetipul 0;suntgramaticifar arestrict iiasupraregulilor;Gramaticidetipul1(dependentedecontext);sunt gramatici care au regulideforma1.2. GRAMATICIGENERATIVEDETIPCHOMSKY 11uAv upv, u, p, v VG, p ,= , A VNsauA si nacestcazAnuapare ndreaptavreuneireguli.Observat ie. Evident, reguliledeformaadouaausensnumai dacaAestesimboluldestart.Gramaticiledetipul 2(independentedecontext); suntgramatici careauregulideformaA p, A VN, p VG.Gramaticiledetipul 3(regulate);suntgramaticicareauregulideforma_A BpC qsau_A pBC qcuA, B, C VNsip, q VT .Vomnotacu /j, j =0, 1, 2, 3familiiledelimbajegeneratedegramaticiledetipurilej =0, 1, 2, 3; vomaveaastfel limbajedetipul 0, limbajedetipul 1(saudependentedecontext), limbajedetipul 2(sauindependentedecontext)si limbajedetipul 3(sauregulate). Saobservamcaesteimportantastructuracuvintelor unui limbaj si nu modul n care sunt notate simbolurile terminale. Deexemplu,limbajeleL

2= 0n1n[n 1, L

2= anbn[n 1suntnmodpractic identice. Putemutilizaounicanotat ie pentruafabetulsimbolurilor terminale , de exemplu, VT= i1, . . . , in. Clasicareade maisusestefundamentala nteorialimbajelorformale,eaafostintrodusadeNaomChomskyin1958 siprintradit ienoileclasedelimbajesuntraportatelaaceastaclasicare. OaltaclasicareesteurmatoareaGramaticidetipul 0;far arestrict ii;Gramaticimonotone(detipul 1):u v, [u[ [v[, u, v VG;Gramaticidependentedecontext:uAv upv, u, p, v VG, p ,= , A VN;Gramaticiindependentedecontext(detipul 2):A p, A VN, p VG;12 CAPITOLUL1. INTRODUCEREGramaticiliniare:A uBv, A VN, B VN u, v VT ;Gramatici(stang)dreptliniare:A uB(A Bv), A VN, B VN u, v VT ;Gramaticiregulate(detipul3);gramatici stang liniare sau gramatici dreptliniare.Gramaticilemonotonecasi celedependentedecontext nupot aveareguli cuparteadreaptavida. Seintroduceurmatoareaconvent iedecompletare: ntr-ogramaticamonotonasaudependentadecontext seadmiteoreguladeformaA cucondit iacaAsanuapara nparteadreaptaavreunei reguli. Dupacumvomvedea, existent asauinexistent aregulilor de formaA , regulinumitede stergere,poatemodicaesent ialputereagenerativaauneigramatici.O gramatica n care nu avem astfel de reguli o vom numigramatica libera;deasemenea, unlimbaj carenucont inecuvantul vid, l vomnumi limbaj liber.Sa mai observam ca existent a regulilor de stergere ntr-o gramatica nu implica nmodnecesarexistent acuvantuluivid nlimbajulgenerat.Douagramaticicaregenereazaacelasilimbajsenumescechivalente.Gramaticilemonotone sigramaticiledependentedecontextsuntechivalente;deasemenea, gramaticiledreptsi stangliniaresuntechivalente, justicandu-seastfelclasagramaticilorregulate.1.3 IerarhiaChomskyLemelecareurmeazavoraveaoutilizarefrecvent a nceleceurmeaza.Lema1.1(Lemadelocalizareagramaticilorindependentedecontext)FieGogramaticaindependentadecontextsiederivareax1. . . xmp, unde xj VG, j= 1, m , p VG.Atunciexistap1, p2, . . . , pm VGastfel ncatp = p1. . . pmsi xjpj, j= 1, m.Demonstrat ie. Procedamprininduct ieasupralungimiiderivariil.Dacal = 0atuncip = x1. . . xmsiluampj= xj.Presupunemcaproprietateaesteadevaratapentruderivari delungimel sieoderivaredelungimel + 1, x1. . . xmp. Punem nevident aultimaderivare1.3. IERARHIACHOMSKY 13directax1. . . xmqp. Conformipotezeiinductive,q= q1. . . qmsixjqj, j=1, . . . , m.Fie apoi A u regula care se aplican derivarea directa qp si sa presupunemcaAintr a nsubcuvantulqk,deciqk= q

kAq

k. Vomluapj=_qj, j ,= kq

kuq

k, j= kEsteevidentcaxjpj, j ,= k,iarpentruj= kavemxkqk= q

kAq

kq

kuq

k= pk.2Vom pune n evident a n continuare o proprietate asupra structurii regulilor gra-maticilorChomsky. Parteadreaptaaunei reguli, pentrutoatetipuriledegra-matici, esteuncuvantformatdinterminalesauneterminale. Esteconvenabildemulteoricaparteadreaptaaregulilorsacont inaunsingurtipdesimboluri,terminalesauneterminale. Acestlucruesteposibilfaramodicareatipuluigra-maticii.Lema1.2(LemaA i)FieG = (VN, VT, S, P)ogramaticadetipul 2. ExistaogramaticaG

echivalenta, deacelasi tip, cuproprietateacadacaoregulaarenparteadreaptaunterminal,atuncieaestedeformaA i, A VN, i VT.Demonstrat ie. LuamgramaticaG

deformaG

=(VN

, VT

, S, P

)undeVN

siP

seconstruiescastfel: VN VN

si includem nP

toatereguliledinPcareconvin. FieacumoreguladinPcarenuconvine(punem nevident aaparit iaterminalelordinparteadreapta):u v1i1v2i2. . . invn+1, ik VT, vk VN.Vomintroduce nP

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

. EsteevidentcaG

pastreaz atipulluiG sicaL(G

) = L(G)2.Observat ie. Construct iadinlemasepoateextindeusorlagramaticidetipul0, nlocuind si terminalele din partea stang a a regulilor (u poate un sir arbitrarcecont ineminimunneterminal). Gramaticaastfelobt inut aesteechivalent acuceainit iala sipastreaz atipul.IerarhiaChomsky. Esteevidentca /3 /2sica /1 /0,deoareceoriceregulaaunei gramatici detipul 3respectaprescript iileunei gramatici detipul2;analogpentrufamiliile /1si /0. Aparent,oreguladeformaA p(detipul2)esteuncazparticularauneiregulideformauAv upv(detipul1),pentru14 CAPITOLUL1. INTRODUCEREu=v=; totusi, realitateanuesteaceasta, deoarecelatipul 2degramaticisunt permise reguli de stergere, pe cand la tipul 1 se impune condit ia p ,= . Vomaratacaavem /2 /1.Siruldeincluziuni/3 /2 /1 /0poartadenumireadeierarhiaChomsky(vomaratapeparcursul acestui curscaincluziunilesuntstricte). Aceastaierarhiecaracterizeazaputereagenerativaacelorpatrutipuri degramatici, aceastaputereindcrescatoaredela3la0.Oricealtemecanismegenerativeseraporteazalaaceastaierarhiefundamental a.Vomdemonstramai ntaiurmatoarealema.Lema1.3(Lemaeliminarii regulilordestergere). Oricelimbaj independentdecontext-liberpoategeneratdeogramaticadetipul 2fararegulidestergere.Demonstrat ie. FieG=(VN, VT, X0, P)ogramaticaindependentadecontextsiL(G)limbajulgenerat. Prinipoteza ,L(G). Denimprinrecurent asiruldemult imiUkastfel:U1= X[X VN, X PUk+1= X[X VN, X p P, p Uk Uk, k 1.Saobservamcasirul demult imi deniteestecrescator nraportcurelat iadeincluziune. Cumtoateacestemult imisuntincluse nVNsiVNestenita,rezultacaexistaomult imemaximalaUfastfelastfel nc atU1 U2 Uf= Uf+1=.Arelocdeasemenea siimplicat iaX Uf X.Vomilustraaceastaimplicat iecuunexemplu. SapresupunemcaUf=U3si eX U3. Atunci nmodnecesartrebuiesaavemX p P, p U2; deexemplup = X1X2siX1, X2 U2.InmodanalogX1 Y1Y2Y3,X2 Z1Z2siY1, Y2, Y3, Z1, Z2 U1, prinurmareY1 , Y2 , Y3 , Z1 , Z2 .PutemscriederivareaXX1X2Y1Y2Y3Z1Z2.Denimacumurmatoareagramaticaindependent adecontextfar aregulidestergere G

= (VN, VT, X0, P

) unde VN, VT, X0sunt ca n gramatica data, iar P

seconstruiesteporninddelaPastfel. FieX p P, p ,=. Includematuncin P

aceasta regula precum si toate regulile de forma X pj, unde pjse obt inedin p las and la o parte, n toate modurile posibile, simbolurile din Uf(se exceptacazulpj= ). DeexempludacaX ABC PsiA, B Uf,vominduce nP

regulileX ABC, X BC, X AC, X C.1.3. IERARHIACHOMSKY 15Saobservamca nacestfel mult imeaPafostpedeopartemicsorat a(aufostexclusereguliledealegere), iarpedealtaparte mbogat itacueventualelenoireguli. Samai obsevamcaG

esteindependent adecontext si canucont ineregulide stergere.VomaratacaL(G) = L(G

).Mai ntai,saaratamcaL(G) L(G

).Fiep L(G), deci X0Gp; vomaratacaX0G

p. Vomarataoimplicat ieceva mai generala, XGp implica XG

p, pentru orice X VN(relat ia cerutaseobt inepentruX=X0). Procedamprininduct ieasupralungimii derivarii l.Dacal = 1avemX Gp deci X p P. Dar p ,= deci X p P

adicaXG

p.Presupunemcaarmat iaesteadevarat apentrul =nsi luamoderivareculungimeal = n + 1. Punem nevident aprimaderivaredirectaX GX1. . . XmGpConformlemei delocalizareavemp=p1. . . pmsi XjGpj, j=1, . . . , m.Unele din cuvintele pjpot sa e vide; pentru precizarea ideilor sa presupunem cap2, p3, p5=. Atunci pentruderivarileXjGpj, j ,=2, 3, 5, careaulungimeadecelmultn,conformipotezeiinductiveavemXjG

pj.Pedealtaparte, pentruj =2, 3, 5avemX2G, X3G, X5G,deciX2, X3, X5 Uf. RezultacaX X1X4X6. . . Xm P

asa nc atputemscrieX G

X1X4X6. . . XmG

p1p4p6. . . pm= p.DeciXG

p siluandX= X0obt inemp L(G

). PrinurmareL(G) L(G

).Saarat amacumincluziuneainvers a,L(G

) L(G).Fiep L(G), X0G

p. Punem nevident aoderivaredirectaoarecareX0G

u G

vG

p.16 CAPITOLUL1. INTRODUCEREDaca n derivarea directa u G

vse aplica o regula care exista si n G, atuncievident pasul respectiv poate facut si n G. Sa presupunem ca se aplica o regulanouintrodusadeexempluX BC,decipasulrespectivvaaveaformau = u

Xu

G

u

BCu

= vRegula X BC P

a provenit dintr-o regula din P, las and la o parte simboluridin 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.Prinurmareoricepasalderivariiconsideratesepoateobt ine si ngramaticaG,deciX0Gp sip L(G),adicaL(G

) L(G)2.Teorema1.1 /2 /1.Demonstrat ie. Fie L /2un limbaj independent de context si G o gramatica detipul2care lgenereaza,adicaL = L(G).Presupunemca L. ConstruimgramaticaG

ca nlemaprecedenta;oricecuvant p ,= din L(G) se poate obt ine n G

si invers , deci L(G

) = L(G) .ConsideramatunciogramaticaG

= (VN X

0, VT, X

0, P

X

0 , X

0 X0). EvidentL(G

)=L(G). Toateregulilelui G

respectatipul 1(cuu=v= ) sicont ineosinguraregulade stergereX

0 iarX

0nuapare nparteadreaptaavreuneireguli. DeciG

estedetipul1sioricelimbajindependentdecontextesteinclus n /1,adica /2 /1.2Fiinddataooperat iebinaranotatacupeofamiliedelimbajeL, vomspuna ca familia L este nchis a la operat ia daca L1, L2 L implica L1L2L. Denit ianot iunii de nchiderepentruoperat ii unaresaucuaritateoarecareesteanaloaga. Relativlaproprietat ilede nchidereafamiliilordinclasicareaChomskyment ion amurmatorulrezultat.Teorema1.2Familiile /j, j= 0, 1, 2, 3sunt nchiselaoperat iileregulate.Demonstrat ie. FieGk=(VNk, VTk, Sk, Pk), k =1, 2douagramatici deacelasitipj, j =0, 1, 2, 3. PutempresupunecaVN1 VN2= . Trebuiesaarat amcalimbajeleL(G1) L(G2), L(G1)L(G2), L(G1), suntdeacelasi tipj.Inacestscopvomconstruigramaticidetipuljcaresagenerezelegenereze. Vomindicafar ademonstrt iemoduldeconstruct iealgramaticilor(pentrudetaliivezi[?]):Reuniune1.4. TRADUCEREAPROGRAMELOR 17j= 0, 1, 2, 3:G = VN1 VN2 S, VT1 VT2, P1 P2 S S1[S2).Produsj= 0, 1, 2:G = VN1 VN2 S, VT1 VT2, P1 P2 S S1S2).j= 3:G = VN1 VN2 S, VT1 VT2, S1, P

1 P2),unde P

1 se obt ine din P1 prinnlocuirea regulilor de forma A p cu A pS2.InchidereKleenej= 0, 1:G= (VN S, X, VT, S, P S [S[XS, Xi Si[XSi, i VT)j= 2:G= (VN S, VT, S, P Pprime S SS[)j= 3:G= (VN S, VT, S, P Pprime S S[)1.4 TraducereaprogramelorUnlimbaj deprogramareesteunlimbajcarearedreptscopdescriereaunorprocesedeprelucrareaanumitor datesi astructurii acestora(nunelecazuridescriereastructuriidatelorestepreponderenta),prelucrarecareserealizeaza ngeneralcuajutorulunuisistemdecalcul.Exista n prezent un numar mare de limbaje de programare de nivel nalt sauevoluate care se caracterizeaza printr-o anumit a naturalet e, n sensul ca descriereaprocesuluideprelucrarecuajutorullimbajuluiesteapropiatadedescriereanat-uralaaprocesuluirespectivprecumsiprinindependent aunorastfeldelimbajefat a desistemulde calcul. Dintre limbajelede acesttipcuo anumita rasp andirenmomentuldefat ament ion amlimbajelePASCAL,FORTRAN,C,JAVA,etc.Oaltaclasaimportantadelimbaje,suntlimbajeledeasamblare,saudenivelinferior, alecarorcaracteristicidepinddesistemuldecalculconsiderat. Ingen-eral, ecaresistemdecalcul (sautipdesistemdecalcul), arepropriul saulim-baj deasamblare; deexemplu, limbajul deasamblarealesistemelor decalculechipatecuprocesoaredetipIntel Z-80estedenumitnmodcurentASSEM-BLER. Instruct iileunui limbajdeasamblarecorespundcuoperat iilesimpleale18 CAPITOLUL1. INTRODUCEREsistemuluidecalculiarstocareadatelor nmemorieesterealizatadirectdeuti-lizator la nivelul locat iilor elementare ale memoriei. Exista de asemenea anumitepseudo-instruct ii sau directive referitoare la alocarea memoriei, generarea datelor,segmentareaprogramelor, etc., precumsimacroinstruct iicarepermitgenerareaunorsecvent etipicedeprogramsauaccesullabiblioteciledesubprograme.In afara de limbajele evoluate si de limbajelede asamblare,exista numeroaselimbaje specializate, numite uneori si de comanda, care se refera la o anumita clasadeaplicat ii. Ment ionamdeexemplulimbajul 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 particularitat ile sale, posedaunanumit limbajpropriu,numitcodmasina,acestaindsingurullimbaj nt elesdeprocesorul sistemului. Unastfel delimbajdepindedestructurainstruct iilorprocesorului, desetul deinstruct ii, deposibilitat iledeadresare, etc. Unpro-gram redactat n limbajul cod masin a al sistemului de calcul l numim programobiect.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)esteefectuatadeunprogramal sistemului numitcompilator(asamblor). Demulteoricompilatoarelenuproducdirectprogramobiect, ci untextintermediarapropiatdeprogramul obiect, care nurmaunorprelucrari ulterioare devine programobiect. De exemplu, compilatoarele sis-temelordeoperareDOSproducuntextnumitobiect(sierecuextensiaobj)carenurmaunui proces numit editaredelegaturi si ancarc ariinmemoriedevineprogramobiectpropriuzis, numitprogramexecutabil(sierecuextensiaexe). Existamaimulterat iunipentruoastfeldetratare, ntrecareposibilitateacuplariimaimultormoduledeprogramrealizateseparatsauprovenitedinlim-bajesursadiferite, posibilitateacrearii unorbiblioteci deprograme nformatulintermediar siutilizarealor nalteprograme,etc.Unprogramsursapoatedeasemeneasaeexecutat decatresistemul decalcul direct, far atransformarealui prealabila nprogramobiect.Inacestcaz,programul sursaesteprelucratdeunprogramal sistemului numitinterpretor;acestancarc asuccesivinstruct iile programului sursa, le analizeazadinpunctdevederesintacticsi semanticsi dupacaz, leexecutasauefectueazaanumiteoperat iiauxiliare.Procesul de compilare este un proces relativ complex si comporta operat ii careauunanumitcaracterdeautonomie. Dinacestemotiveprocesul decompilareestedeobicei descompus nmai multesubprocesesaufaze, ecarefazaindooperat iecoerenta, cucaracteristici binedenite.Inprincipiuacestefazesunt1.4. TRADUCEREAPROGRAMELOR 19AnalizaLexicalaAnalizasintacticaGenerarea formatuluiintermediarGenerarea coduluiOptimizarea coduluiTratareaerorilorPrelucrareatabelelorProgram ObiectProgram SursaFigura1.1: Fazelecompilariiparcursesecvent ial (potsaexistesi anumitereveniri)iarprogramul sursaestetransformatsuccesiv nformateintermediare. Sepoateconsideracaecarefazaprimeste de la faza precedent a un sier cu programul prelucrat ntr-un mod core-spunzatorfazei respective,l prelucreazasi furnizeazaunsierdeiesire, iarasintr-un format bine precizat, sier utilizat n faza urmatoare. Exista cinci faze decompilare principale: analiza lexicala, analiza sintactic a, generarea formatului in-termediar, generarea codului, optimizarea codului si doua faze auxiliare, tratareaerorilor sitratareatabelelor(vezigura1.1).Analizalexicalaarecaobiectivprincipal determinareaunitat ilorlexicalealeunui program, furnizareacoduriloracestorasi detectareaeventualelorerori lex-icale. Pelangaacesteoperat ii debaza, laanalizalexicalasemai pot efectuaanumiteoperat ii auxiliareprecum: eliminareablank-urilor(dacalimbajul per-mite utilizarea far a restrict ii a acestora), ignorarea comentariilor, diferite conver-siuni aleunordate(caresepotefectualaaceastafaza), completareatabelelorcompilatorului.Analizasintacticadeterminaunitat ile sintactice ale programului (secvent edetext pentrucaresepoategeneraformat intermediar)si veric aprogramuldin punct de vedere sintactic. Este faza centrala a unui compilator, deseori toatecelelalte faze sunt rutine apelate de analizorul sintactic pe masur a ce este posibilaefectuara unei part i din faza respectiva. Tot la analiza sintactic a se denitiveaz a20 CAPITOLUL1. INTRODUCEREtabeleledeinformat ii siserealizeazaprelucrareaerorilorsintactice.Fazadegenerareaformatuluiintermediarsereferalatransformareaprogra-muluintr-oformanumitaintermediarapornindde lacare sepoate, printr-oprocedurarelativsimpla, saseobt in aprogramul obiect. Structuraacestei fazedepindedeformatul intermediar ales decatreproiectantsi demodalitateadeimplementare;uzualsefolosesccvadruple,tripletesau sirurilepoloneze.Generareacodului este o faza in care se realizeaza codul obiect corespunzatorprogramului. Practic n aceasta faza se obt ine programul n limbaj de asamblarecorespunzator programului sursa redactat ntr-un limbaj evoluat.In mod obisnuitgeneratorul de cod este constituit din rutinele generatoare de cod corespunzatoarediverselorunitat ialeformatuluiintermediar.In faza de optimizare a codului se realizeaza o anumita mbunat at ire a coduluiobiectastfel ncatprogramulrezultatsaecatmaiperformant(nprivint acon-sumului de timp si memorie). Cele mai tipice exemple sunt eliminareanc arc arilorsiamemorarilorredundantesauoptimizareaciclurilor.FazeledePrelucrareatabelelorsi deTratareaerorilorvoratinsenumaipart ial naceastcurs. Facem ns ament iuneacaprelucrareatabelelorpoatesaaibaoinuent aimportantaasupraperformant elorunuicompilator, nmodspe-cial dinpunctul de vedere al timpului de execut ie (compilare) si catratareaerorilorareoanumit aimplicat ie neliminareaerorilorsintactice.1.5 Problemepropuse1. Gasit i limbajul generatdegramaticaG=(VN, VT, S, P), precizandtipulgramaticii(cf. clasicariiChomsky):(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, bB Bb, 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;(g) VN= x0,VT= A, B, . . . , Z,S= x0,P= x0 x1D,x1 x2N, x2 E;1.5. PROBLEMEPROPUSE 21(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. Gasit igramaticipentrugenerareaurmatoarelorlimbaje:(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[reprezentareabinarape8bit 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.(l) L = w 0, 1[wmultiplude8 .(m) L = constantereale nscriereaobisnuit acupunctzecimalpi.pz.22 CAPITOLUL1. INTRODUCERE(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[woctetcereprezintaunnumarpar ;(s) L = A, B, C, . . . , Z;4. Construit i o gramatica ce cont ine reguli de stergere, dar genereaza un limbaj-liber.5. Folosindteoremasaseconstruiascaogramaticaindependent adecontext,far aregulide stergerecaregenereazalimbajuldelapunctulprecedent.Capitolul2LimbajeRegulatesiAnalizaLexicala2.1 AutomatenitesilimbajeregulateAutomatenite. Automatelenite sunt mecanismepentrurecunoasterea lim-bajelordetipul 3(regulate). Unautomatnit(AF)secompunedintr-obandadeintrare siundispozitivdecomanda.Pe banda de intrare sunt nregistrate simboluri ale unui alfabet de intrare, con-stituind pe banda un cuvant p. La ecare pas de funct ionare banda se deplaseazacuopozit iesprestanga.Dispozitivuldecomandaposedaundispozitivdecitiredepebanda; dispoz-itivul seaapermanentntr-oanumitastareinterna, element al unei mult iminitedestari. Schemaunuiautomatnitesteredata ngura2.1.Automatul nitfunct ioneaz a npasi discret i. Unpasdefunct ionareconstadin: dispozitivul decomandacitestedepebandadeintraresimbolul aatndreptul dispozitivului decitire; nfunct iedestareaintern asi desimbolul citit,automatul trece ntr-onouastaresi mut abandacuopozit iesprestanga. Au-tomatul si nceteazafunct ionareadupaces-acititultimulsimbol nregistratpebanda; nacestmomentel sevaaa ntr-oanumitastare, care, dupacumvomvedea,vajucaunrolimportant nrecunoastereacuvintelor.Dinpunctdevederematematic,unautomatnitesteunsistemAF= (, I, f, s0, f),undeestealfabetul(mult imea)destari;Iestealfabetuldeintrare;f: I T()estefunct iadeevolut ie;s0 estestareainit ial a;f estemult imeadestarinale.2324 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALAi1i2i3...ik...in-1in...DispozitivdecitireDispozitivdecomanda sSBandadeintrareFigura2.1: Reprezentareaschematic aaunuiautomatnitDacapentruorice(s, i) I, avem [f(s, i)[ 1automatul senumestedeterminist; ncazcontrarsenumestenedeterminist.Observat ii:1. Funct ionarea unui automat nit se poate bloca n situat ia n care el se aan starea s, citeste de pe banda simbolul i si f(s, i) = ; evident ca n acestcazfunct ionarea ncontinuarenumaiesteposibila.2.In cazul unui automat determinist vom scrie f(s, i) = s

(n loc de f(s, i) s

.3. Denit ia data este specica teoriei limbajelor formale. O alta denit ie (maigenerala) , ntalnit an teoria automatelor este urmatoarea: un automat niteste un sistem AF= (, I, O, f, g, s0, F) unde, , I, f, s0, Fau semnicat iademai sus, Oestealfabetul deiesireiarg: I T(O)estefunct iedeiesire. Funct ionalitateaunui astfel deautomat nit esteanaloagacucea descrisa mai sus, cu deosebirea ca la ecare pas automatul furnizeaza oiesireo g(s, i).Prin diagrama de stari a unui automat nit nt elegem un graf orientat care arenodurileetichetatecustariles iararceleseconstruiescastfel: noduriles, s

seunesccuunarcorientatdelaslas

dacaexistai 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, s12.1. AUTOMATEFINITESILIMBAJEREGULATE 25s0s2s1i1i1i2i2i2i2Figura2.2: DiagramadestariDiagramadestaricorespunzatoareesteprezentat a ngura2.2.Funct iadeevolut ieFunct ia fse prelungeste de la Ila T() Idecidenimf

: T() I T(),astfel:(a)f

(s, ) = s, s ,(b)f

(, i) = , i I,(c)f

(Z, i) = sZ f(s, i), Z T(), Z ,= ,(d)f

(Z, pi) = f

(f

(Z, p), i).Prin abuz de limbaj, vom folosi pentru noua funct ie tot notat ia f.Sa observamcarelat iiledemai susconstituieodenit ieprinrecurent a, corecta; inddatf,putemdeni mai nt ai toatevalorilef(Z, i)(unnum arnit, deoareceI esteomult ime nita), apoi f(Z, p) pentru [p[ = 2, n continuare f(Z, p) pentru [p[ = 3,etc.Proprietat ilefunct ieif:1. DacaZkesteofamiliedepart 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),adica(c).Presupunem ca relat ia este adevarat a pentru [p[ = m si consideram un p astfel26 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALAnc at [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.Daca [q[ = 1,atunciq= i sirelat iasereducela(d).Presupunem ca proprietatea este adevarata pentru r si consideram [q[ = r+1.Deciq= q

i. Avemf(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) daca automatul aandu-se n starea init iala s0, dupa [p[ pasidefunct ionarepoatesaajunga ntr-ostarenala.Incazul unui automatnitdeterministlimbajul recunoscutpoatedenitnmodul 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. Vomaratacaceledouafamiliicoincid.Teorema2.1 1d= 1.Demonstrat ie. Fie AF= (, I, f, s0, f) un automat nit (n general nedetermin-ist). Construimurmatorul automatnitdeterministAF

=(

, I, f

, s0,

f)unde

= T(), f

= f(prelungirea la I ),

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

estedeterminist.Fiep L(AF). Atuncif(s0, p) f ,= sif(s0, p)

f. Pedealtaparte,conformcuproprietatea2afunct ieideevolut ie,avemf

(s0, p) = f(s0, p)2.1. AUTOMATEFINITESILIMBAJEREGULATE 27sidecif

(s0, p)

f,adicap L(AF

) siL(AF) L(AF

).PeocaleanaloagasearatacaL(AF

) L(AF).2Observat ie. Faptul cauncuvantesterecunoscutdeunautomatnitsepoatevericaprincalculdirectsaupediagramadestari.Exemplu. Consideramautomatul dinexemplul anterior (gura 2.2) si ep = 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.Astfelcaf(s0, i1i2i1) f= s2 ,= sip L(AF).Pediagramadestariexistatraiectoriile:s0i1s1i2s0i1s1;s0i1s1i2s1i1s2;Adouatraiectorieneduce ntr-ostarenala,decip L(AF).Limbajedetipultreisilimbajeregulate. Vomarata nceleceurmeazacafamilialimbajelordetipul3coincidecufamilialimbajelorregulate.Inprealabilvompune nevident aoformaspecialaalimbajelordetipul3,pecareconvenimsaonumimformanormala.Denit ie2.2Vomspunecaogramaticadetipul3este nformanormaladacaareregulidegeneraredeforma_A iB,C j,unde A, B, C VN, i, j VTsaureguladecompletareS sinacest cazSnuaparendreaptavreuneireguli.Lema2.1Oricegramaticadetipul 3admiteoformanormala.Demonstrat ie. Daca G = (VN, VT, S, P) (3 este gramatica data, eliminamnprimul rand -regulile (ca n lema eliminarii regulilor de stergere) apoi construimgramaticaG

=(V

N, VT, S, P

), undeV

Nsi P

sedenescastfel: introducem nV

NtoatesimboluriledinVNiar nP

toatereguliledinPcareconvin;eacumnPoreguladeformaA pB, p = i1. . . inVomintroduce nP

regulile:A i1Z1,Z1 i2Z2,. . . ,Zn1 inB,28 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALAiarsimbolurileZ1, . . . Zn1leincludeminV

N.In cazul unei reguli de forma A p cu [p[ > 1 procedam analog, exceptand ul-tima regula nou introdusa care va avea forma Zn1 in. Sa mai facem observat iacasimbolurileZ1, . . . , Zn1leluamdistinctepentruecarecaz.SepoatearatausorcaL(G) = L(G

).2Teorema2.2Familialimbajelordetipul 3coincidecufamilialimbajelorregu-late.Demonstrat ie. ParteaI:E /3E 1.FieEunlimbajdetipul3 siG = (VN, VT, S, P)gramaticacare lgenereaza;putempresupunecaGeste nformanormala. ConstruimautomatulnitAF=(, I, f, s0, f)unde = VN X(Xsimbolnou),I= VT, s0= Ssif=_ X, S , pentru EX , pentru , EFunct iadeevolut ieestedenitade: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, aceastaderivarevaaveaforma(1) Si1A1i1i2A2i1i2. . . in1An1i1i2. . . in.S-auaplicatregulile:(2)S i1A1,A1 i2A2,. . .An1 in.Inautomatavemcorespunzator:(3) :A1 f(S, i1),A2 f(A1, i2),. . .X f(An1, in)Putemscrietraiectoria(4) Si1 A1i2A2i3. . .inX f2.2. PROPRIETAT ISPECIALEALELIMBAJELORREGULATE 29Decip L(AF).Dacap =, atunci Ssi S P. Dar atunci L(AF), caciautomatul este nstareaSsi ramne naceastastaredupacitirealui ; cumnsa nacestcazS frezultacasi nacestcazp L(AF).Inconsecint aL(G) L(AF).Fieacump=i1. . . in L(AF); atunci avemtraiectoria(4), relat iile(3),reguliledegenerare(2) siputemscriederivarea(1),adicap L(G) siL(AF) L(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 imeaPestedenitaastfelf(A, i) = BgenereazaregulaA iB P,nplusdacaB fsegenereaza siregulaA i P.PutemaratacaL(G) = L(AF).22.2 Proprietat ispecialealelimbajelorregulateCaracterizareaalgebricaalimbajelorregulate. Limbajeleregulate, indpart i din I, se pot caracteriza algebric, independent de mecanismele de generare(gramaticiledetipul3)saudecelederecunoastere(automatelenite).Teorema2.3FieE Iunlimbaj. Urmatoarelearmat iisuntechivalente.(a)E 1;(b)Eesteoreuniunedeclasedeechivalent eauneicongruent ederangnit;(c)Urmatoareacongruent a = (p, q)[E(r1pr2) = E(r1qr2), r1, r2 I,undeEestefunct iacaracteristicaaluiE,estederangnit.Demonstrat ie: Vom arata urmatoarele 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 ca este o relat ie de echivalent a (reexiva , simetrica,tranzitiva).In plus ,daca r 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.30 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALAPrinurmareesteorelat iedecongruent a.Saaratamcaaceastacongruent aestederangnit,adicamult imeacatI/estenita.Fie : oaplicat ieoarecare siemult imeaI() = p[p I, f(s, p) = (s), s .Saobservamcadacaestefunct iaidentic aatunci I(). DecinutoateI()suntvide; nacestcazI()esteoclasadeechivalent a.Intr-adev ar, ep I() Ixat si e Cpclasa de echivalent a a lui p. Arat am ca Cp= I().Dacaq I(), atunci f(s, q) =(s), s , ceeace nseamn acaf(s, q) =f(s, p), s , sideci(p, q) adicaq CpsiI() Cp.Invers dacaq Cpatunci f(s, q) =f(s, p) =(s), s si q I(),adicaCp I(). Aceasta nseamn acaI()=Cp,adicaI()esteoclasadeechivalent a.Intremult imeacatI/si mult imeafunct iilordenitepecuvalori nputemstabili urmatoareacorespondent abiunivoca: unei funct ii: icorespunde clasa de echivalent a I(). Invers, ind data o clasa de echivalent a C,luam p C(oarecare) si atas am lui Cfunct ia (s) = f(s, p)s . T inand contcadacaq Catunci f(s, p)=f(s, q), s , rezultacafunct ianudepindedeelementulpales.Dar mult imea funct iilor denite pe cu valori n este nita, deci I/estenita,adicacongruent aestederangnit.Fieacump L(AF) siqastfelca(p, q) . Avemf(s0, q) = f(s0, p) f;adicaq L(AF). Aceasta nseamnacaodatacuelementul p, L(AF)cont ineclasadeechivalent aalui p. Deaici rezultacaL(AF)esteconstituitdintr-unanumitnum ardeclasedeechivalent aalui.2(b)(c)Fieocongruent aderangnitsiEoreuniunedeclasedeechivalent a. Fieapoi(p, q) ;aceasta nseamnacar1pr2 E r1qr2 E,deciE(r1pr2) = E(r1qr2), r1, r2 I.Prinurmare, (p, q) . Orice clasade echivalent adinI/ este inclusantr-oclasadeechivalent adinI/, asa ncatcard(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 >< [ [ >=,42 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALAundel-litera,c-cifra.Porninddelaaceastagramaticasepoateconstrui unaechivalent a nformanormala, apoi se extrage funct ia de evolut ie a automatului nit deterministechivalentcerecunoasteunitat 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 amcaexistaprogramespecializate(Lex, Flex, JavaCC) cegenereazaunanalizorlexical (nCsauJava)porninddelaexpresiileregulate.Sintaxafolositanscriereaexpresiilor regulate este dependent ade programulfolosit.Programareaunuianalizorlexical Realizarea efectiva a unui analizor revinela simularea funct ion arii unui automat nit. Ovariant a de programare esteatasareaunei secvent edeprogramlaecarestareaautomatului. Dacastareanuestestarenalaatuncisecvent acitesteurmatorulcaracterdintextulsursa sigasesteurmatorul arcdindiagramadestari. Depinzandderezultatul caut ariisetransferacontrolulalteistarisausereturneazaesec(posibilaeroarelexicala).Daca starea este nala atunci se apeleaza secvent a de returnare a codului unitat iilexicale sieventualainstalareaunitat iilexicale ntabelelecompilatorului.Pentrusimplicareaimplementariisecautaurmatoareaunitatelexicalaprinncercarea succesiva a diagramelor corespunzatoare ecarei unitat i lexicale (ntr-oordineprestabilita). Eroarealexicalasesemnaleazadoar atunci candtoatencerc arilese ncheiecuesec.De obicei textul sursa cont ine si secvent e ce se pot descrie cu ajutorul expresi-ilorregulate,darcarenusuntunitat ilexicale(deexemplucomentariile). Acestesecvent e nu vor genera cod lexical, dar au asociate diverse act iuni specice. Pen-truaevitaaparit iaunor caracterenecunoscuteintextul sursaseconsiderasilimbajul ce consta din toate simbolurile ASCII. Astfel,indiferent de unde ncepeanalizatextului,programuldeanalizalexicalagasesteopotrivirecuodescriere.Spunemcaspecicat iaestecompleta.Exista posibilitatea ca mai multe secvent e cu aceeasi origine sa corespunda ladiferite descrieri ale unitat ilor lexicale. Se considera unitate lexicala cel mai lungsircesepotrivesteuneidescrieri(longestmatchrule). Dacasuntdouareguli2.4. ANALIZALEXICALA 43care se potrivesc la acelasi sir de lungime maxima atunci se considera o prioritateasupradescrierilor(rulepriority).Deexemplu,intextulurmator,i if if8unitat ile lexicale delimitate vor iidenticator, ifcuvant cheie, if8identicator.Reguladeprioritateseaplicapentrupotrivirealui if cuidenticatorsi cuvantcheie,iarcriteriuldelungimemaximapentruif8.Pentru depistareaceleimailungipotriviri,dinpunt de vedere alprogramariianalizorului, estesucientsaprevedemunpointersuplimentarpecaracterul cecorespundeultimeistarinaleatinsepeparcursulcitirii.Studiudecaz. Seconsideraproblemarealizariiunuianalizorlexicalcedelim-iteaza ntr-untextsursacuvintedinlimbajul cecont ineidenticatori, cuvintecheie (pentrusimplicare folosimdoar cuvantul cheie if), constante numerice(ntregifar asemn). Deasemeneasefacesaltpestespat iilealbesiseignoraco-mentariile. Presupunemcauncomentariu ncepecudouacaractereslashsi setermina 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 ASCIIEtapa II. Corespunzator expresiilor avem urmatoarele automate nite deter-ministeechivalente, prezentate ngura2.9(starileaufostnotateprinnumerentregi):Etapa III. Se construieste sistemul tranzit ional (vezi gura 2.10) ce re-cunoastelimbajul reuniune, adaugandonouastareinit iala(notatacu1), pecareoconectamprinarcepunctate(cecorespund-tranzit iilor). Construct iaprovinedinlegareasistemelortranzit ionale nparalel. S-aurenumerotatstarilesistemuluitranzit ional,asignandnumesimbolicestarilornale.EtapaIII. Construct iaautomatului nitdeterministgeneral cerecunoastereuniunealimbajelor. Pentruaceastasistemultranzit ionalsetransformacuteo-remadeechivalent a nautomatnitdeterminist(practicsetrecedelastarialesistemului tranzit ional la submult imi de stari, ce devin starile automatului nit).44 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALA42 12 12 13 2 1a- z0- 9//\ n0- 90- 9a - z\ n\ t \ b\ n\ t \ b2 1IDNUMWSCOMERRoricea- z ,\bFigura2.9: AutomatelenitecorespunzatoareexpresiilorregulateIn cazul particular al automatului nostru, diagrama de stari este datan gura2.11.EtapaIV.Programareaanalizoruluilexical.Automatul nit obt inut are starile nale asociate cu clasele de cuvinte recunos-cute. Seasociazaact iunistarilornale,corespunzatordenit iilorunitat ilorlexi-cale (de exemplu pentru constante numerice se genereaza reprezentarea interna, sememoreaza n tabelul de constante si se returneaza codul unitat ii lexicale NUM).Pentru programarea analizorului se folosesc trei variabile de tip pointer in textulsursa: FirstSymbol, CurrentSymbol, LastFinalSymbol, ceret inindicelecarac-terului de nceput al secvent ei, indicele caracterului ce urmeaza la citire, indiceleultimului caractercecorespundeatingerii unei stari nale. Cei trei pointeri aufost reprezentat i prin semnele grace [, respectiv . De asemenea consideramovariabil aState,ceret inestareacurent aaautomatului.Intabelul 2.12esteindicataevolut iaanalizorului lexical (inclusivact iunileasociate)pentrucazulanalizeiurmatoruluitextsursa.if if8%// ha\nPentrusimplicareacodicarii, starileautomatului nitdeterministaufostredenumite prin numerentregi ncepand cu starea init iala 1, starea 3, 6, 16 = 2,4, 6 = 3, 6, 16 = 4, s.a.m.d. de la stanga la dreapta si de sus n jos. De obicei2.4. ANALIZALEXICALA 45143 210 98 76 513 12 114i fa - z0- 9//\ n0- 90- 9a - za - z\ n\ t \b\ n\ t \ b,\b16 15IFIDNUMWSCOMERRorice1Figura2.10: Sistemultranzit ionalcerecunoastereuniunealimbajelor46 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALA3,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.4. ANALIZALEXICALA 47Last 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%//han48 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALAint 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 asociata automatului nit determinist se memoreaza sub formaunuitabloubidimensionalde ntregi,ca ngura2.13. Starea0esteasociatacublocareaautomatului. Ajungerea naceastastareechivaleaz acugasireaultimeiunitat i lexicale, ntrepointerii [si . Seexecutaact iuneaasociatastarii nalesi sereiacautarea(resume)urmatoarei unitat i lexicale ncep andcucaracterulimediaturmatorpointerului .Observat ie: Celemai costisitoareoperat iuni (catimp) dinanalizalexicalasunt ignorareacomentariilor si tratareaerorilor lexicale. Primele generatoareautomate de analizoare lexicale si sintactice au aparut n anii 70 si au fost inclusensistemuldeoperareUnix.2.5 Problemepropuse1. Construit iautomatenitepentrurecunoasterealimbajelor:(a) L = PSDR, PNL, PUNR;(b) L = w[ siruride0 si1terminatecu1 ;(c) L = w[widenticatorPASCAL ;(d) L = w[wconstanta ntreagacusemn 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.5. PROBLEMEPROPUSE 493. Construit i automatenitedeterministeechivalentecucelenedeterministeobt inutelaproblemaprecedenta.4. Gasit igramaticiregulateechivalentecuautomateledelaproblema1.5. Folosind lema de pompare pentru limbaje regulate dovedit i ca urmatoarelelimbajenusuntregulate:(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-lemaprecedenta. Pentruecaresistemtranzit ionalconstruit iunautomatnitdeterministechivalent.50 CAPITOLUL2. LIMBAJEREGULATESIANALIZALEXICALACapitolul3LimbajeIndependentedeContext3.1 ArboridederivareCaracterizareafamiliei /2cuarboridederivare. Unadincaracteristiciledebazaalelimbajelorindependentedecontextesteaceeacaoderivare ntr-unastfel de limbaj poate reprezentat a de un arbore, numit in acest context arboredederivare. Aceastareprezentareesteimportant a nmodspecialpentrufaptulcapermiteoimagineintuitiv asimplaaunei derivari si deci posibilitateadealucrausorculimbajedetipul2.Vomprezenta nprimul randcatevanot iuni elementaredeteoriagrafurilor,cuscopuldeaprecizanotat iile siterminologia.Ungraf orientat (esteopereche (=(V, )undeV esteomult imenitaiaroaplicat ie: V T(V ). Mult imeaV senumestemult imeavarfurilor(nodurilor)grafuluiiardacav2 (v1), perechea(v1, v2)esteunarc ngraf; v1esteorigineaiarv2esteextremitateaarcului. Undrumdelavrful v

lavarfulv

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

=v1siv

=vn. Numaruln 1estelungimeadrumului. Undrumpentrucarev1=vnsenumestecircuit. Uncircuitdelungime1poartanumeledebucla.Denit ie3.1Unarboreesteungraffaracircuite, cucard(V ) 2sicaresat-isfaceurmatoareledouacondit ii:1. v0 V astfel ncatv0 , (v), v V ;v0senumesteradacinaarbore-lui;2. v V v0,!wcuv (w); altfel spusoricevarf diferit dev0esteextremitateaunuisingurarc.Exemplu. V= v0, v1, v2, v3, v4iarfunct iaestedatade:x v0v1v2v3v4(x) v1, v2 v3, v2 5152 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTv0v2v4v3v1Nivel0Nivel1Nivel2Figura3.1: Reprezentareagracaaarborelui (= (V, ).Reprezentarea nplanaacestuiarboreestedataingura3.1Nodurile vpentru care (v) = se numesc noduri terminale (nale); celelaltesenumescinterne. Mult imeanodurilorterminaleconstituiefrontieraarborelui.In general vom nota un arbore cu litere mari, specicnd ca indici radacina si fron-tiera;deexemplu /v0, v1v2v3. Unarborecomportamaimulteramuri; nexempluavemurmatoareleramuri: v0v1,v0v2v3,v0v2v4.FieG = (VN, VT, S, P)ogramaticadetipul2.Denit ie3.2Un arbore de derivare n gramatica G este un arbore cu urmatoareledouaproprietat i.(1)NodurilesuntetichetatecuelementeledinVG;(2)Dacaunnodvaredescendent idirect iv1, . . . , vnatunciv v1v2. . . vn P.Exemplu. G = (A, B, a, b, A, P)undeP= A aBA[Aa[a, B AbB[ba[abb.Arborele /A, aabbaareprezentat ngura3.2(Varianta1)esteunarboredederivare(poatedesenatcoborandfrontierapenivelulultim,Varianta2):Teorema3.1FieGogramaticadetipul 2. Atunci Xpdacasi numai dacaexistaunarbore /X, p.Demonstrat ie. Xpimplica /X, p.Procedamprininduct ieasupralungimiiderivariil.Dacal =1, Xp = i1. . . insi Xi1. . . in P. Arboreledingura3.3corespundecerint elorteoremei.3.1. ARBORIDEDERIVARE 53AABaaBbba aVarianta 2AAABaaB bba aAVarianta 1Figura3.2: Variantedereprezentareaarborelui /A, aabbaa.Xini2i1. . .Figura3.3: Arborecorespunzatoruneiderivaridirecte.54 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTXXmX2X1. . .p1p2pm. . .Figura3.4: Construct iaarborelui /X,p1...pm.Presupunemcaproprietateaesteadevaratapentruderivari delungimel siconsideram o derivare de lungime l +1, Xp. Punemn evident a prima derivaredirectaXX1. . . XnpConformlemei de localizare, p =p1. . . pnsi Xjpj, j =1, m. Putemfaceurmatoareaconstruct ie: conformipotezei inductive, ecarei derivari Xjpjicorespunde cate un arbore /Xj,pj; unim apoi toate nodurile Xj n nodul Xplasatlanivelulzero. Obt inemastfelunarbore /X,p1...pm= /X,p(vezigura3.4)carecorespundecerint elorteoremei.Pentruimplicat ia,/X,p Xp, se parcurge ocale inversa, facandoinduct ieasupranumarului denivele. Deexemplu, dacaacestnumareste2,arborele de derivare trebuie sa arate can 3.3 si deci avem X i1i2. . . in= p PsiXp,etc. 23.2 Ambiguitate nfamilia /2.FieGogramaticadetipul 2. OderivareS=u0 u1 . . . unncarelaecarederivaredirectase nlocuiestesimbolul neterminal cel mai dinstanga(dreapta)senumestederivareextremstanga(dreapta). Saobservamca npar-ticular ntr-ogramaticadetipul 3oricederivareesteextremdreapta(scriereadreptliniara).Denit ie3.3OgramaticaGdetipul 2 ncareexistauncuvantp L(G)carese poate obt ine cudouaderivari extremstangi (drepte) distincte, se numesteambigua. Incazcontraresteneambigua.3.2. AMBIGUITATE INFAMILIA /2. 55Exemplu. GramaticaA aBA[Aa[a, B AbB[ba[abbesteambigua.Intr-adevar,avemAaBAaBaaAbBaaAbbaaaabbaa;AAaaBAaaBaaaabbaa.Denit ie3.4Unlimbaj este ambigudacatoate gramaticile carel genereazasuntambigue.Incazcontrar(adicadacaexistaogramaticaneambiguacaresal genereze)limbajul esteneambigu.DacaGesteambigu asi p L(G)esteuncuvantcaresepoateobt inecudouaderivari extremstangi distincte, atunci existaarborii /S, psi /

S, p, diferit i, darcareauaceiasirad acin a sifrontier a.Teorema3.2DacaL1si L2suntlimbajedisjuncteneambigue, atunci L1 L2esteneambigu.Demonstrat ie. FieGk=(VNk, VTk, Sk, Pk), k=1, 2douagramatici detipul 2neambigue sieG = (VN1 VN2, VT1 VT2, S, P1 P2 S S1[S2)gramaticacegenereazalimbajulL(G1) L(G2).SapresupunemcaL(G)esteambigua. Atunciexistap L(G)caresepoateobt ine cu doua derivari extreme stangi diferite. Sa presupunem ca p L(G1), p ,L(G2). Atunciobt inemdouaderivaridistincte ngramaticaG(1) S GS1Gp, deci S1G1p;(2) S GS1Gp, deci S1G2p,decisidouaderivariextremstangi ngramaticaG1. Aceastaar nsemnacaG1esteambigua. Contradict iecuipoteza!2Teorema3.3Limbajeledetipul 3suntneambigue.Demonstrat ie. Fie L un limbaj de tipul 3 si G gramatica care l genereaza; e apoiAFautomatul nit care recunoaste limbajul L si AFD automatul nit echivalentdeterminist. ConstruimgramaticaG

astfel nc atL(G

) = L(AFD). ReamintimcaregulileluiG

seconstruiescastfelf(A, a) = B A aB, f(A, a) f A a.Sa presupunem acum ca L este ambigu; atunci orice gramatica carel genereaza,inclusivG

,esteambigua. Aceasta nseamn acaexistaunp L(G

)astfel nc atSi1A1i1i2A2. . . i1. . . in1An1_ i1. . . inA

n i1. . . inA

n _p.DeciexistaregulileAn1 inA

nsiAn1 inA

n,adica nautomatulAFDavemf(An1, in) = A

n, f(An1, in) = A

n,ceeacecontrazicefaptulcaAFdestedeterminist.256 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXT3.3 Formenormalepentrugramaticidetipul2FormanormalaChomsky.Denit ie3.5O gramatica n forma normala Chomsky este o gramatica cu regulideformaA BC,D i,undeA, B, C, D VNsi i VT. Seacceptasi reguladecompletareS cucondit iacaSsanuapara ndreaptavreuneireguli.Lema3.1(lema substitut iei). Fie G o gramatica de tipul 2 si X uY vprecumsiY p1. . . pntoatereguliledinGcareauYnstanga. AtunciGesteechiva-lentacuogramaticaG

ncareamfacutsubstitut iile;adicafacemurmatoareanlocuireX uY vse nlocuiestecuX up1v[ . . . [upnv(RegulileY p1[ . . . [pnlevompastraneschimbate).Demonstrat ie. Fiep L(G) siSp. Punem nevident adoipasiconsecutivioarecare:G : Srst p.Dacanrsse utilizeazaregulaXuY v atunci nmodnecesarnpasulurmatorseutilizeazaunadinregulileYp1[ . . . [pn, sapresupunemYpj(evident,esteposibilcaaceastaregulasanuseaplice npasulimediaturmator,dareapoateadusa naceastapozit 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.DeciSG

p, p L(G

) siL(G) L(G

).Invers, daca p L(G

) si SG

p, atunci daca la un pas se utilizeaza o regulanouintrodusa(pasul (B)), transformarearespectivasepoateobt inesi nGcudoipasi(pasii(A));decip L(G) siL(G

) L(G).2Corolar3.4Orice gramatica de tipul 2 este echivalenta cu o gramatica de acelasitip n care mult imea de reguli nu cont ine redenumiri. (O redenumire este o reguladeformaA B, A, B VN).3.3. FORMENORMALEPENTRUGRAMATICIDETIPUL2 57Intr-adevar,dacaA B Pesteoredenumire siB p1[ . . . [pnsunttoateregulilecareauB nstanga,efectuamsubstitut iile,deci nlocuimregulaA BcuA p1[ . . . [pn.Incazulncareprintreacesteaapareonouaredenumire,repetamprocedeul.2Exemplu. Gramatica GE care genereaza expresii aritmetice E E+T[T, T T F[F, F (E)[isepoatepunesuburmatoareaforma(far aredenumiri):E E + T[T F[(E)[iT T F[(E)[iF (E)[iTeorema3.5(teoremaluiChomskydeexistent aaformeinormale). Oricegra-matica independenta de context este echivalenta cu o gramatica n forma normalaChomsky. ema2Demonstrat ie. Putem porni de la o gramatica Gcare nu are redenumire si ale careireguli cuterminaleauformaA i, A VN, i VT. DeasemeneapresupunemcaGnuareregulide stergere.RezultacaregulileluiGauunadinformele:(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). Fiecarereguladeforma(3)o nlocuimcu:X X1Z1,Z1 X2Z2,. . .Zn2 Xn1XnsiincludemneterminaleleZ1, . . . , Zn2(altelepentruecarereguladeforma(3)nV

N.Se poate relativ usor arata ca L(G) = L(G

). De exemplu, daca uv(direct)n G si de aplica o regula de forma (1) sau (2), atunci evident derivarea respectivasepoateobt ine si nG

; ncazul ncareseaplicaoreguladeforma(3),avemG : 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. Ogramaticacearereguli deformaA BC, A B, A aundeA, B, C VNsia VTspunemcaeste nforma2canonica. Esteevidentcaoricegramaticadetip2esteechivalentacuogramatica nforma2canonica.Gramaticirecursive58 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTDenit ie3.6UnsimbolneterminalXaluneigramaticidetipul2esterecursivdacaexistaoreguladeformaX uXv, u, v VG.Dacau = (v= )simbolulXestestang(drept)recursiv. Ogramaticacearecel put inunsimbol recursivsenumesterecursiva. Deexemplu, gramaticaGEcaregenereazaexpresiilearitmeticearedouasimboluristangrecursive,EsiT.Existent a simbolurilor stang recursive poate provoca dicultat i n aplicarea al-goritmilor de analiza top-down.Intr-adev ar, ntr-o astfel de gramatica, ncercareadeaconstrui arboreledederivarecorespunzator unui cuvant pprinaplicareantotdeauna a primei reguli pentru simbolul cel mai din stanga, poate sa conducalauncicluinnit(deexemplu nGEs-arobt ineEE + TE +T+ T. . .).Teorema3.6Oricelimbaj detipul 2poatesaegenerat deogramaticafararecursiestanga.Demonstrat ie. FieG=(VN, VT, S, P)ogramaticadetipul2; presupunemcaGareunsingursimbolrecursivXsie(A) X u1[u2[ . . . [un[Xv1[ . . . [XvmtoateregulilecareauXnstanga. 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

estedetipul2sinuaresimboluristangrecursive; sevede ns acaY esteunsimboldreptrecursiv.Fiep L(G), SGp. Dacanaceastaderivarenuintervinesimbolul re-cursiv, atunci evidentcaSG

p. SapresupunemcaXintervinelaunanumitpas: Sup, unde u = u

Xu

. Putem aplica, ncep and de la u spre dreapta, nprimulrandregulilepentruXsisaurmarimnumaisubarborelerespectiv,deciG : X GXvj1 GXvj2vj1 G. . . GXvjs . . . vj1 Gujvjs . . . vj1.Aceeasiformapropozit ional aoputemobt ine si ngramaticaG

astfelG

: X G

ujYG

ujvjsYG

. . . G

ujvjs . . . vj1.PrinurmareavemS G

u G

p,adicap L(G

) siL(G) L(G

). Analog,L(G

) L(G).2FormanormalaGreibach.3.3. FORMENORMALEPENTRUGRAMATICIDETIPUL2 59Denit ie3.7O gramatica n forma normala Greibach este o gramatica cu regulideformaA ip, unde A VN, i VTp VN.Se accepta si regula de completare S cu condit ia ca Ssa nu apara n dreaptavreuneireguli.Teorema3.7(Teoremadeexistent aaformei normaleGreibach). Oricegra-maticadetipul 2esteechivalentacuogramatica nformanormalaGreibach.Demonstrat ie. FieGogramaticadetipul 2 nformanormalaChomskysi eVN= S =X1, X2, . . . , Xn. Vomconstrui ogramaticaechivalent acare sasatisfacacerint eledinformanormalaGreibach nmaimulteetape.Etapa I. Vom modica regulile de generare astfel nc at toate regulile care nu suntdeformaX isasatisfacacondit iaXj Xkp, j 2plusregulicuparteastanganeterminalenoi.Infelulacestatoateregulilecareau nstangaX1siX2satisfaccondit iaceruta; ncontinuarej:= j + 1 = 3,etc.EtapaII.Avemacumtreicategoriidereguli:60 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXT(1)Xj i;(2)Xj Xkp, j< k, p VN;(3)Y iq, q VN, i = 1, . . . , m.Aranjam 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 au XN n stanga vor avea forma (1). Fie Xn1 XNp1[ . . . [XNpntoateregulilecareauXN1 nstangasi carenusuntdeforma(1). Efecuamsubstitut iilelui XN;nacestfel regulilecareauXNsi XN1nstangasatisfaccerint eledinformanormalaGreibach.Incontinuare,consideramtoateregulilecareauXN2 nstanga siefectuamsubstitut iile,etc.2FormanormalaoperatorUnadinformeleimportantepentrugramatici independentedecontext, uti-lizata n analiza sintactica prin metoda precedent ei, este forma operator a acestorgramatici.Denit ie3.8O gramatica independenta de contextG = (VN, VT, S, P) se spunecaeste nformanormalaoperatordacaoricarearproduct iaA P, nnuapardouaneterminale(variabile)consecutive,adicaP VN [(VN VT) (VN VT)V2(VN VT)].Teorema3.8Orice gramatica independenta de context este echivalenta cu o gra-matica nformanormalaoperator.Demonstrat ie. FieG=(VN, VT, S, P)ogramaticadetipul 2si L(G)limbajulgenerat. Faraarestrange generalitateapresupunemca ,L(G) si Gestenforma2canonica(regulilesunt deformaA BC, A B, A aveziteorema??). Denimogramaticaechivalent aG

=(V

N, VT, S, P

)astfel: V

N=S (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.SaobservamcaG

estenformanormalaoperator. PentruademonstracaL(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.3.3. FORMENORMALEPENTRUGRAMATICIDETIPUL2 61Funct ia se extinde n mod natural la

: (P2P3P4) P. Vom arata cangramaticaG, w VT,a VTarelocderivareaextremdreaptaAGwafolosindproduct iile 1, 2, . . . , ndacasi numai dacaexistanP

product iile

1,

2, . . . ,

nastfel ca(

i)=i, 1 i nsi nG

arelocderivareaextremdreapta(A, a)G

wfolosindproduct iile

1,

2, . . . ,

n.Sademonstramarmat iaprininduct iedupan,lungimeaderivarii.Dacan=1atunci w=, A a Psi nP

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

atunci w=(dupaformaproduct iilordinG

)siarelocproprietateaenunt ata.Sa presupunem armat ia adevarat a pentru derivari de lungime cel mult n1si saodemonstrampentruderivari delungimen>1. Fieasadar AGwaoderivaredelungimenngramaticaGsi punemnevident aprimaderivaredirecta. Distingemdouacazuri:I.Primaproduct ieutilizata 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.Inacest caz wa =ubva(conformlemei de localizare), astfel caBGub siCGva. Dupaipotezainductiva,vomavea nG

derivarile:(B, b)G

u, (C, a)G

v.CumA BC Pvomavea nP

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 .Inmodanalogsedemonstreazareciproca.62 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTDinaceastaarmat ie,luand nparticularA = S,obt inem:SGwa (S, a)G

w, w VT, a VT.Cum nG

existasiproduct iaS (S, a)a,amgasit: wa L(G)dacasinumaiwa L(G

),deciceledouagramaticisuntechivalente.Pentruancheia demonstrat ia trebuie sa consideramsi 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 corespunzatoare. Consideram acum gra-maticaG1= (VN1, VT, S1, P1)undeV1= V

S1,P1= P

S1 , S1 Scareeste nformanormalaoperator siL(G1) = L(G).23.4 LemaBarHillelCasi ncazullimbajelorregulate,lemaBarHillelpune nevident aurmatoareaproprietateaunuilimbajindependentdecontext: oricecuvantalunuiastfeldelimbaj, sucientdelung, cont ineunsubcuvant(nevid)pecaremultiplicandul deunnumar arbitrar deori, obt inemnoi cuvintecareapart indeasemenealimbajului. Maipoartadenumireadelemadepomparesaulemauvwxy.Nevomreferi nceleceurmeazalagramatici detipul 2 nformanormalaChomsky.Intr-o gramatica de aceasta forma arborii de derivare sunt ntotdeaunaarboribinari.Lema3.2Fie G o gramatica n forma normala Chomsky si Xp, p VG. Dacaceamailungaramuradinarborele /X,pcont inemnoduri,atunci [p[ 2m1.Demonstrat ie. Procedamprininduct ieasupraluim.Pentrum = 2arborelearedouanivele si nmodevident [p[ 2 = 2m1.Presupunemcaproprietateaeste adevarat apentruunmoarecaresi con-sideramunarborecarearepeceamailungaramur am + 1noduri.InderivareaXppunem nevident aprimaderivaredirectaXY Zp.Conform lemei de localizare,p = p1p2si Yp1, Zp2. Arborii de derivare /Y,p1si /Z,p2cont in, ecarepeceamai lungaramur acel mult mnoduri; conformipotezeideinduct ie,avem [p1[ 2m1, [p2[ 2m1. Prinurmare[p[ = [p1p2[ = [p1[ +[p2[ 2m1+ 2m1= 2m.2Observat ie. DacaXp si [p[ > 2m1atunciexista narborele /X,pcelput inoramur acum + 1noduri.3.4. LEMABARHILLEL 63Sv1=Av2=Au v w x ypFigura3.5: Descompunereacuvantuluip.Lema3.3Fie G o gramatica de tipul 2 si e XX1. . . Xmp. Atunci, conformlemei de localizare, p =p1. . . pmsi Xjpj, j =1, . . . , m. Fie /Y,q /X,p.atunciqestesubcuvant ntrunul dincuvintelepj.Demonstrat ie. Neterminalul Y apart ineunuiadinsubarborii /Xj,pj, eacesta/Xk,pk;atunci /Y,q /Xk,pksiq Sub(pk). 2Lema3.4(LemaBarHillel)FieEunlimbaj independent decontext. Atunciexistaunnumarnatural kastfel ncat, dacap Esi [p[>katunci psepoatedescompune nformap = uvwxycuurmatoareleproprietat i:1. vx ,= ;2. [vwx[ k;3. uvjwxjy E, j N,Demonstrat ie. Fien=card(VN). Luamk=2n. Cum [p[ >k=2n, conformobservat ieidelaprimalema,exista narborele /S,pcelput inoramuracun + 2noduri; peaceastaramur aultimul nodesteterminal, deci existan + 1nodurietichetatecuacelasi simbol A. Descompunemcuvantul pca ngura3.5, p=uvwxy.(1)Consideramsubarborele /A,vwxcaruia i corespundederivareaA vwx.Punem nevident aprimulpasABCvwx,si vwx se descompune n vwx = pBpC, BpB, CpCsi pB, pC ,= . Cum /A,w /A,vwx, rezultacawestesubcuvant npBsau npC. Sapresupunemcaw Sub(pC);atuncipB Sub(v) sicumpB ,= rezultav ,= .64 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXT(2)Putem alege nodurile v1si v2astfel ncat pe ramura punctata ncepand delav1 njospan alafrontier asaavemexactn + 1noduri. Rezultaconformlemeiprecedente, [vwx[ 2n= k.(3)putemscriederivarileA w, A vAx. DeciSuAy uvAxy uv2Ax2y . . .uvjwxjy.2Problema nchideriifamiliei /2laintersect ieTeorema3.9Familia /2nueste nchisalaintersect ie.Demonstrat ie. ConsideramlimbajulL3= anbncn[n 1. SaratamcaL3 , /2.Intradevar, sapresupunemcaL3 /2si ekconstantadinlemaBarHillel.Luamn>k/3si ep=anbncn; avem [p[ >k, deci conformacestei lemepsedescompune nformap = uvwxycuvx ,= siuvjwxjy L3, j N.Vom analiza posibilitat ile de constituire a subcuvintelor v si x. Sa presupunemca nv(saux)intr adouadinsimbolurilea, b, c; deexempluv=aabbb. atunciconsideramcuvantul p2=uv2wx2y=uaabbaabbwx2ycarenuarestructuracu-vintelorluiL3(anupoatesaurmezedupab)darconformlemeiBar-Hillelapart inelui L3. Deci, nv(saux)nupotintradoua(sautrei)dinsimbolurilea, b, c. Sa presupunem ca intra un singur simbol; de exemplu v a si x b.Atuncimultiplicand npsubcuvintelevsix, puterilesimbolurilorasibsemaresc iar cramane peloc,contrazicanduse dinnoustructura cuvintelor dinL3.InconcluzieL3nuesteindependentdecontext.FieacumlimbajeleL

3= ambncn[m, n 1L3= anbncm[m, n 1.Se poate vedea usor ca aceste limbaje sunt de tipul 2; gramaticile care le genereazasuntS aS[aA, A bAc[bc sirespectivS Sc[Ac, A aAb[ab.AvemL

3 L3= L3,deciintersect iaadoualimbajedetipul2esteunlimbajcarenuapart inelui /2.2Corolar3.10Familia /2nueste nchisalacomplementariere.Intradevar, sa presupunem ca /2 este nchis a la complementariere si e E1, E2 /2. Cum familia /2este nchis a la reuniune, ar rezulta C(E1) C(E2) /2. Dar(deMorgan)C(E1) C(E2) = C(E1 C(E2) /2.Complementul limbajului C(E1E2) este E1E2si conform presupunerii artrebuicaE1 E2 /2,oricarearE1, E2,ceeacenuesteadevarat.2GeneralizarialelemeiBarHillel Lema lui BarHillel reprezint a o condit ienecesaracaunlimbaj saeindependent decontext. cuajutorul ei sepoatedemonstrarelativusor caanumite limbaje nusunt independente de context.Ideea este aceea ca prin multiplicarea subcuvintelor v si x, de un num ar sucientdeori,secontrazicestructuralimbajului.3.5. AUTOMATEPUSH-DOWN(APD) 65Totusi, nuoricelimbaj carenuestedetipul 2poaterespinsdelemaluiBarHillel. Deexemplu,aceastalemanupoaterespingelimbajulL = anb2m[n, m 1 b,carenuestedetipul2(sedemonstreazapealtacale).Intradev ar,pentruoricep = anb2mluamu = , v= a, w = , x = , y= an1b2m.Putemiterasubcuvintelevsi xfar asacontrazicemstructuracuvintelorlimba-jului.OgeneralizarealemeiBarHillelesteLema3.5(Lema lui Ogden) pentru orice limbaj independent de context L existaoconstantakastfel ncat orice p Lpentrucarecel put inksimboluri suntmarcate,sepoatedescompune nformap = uvwxyastfel ncat1. sauu, v, wsauw, x, ycont inecarecateunsimbol marcat;2. vwxcont inecel multksimbolurimarcate;3. uvjwxjy L, j NCu ajutorul acestei leme se poate arata ca limbajul de mai sus nu este de tipul2,considerandmarcatesimbolurileb.3.5 Automatepush-down(APD)Automatele push-down sunt mecanisme pentru recunoasterea limbajelor indepen-dentedecontext.UnAPDsecompunedin(vezigura3.6):1. O banda de intrare care cont ine simboluri ale unui alfabet de intrare; acestesimboluri constituie pe o banda un anumit cuvant peste alfabetul de intrare.Bandasemiscanumaisprestanga;2. Omemoriepush-down(memorieinvers a,stiva,pila,etc)carecont inesim-boluri ale unui alfabet propriu, numit alfabetul memoriei push-down. Aceastamemorie funct ioneaz a ca o stiva - ultimul introdus,primul extras (Last In,FirstOut);3. Undispozitivdecomandacareseaapermanent ntr-oanumit astarein-ternaapart in andunei mult imi nite de stari. Dispozitivul de comandaposedaundispozitivdecitiredepebandadeintraresi undispozitivdescriere-citire nmemoriapush-down.66 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTi1i2i3...ik...in-1in...Dispozitivdecitire depebandaDispozitiv decomandas SBandadeintrarez0z1zmDispozitivdecitire/ scriereMemoriapushdownFigura3.6: Reprezentareschematic aaunuiautomatpush-down.Casiunautomatnit,unautomatpush-downfunct ioneaz a npasidiscret i;unpasdefunct ionarecomporta:1. Dispozitivul de comada 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 cuvant peste alfabetul memorieipush-down; nparticular, acestapoatesaecuvantul vid, ceeacearecaefect stergereasimboluluidinvarfulmemorieipush-down.Funct ionareaunuiAPDsetermina ngeneraldupaces-acititultimulsimbolalcuvantului scris pe banda de intrare dar este posibil ca el sa efectueze un anumitnumardepasi,citinddeecaredatadepebandacuvantulvid. Deasemenea,esteposibilca ntimpulfunct ion arii,deci naintedeaajungelaultimulsimbol,automatul sase blocheze. De exemplu, automatul ajungentr-ocongurat ie(stare,simbolpebanda,simbol nvarfulmemorieipush-down)inadmisibilasausegolestememoriapush-downdarnus-aepuizatcuvantuldepebanda,etc.Matematic,unAPDsedenesteastfel:Denit ie3.9Unautomatpush-downesteunsistemAPD = (, I, Z, f, s0, z0)unde:3.5. AUTOMATEPUSH-DOWN(APD) 67estemult imeadestari(nitasinevida);Iestealfabetul deintare;Zestealfabetul memorieipush-down;f: (I ) Z T( Z)estefunct iadeevolut ie;s0 estestareainit iala;z0 Zestesimbolul init ial al memorieipush-down.Un APD aren general o funct ioanre nedeterminista, card f(s, i, z) 1; mult imeaautomatelorpush-downdeterministeformeazaoclasaspeciala.In termenii funct iei de evolut ie, un pas de evolut ie comporta citirea simboluluii de pe banda, citirea simbolului z din varful memoriei push-down, apoi, n funct iede starea interna s si de aceste doua simboluri, automatul trece ntr-o noua stares

si scrie n memoria push-down un cuvant q Zastfel ncat (s

, q) f(s, i, z).In cazul n care f(s, i, z) = evolut ia este oprita;este situat ia n care automatulseblochez a.Ostareaautomatului (saucongurat ie) esteunsistem =(s, p, q) undes Sestestareaintern a,p Iestesubcuvantuldepebandadeintrareramasdecitit(inclusivsimbolul dindreptul dispozitivului decitire), iarq Zestesubcuvantuldinmemoriapush-down.VomspunecaunAPDtrecedirectdinstarea1= (s1, p1, q1) nstarea2=(s2, p2, q2)si vomscrie12dacaseexecutaunpasdeevolut 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 evolueaza(far 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 aca, porninddinstareainternas0si avandnvarful memo-riei push-downsimbolul z0, cuajutorul cuvantului pdepebandadeintrare,automatul poatesaevoluezeastfel ncatsagoleascamemoriapush-downdupacitireacuvantului. Ment ion amcagolireamemoriei push-downnutrebuienea-paratsacoincidacucitireaultimului simbol al lui p; esteposibil caautomatulsamaiefectuezecat ivapasicitinddepebandasimbolul.(2) Limbajul recunoscut de un APD cu stari nale; n denit ia automatului seadaugaosubmult imefaluinumitamult imeadestarinale. Prindenit ie,limbajulrecunoscutdeunAPDcustarinaleeste:L(APD) = p[p I(s0, p, z0)(s, , q), s f, q Z.68 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTPrinurmare, estenecesarcadupacitirealui p, eventual dupa ncacat ivapasi,APDsaajunga ntr-ostarenala. Vomvedeacaceledouadenit iisuntechiva-lente.Limbajerecunoscutedeautomatepush-downcugolireamemoriei. Vomarata ca familia limbajelor recunoscute de APD cu stari nale coincide cu familialimbajelorindependentedecontext.Infelul acesta, APDconstituiemecanismeanaliticededenirealimbajelordetipul2.Teorema3.11Unlimbaj esteindependentdecontextdacasi numai dacaesterecunoscutdeunautomatpushdowncugolireamemorieipushdown.Demonstrat ie. ParteaIE /2E= L(APD).Fie G = (VN, VT, S, P) o gramatica de tipul 2 n forma normala Greibach caregenereazalimbajulE. Construimunautomatpushdownastfel:APD = (s, VT, VN, f, s, S),funct iadeevolut ieinddenitade:A ip P (s, p) f(s, i, A),altfel .Fiep L(G), p=i1. . . in, SGp. Aceastaderivaretrebuiesaaibaforma(extremstanga):(A) Si1X1u1i1i2X2u2u1i1i2i3X3u3u2u1. . . i1. . . in,undeu1, u2, u3, . . . VN= Z.Observat ie. Aparent, parteausus1. . . u1semarestecuecarederivaredi-recta.Inrealitate, uneledincuvinteleujsunt vide, si anumeatunci candseaplicaoreguladeformaXi; nparticular,nultimelederivari directeseaplicanumairegulideaceastaforma.AvemS i1X1u1 (s, X1u1) f(s, i1, S),X1 i2X2u2 (s, X2u2) f(s, i2, X1),X2 i3X3u3 (s, X3u3) f(s, i3, X2),. . ..Prinurmareautomatulpoatesaaibaurmatoareaevolut ie:(s, i1i2i3i4. . . in, S)(s, i2i3i4. . . in, X1u1)(s, i3i4. . . in, X2u2u1)(s, i4. . . in, X3u3u2u1). . . .Daca comparam aceasta evolut ie cu derivarea (A) putem observa ca pe bandade intrare avem la ecare pas partea complementar a a cuvantului (fat a de derivare)iarn memoria push-down se reproduce partea de neterminale din formele propozit ionale3.5. AUTOMATEPUSH-DOWN(APD) 69alederivarii. Cum nderivareseajungelai1. . . in, nevolut iesevaajungela(s, , ).Decip L(APD) siL(G) L(APD).Fieacump L(APD); vatrebui saarat amcap L(G), deci caSGp.Vomarataoimplicat iecevamaigenerala, sianume,pentruoriceu VN,avem(s, p, u)(s, , )uGp.Inparticular,dacau = Sobt inemimplicat iadorita.Procedamprininduct ieasupralungimiiluip.Daca [p[ =1, atunci p =i, u =Xiar evolut ia va avea unsingur pas(s, i, X)(s, , ), deci (s, ) f(s, i, X)si Xi P. Putemscrieu=X Gi = p.Presupunemcaimplicat iaesteadevaratapentruuncuvant [p[ =l si con-sideramunpastfel ncat [p[ =l + 1. Fieisi Xprimelesimboluri dinpsi u,deci p = ip

si u = Xu

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

, Xu

)(s, p

, vu

)(s, , ).Dindenit iaevolut ieidirecterezultaca(s, v) f(s, i, X)deciX iv P. Pedealtapartedinipotezainductivarezultacavu

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

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

) i,70 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTundes

.Saobservamcagramaticaastfel construitaesteindependentadecontext,sianume nformanormalaGreibach.Fiep L(APD),deci(s0, p, z0)(s

, , );trebuiesaaratamcas0Gp.Vomarataimplicat iacevamaigenerala(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.Dacal =1atunci (s, p, z)(s

, , ), deci p =i si (s

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

) iesteoregula,adicaputemscrie(s, z, s

)i = p.Presupunem ca implicat ia este adevarata 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 nc at(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. Dupa efectuarea unui pas, automatul trece n stareas

1,mut abandacuopozit iesprestanga,extragepez1siscrie nmemoriapush-downuncuvantq(situat iab). Sepoateobservacaz2acoborat;cum stimcamemoria push-down se goleste (p L(APD)), trebuie ca la un moment dat z2saajunga nvarfulstivei(situat iac).Inacestmomentparteadinpcititavap1iarstarea ncareaajunsautomatulonotamcus2. Esteclarcadacapebandaamaveascrisnumaip1amaveaevolut ia(s1, p1, z1)(s2, , ).3.5. AUTOMATEPUSH-DOWN(APD) 71Analogp2, . . . , pm.Dindenit iaderivariidirecte(s, i1p

, z)(s1, p

, z1. . . zm)avem(s1, z1. . . zm) f(s, i1, z)iar nPvaexistaregula(s, z, s

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

)undeluamstariles2, . . . , smcelerezultateladescompunerealui p

. Pedealtaparte,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.Dupacumamvazut,rezultamaidepartep L(G) siL(APD) L(G).Pentruademonstraincluziuneainversa,vomaratamai nt aiimplicat ia(s, z, s

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

)implica(s, p, z)(s1, , z1. . . zm).Procedamprininduct ieasupralungimiiderivariil.Dacal = 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 iaesteadevarat 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).Rezulta(s1, z1. . . zj1) f(s

j1, i, z

j1) siputemscrieevolut ia(s

j1, i, z

j1)(s1, , z1. . . zj1).Pedealtaparte,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)72 CAPITOLUL3. LIMBAJEINDEPENDENTEDECONTEXTsiimplicat iaestedemonstrata.Fieacump L(G), deci s0Gp. T inandseamadeformaregulilordinG,naceastaderivaresevaaplicaprimadataoreguladeforma(1),apoireguladeforma (2) iar la sf arsit reguli de forma (3). La aplicarea regulilor (2) putem rescrielaecarepassimbolulneterminalcelmaidinstanga,decisaobt inemoderivareextremstang a. Saobservamca nacestcazstructuraformelorpropozit ionaleintermediareesteceament ionata,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

siputemscrie(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.12Un limbaj este recunoscut de un automat push