1 / 137

AUTOMATI I FORMALNI JEZICI

AUTOMATI I FORMALNI JEZICI. Franjo Jović ETF Osijek 200 8 /0 9. Literatura. 1. Kfoury, A.J. Moll, R.N. Arbib, M.A.: An Introduction to Formal Language Theory, Springer Verlag 1982. 2. Glynn Winskel: The Formal Semantics of Programming Languages, MIT Press IV ed. 1997.

nuncio
Download Presentation

AUTOMATI I FORMALNI JEZICI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AUTOMATI I FORMALNI JEZICI Franjo Jović ETF Osijek 2008/09

  2. Literatura • 1. Kfoury, A.J. Moll, R.N. Arbib, M.A.: An Introduction to Formal Language Theory, Springer Verlag 1982. • 2. Glynn Winskel: The Formal Semantics of Programming Languages, MIT Press IV ed. 1997. • 3. Siniša Srbljić: Uvod u teoriju računarstva, Element Zagreb, 2007. • 4. Siniša Srbljić: Prevođenje programskih jezika, Element Zagreb, 2007.

  3. 1. Uvod • Gorgije: “Sve kada bismo i mogli prepoznati bitak, ne bismo mogli tu spoznaju priopćiti” • Sredstvo govora je “značenje”. Značenje je osnovno obilježje koje pokazuje bitak u svojem cijepanju (subjekt/objekt). Riječima, jezikom, značenje postaje razumljivo i upotrebljivo (Jaspers).

  4. Uvod/2 • Znakovi i riječi: • Znakovi su proizvoljni, a riječi su nastale domišljanjem te nose puno bogatije značenje • Znakovi su jednoznačni, riječi su višeznačne, one su iz osviještenog smisla, supstancije, predmetnosti, iskustva • Znakovi imaju konačno značenje, riječi nosi ono spoznatljivo • Znakovi su nadomjestivi i dati definicijom, riječi su nezamjenjive pa i nekako neprevodive (ideja, duh, zanos) • Znakovi su do kraja jasni, u riječima uvijek ostaje nešto zagonetno, one prenose neki ugođaj

  5. 1.1 Jezik parnih zagrada • Razvoj teorije formalnih jezika potječe od Noama Chomskog (‘50) i razvoja formalne specifikacije računalskog jezika ALGOL 60. • Chomski je težio ograničenju mogućeg broja pravila za što je klasa gramatika zvana beskontekstne gramatike dala mogućnost stvaranja “dubokih struktura” na kojima su te transformacije operirale. Takve gramatike su se pokazale uspješnima u opisu osnovne sintakse mnogih programskih jezika. • Chomski je to pokušao primijeniti i na obradu prirodnih jezika, te na sučelja prirodnih jezika

  6. Jezik parnih zagrada/2 • Jezik parnih zagrada ima osnovnu ulogu u računarskoj znanosti jer služi kao obilježje programskih početaka i završetaka te kod algebarskih operacija. • Induktivna specifikacija svih legalno uravnoteženih nizova lijevih i desnih zagrada glasi: • 1. Niz ( ) je dobro oblikovan. • 2. Ako je niz znakova A dobro oblikovan tada je to i niz (A). • 3. Ako su nizovi A i B dobro oblikovani tada je to i niz AB • Drugačije pisano: 1. S →( ), 2. S→(S), 3. S→SS; • Primjer:S→SS→(S)S→(())S→(())(S)→(())(SS)→(())(()S)→(())(()())

  7. 1.2 Gramatike i jezici • Neka je X abeceda. Označimo s X* skup svih konačnih nizova znakova iz X. Taj neizmjerni skup uključuje i prazni niz λ. Za X = {(,)}to je skup svih konačnih nizova zagrada usklađenih ili neusklađenih. • Neki jezik L na X je bilokoji podskup X*-a. • Jezik usklađenih zagrada M je također jezik jer je M podskup od{(,)}*. • Svaki niz w u L ima konačnu dužinu |w|. • Def.1.Rječno strukturirana gramatika G je četvorka (X,V,S,P) gdje su X i V disjunktne konačne abecede, i • X je krajnja gramatička abeceda • V je unutarnja ili promjenjiva gramatička abeceda

  8. Gramatike i jezici/2 • S je početni znak gramatike • P je skup pravila gramatike, pisan obično kao par v→w, gdje je v neprazni niz iz (XV) dok je w proizvoljni element iz (XV)*. • Tako gramatiku parnih zagrada možemo pisati kao • G=({(,)}, {S}, S, {S→(), S→(S), S→SS} • Obično se velika latinska slova koriste za varijable, a brojke ili mala slova za krajnje znakove. • Definicija 2: Za neku gramatiku G i konačni niz znakova y i z iz XV pišemo y→z i kažemo da y proizvodi z izravno ako z možemo dobiti iz y izravnom zamjenom u datoj gramatici za dati događaj jezika. Operator y→*z bio bi povratno tranzitivno zatvoren operator od →.

  9. Gramatike i jezici/3 • Def.3: Gramatika G neka ima startni znak S. Jezik generiran tom gramatikom L(G) je skup konačnih nizova dobiven iz startnog znaka L(G) = {w|wεX* i S→*w} gdje je w neka rečenična forma. Tako je L(G) skup rečeničnih konačnih oblika. • Primjeri: • 1. P = {S→aSb, S→ab} te je L(G)= {anbn, n>0}. • 2. P = {S→aSa, bSb, a, b, λ} te je L(G)= {ww’, w’=winv, w={a,b}*} ili binarni palindromni niz. • 3. P = {S→0B,1A; A→0, 0S, 1AA; B→1, 1S,0BB}, L(G)= {0,1}, tj niz s brojem jedinica jednak broju ništica.

  10. Gramatike i jezici/4 • Dokaz za primjer 3: • a) gramatika generira samo nizove jednakog broja ništica i jedinica, b)svi takvi nizovi su izvedivi iz date gramatike. • a) dokažimo: da se samo jednaki brojevi 1 i 0 dobivaju sa S izvodima; da se bilo koji niz dobiven iz A ima samo jednu ništicu viška; bilo koji niz izveden iz B ima samo jednu jedinicu viška • b) dokazujemo induktivno preko činjenice da ako niz počinje s 0 onda je primijenjeno pravio 0B, a ako počinje s 1 onda je primijenjeno pravilo 1A. A generira 1 a B generira 0 i.t.d

  11. Gramatike i jezici/5 • Primjer 4: Razmotrimo gramatiku: S→aSBC| aBC; CB→BC; aB→ab; bB→bb; bC→bc; cC→cc. • Koristeći prvo pravilo n-1 puta, drugo jednom, treće n-1 puta, četvrto jednom, peto n-1 puta, šesto jednom i sedmo n-1 puta dobivamo: L(G) = anbncn; • Možemo pokazati da L(G) ne sadrži drugih riječi. • Komentar: gramatika iz ovog primjera nije beskontekstna! Tako vrijedi: (BC)3 = BCBCBC = (primjenom trećeg pravila tri puta) = BBBCCC

  12. 1.3 Beskontekstne i KO gramatike • Def.1: Gramatika je beskontekstna ako je v neterminal za bilo koji izvod v→w u P.Jezik je beskontekstan ako ga stvaramo primjenom pravila BK gramatike. • Def.2: Gramatika je kontekstno osjetljiva (KO) ako su pravila isključivo oblika yAz →ywz ili S→λ, s time da se S nikada ne pojavljuje na desnoj strani nijednog pravila • Činjenica: Svaka gramatika s pravilima v→w, s |v|<|w| osim jednog pravila tipa S→λ, ako se S ne pojavljuje ni na jednoj desnoj strani nekog pravila, ima ekvivalentnu KO gramatiku G’tako da postoji ekvivalencija L(G) = L(G’).

  13. Beskontekstne i KO gramatike/2 • BK izvodi posjeduju korisno i elegantno predstavljanje u obliku stabala izvoda, primjer 0011, 000111 • Ako se niz može dobiti legalnim postupkom iz BK gramatike tada postoji stablo izvoda T sa svojstvima: • 1)Korijenski čvor označuje se startnim znakom npr S; • 2) Svaki čvor koji nije list označava se varijablom; • 3) Svaki čvor koji je list označava se terminalnim znakom; • 4) Čvor označen s A ukoliko ima k izravnih slijednika N1 …Nkoznačavaaktivaciju pravila A→A1A2A3…Ak; • 5) Neki izraz dobiven izvodimadate gramatike može se očitati čitanjem listova s navedenim izvodima slijeva udesno.Stablo izvoda ne daje poredak primjene pravila.

  14. Beskontekstne i KO gramatike/3 • Redoslijed izvođenja izvoda ne mora se vidjeti na stablu izvoda; tako su moguća najljevija i najdesnija derivacija niza 0011 kao • S→0B→00BB→001B→0011, ili kao • S→0B→00BB→00B1→0011. • Duljina puta iz korijena do lista definira se kao broj neterminala na tom putu. • Predmet sintaktičke analize (način na koji prevodimo riječ, parsing) je rekonstrukcija stabla izvoda • Def.3: Gramatika je jednoznačna ako svaka proizvedena riječ ima jedinstveno stablo izvoda.

  15. Bezkontekstne i KO gramatike/4 • Duljina puta: broj čvorova-1= broj lukova • Potpuno stablo grananja m i visine k se izvodi tako da svaki čvor osim lista ima točno m slijednika • Svaki list nalazi se na putu duljine k • Takvo stablo ima mk listova i (mk+1 -1)/(m-1) čvorova • Lema: Stablo grananja m i visine k ima najviše mk listova i najviše mk+1 -1 čvorova • Neka je G KO gramatika i z εL(G) riječ, čije stablo izvoda izgleda kao na slici 1.

  16. Bezkontekstne i KO gramatike/5 • z=uvwxy ; slika 1.S u A y v A x w

  17. Bezkontekstne i KO gramatike/6 • Pod kojim uvjetima možemo garantirati da se ovakva situacija mora pojaviti u stablu? • Neka je m grananje najveći broj znakova koji se pojavljuju s desne strane produkcije iz G i k:=broj varijabli. Na stazi duljine k ima k+1 varijabla pa se na stazi duljine k mora ponoviti neka od varijabli. Ako je z element iz L(G) i |z|>mk onda stablo ima visinu barem k+1, zbog leme. • Iz stabla izvoda (1) možemo izbaciti “srednji dio i dobivamo z=uwx iz L(G) sl.2 ili ponoviti srednji dio i dobivamo z=uvvwxxy, sl.3, ili općenito vrijedi uvnwxny el L(G), n>=0.

  18. Beskontekstne i KO gramatike/7 S • Slika 3. • Slika 2. S u A y U A y v A x w v A x w

  19. uvwxy lema za BK jezike • Ako je L neki BK jezik, onda postoje konstante p i q takve da vrijedi: čim je zL i |z|>p onda je • 1)z=uvwxy, 2) |vx|>0, 3) |vwx|<q i 4) uvnwxny L, n>0 • Dokaz: Prvo dokazujemo da možemo izabrati dva nastupa iste varijable na istom putu tako da istodobno v i x nisu prazne riječi. Pretostavimo suprotno tj kako god izabrali dva nastupa iste varijable na istom putu, imamo v=x=ε. To znači da stablo izvoda riječi možemo pojednostaviti na način sa slike 3. na sliku 2. U svakom trenutku pojednostavljenja imamo ili v=ε=x ili na putu nema ponavljanja iste varijable.Na kraju ćemo imati to da nema ponavljanja iste varijable ni na jednom putu pa niti jedan put nije dulji od k. To znači da prema lemi riječ, čije stablo izvoda smo promatrali, nema duljinu veću od mk. Kontradikciju dobivamo ako krenemo od riječi z L čija je duljina veća od mk (|z|>p= mk ). Dakle dokazali smo 1),2) i 4).

  20. uvwxy lema za BK jezike/2 • Da postoji q iz 3) vidi se ako uzmemo dva pojavljivanja iste varijable na istom putu a koje su najudaljenije od korijena. Tada na tom podstablu nema drugih pojavljivanja dviju istih varijabli na istom putu iz čega slijedi da je visina tog podstabla najviše k+1 pa prema lemi ono ima najviše m k+1 listova tj vrijedi • |vwx| < m k+1 , ili q= m k+1q.e.d. • Ako se jezik stvara iz gramatike koja nije BK ne možemo neposredno zaključiti nije li jezik stvorila neka BK gramatika. • No ako se neki beskonačni jezik ne ponaša prema uvwxy lemi ne može ga stvoriti neka BK gramatika!

  21. uvwxy lema za BK jezike/3 • Primjer. Jezik {anbncn ,n≥0} nije BK. • Dokaz: Pođimo od kontradikcije da je jezik BK. Tako da postoje p i q iz leme o pumpanju. Razmotrimo niz arbrcrsa r>p i r>q. Tada se lema može primijeniti na taj niz koji napišemo kao z=uvwxy. Dio vwx može pasti 1) potpuno unutar a bloka, b bloka ili c bloka; ili 2) može pasti preko neke od granica, a-b ili b-c granice. Ne može pasti preko obje granice jer nije dovoljno dugačak uz naš izbor r-a. Sada za svaki od slučajeva razmotrimo napumpani niz uvvwxxy. U tom nizu broj najmanje jednog od znakova a, b ili c ne može se tim postupkom povećati, pa se niz oblika anbncn ne može dobiti. A to je kontradikcija. q.e.d.

  22. 1.4 Programi, jezici i parsiranje • BK jezici su dovoljno dobri mehanizmi za specifikaciju sintakse programskih jezika. Razmotrimo specifikacijske mehanizme. Npr. kod jezika • S →if C then S else S||if C then S||a||b; C→p||q • imamo S kao neterminalni iskaz, C je (uvjetni) neterminal, a i b su rečenični terminali a p i q su uvjetni terminali, dok su if, then i else terminali kao rezervirane riječi. • Ova gramatika generira dvosmisleni jezik jer iskaz • ifpthenif q then a else b može generirati na dva interpretativno različita načina tj na • ifpthen(if q then a elseb) ili na ifpthen(if q then a)elseb. • alternativna gramatika koje nije dvosmislena bila bi:

  23. Programi, jezici i parsiranje/2 • G: S→S1||S2; S1→if C then S1 else S2 || T; S2→if C then S ||if C then S1 else S2 ||T; C→p||q; T→a||b, ova gramatika generira samo jedan mogući izvod niza tj ifpthenif q then a else b. • Def. 1: Neka BK gramatika je dvosmislena ako neki niz x u L(G) ima dva različita stabla izvoda. Gramatika je jednoznačna ako nije dvoznačna a jezik L je inherentno dvoznačan ako je svaka gramatika od L dvoznačna. • Drugo svojstvo jednoznačne gramatike jest mogućnost konstrukcije stabla izvoda induktivno iz jezika (niza znakova) dakle unazadnim izvodom niza korištenjem pravila gramatike tog jezika. Unazadni izvod stabla iz niza naziva se problem parsiranja. Može se izvesti od listova, tj niza (odozdola) ili od korijena stabla (odozgora)

  24. Programi, jezici i parsiranje/3 • Primjer: • Iz gramatike (1) E → E+T; (2) E→T; (3) T→T*F; (4) T→F; (5) F→(E); (6) F→2; treba odlučiti pripada li niz 2 + 2*2 toj gramatici? • Primjenom inverza pravila (6), (4), (2), (6) i (4) dobiva se 2+2*2 ←E + T*2. • Nakon toga moguće su primjene triju inverza • - pravila (1) što daje E*2 • - pravila (2) što daje E + E*2 • - pravila (6) što daje E + T*F • Posljednji put vodi k rješenju primjenom inverza pravila (3) i (1). • Ovaj primjer ilustrira mogući nedeterminizam u procesu parsiranja.

  25. 2. Gramatike i strojevi • 2.1 Hijerarhija Chomskog • Uvođenjem manje ograničenih pravila na strukturu proizvodnih pravila neke gramatike prelazimo lako iz BK u ostale vrste gramatika. Tako npr. pravilo bC→bc uvodi u neku gramatiku kontekstnu osjetljivost jer se terminal c može proizvesti samo u kontekstu terminala b. • Def.1: Neka je gramatika KO ako je svako pravilo oblika • (1) yAz→ywz gdje su A neterminal, y,z su iz skupa (V un X)* w je iz skupa (V un X)+ ili oblika • (2) S→λ, s time da se S ne pojavljuje niti na jednoj desnoj strani nijednog pravila • KO gramatika stvara KO jezik.

  26. 2.1 Hijerarhija Chomskog • Def.1: Neka gramatika G=(V,X,S,P) je desno linearna ako je svako pravilo oblika A→bC ili A→b, gdje su A i C u V, a . Jezik koji stvara takva gramatika je desno linearan jezik. • Ispada da će se moći razlikovati četiri klase jezika koji čine hijerarhiju jezika: desno linearni jezik kao podskup BK jezika, ovaj kao podskup KO jezika a ovaj kao podskup sustava s neograničenim sustavom pisanja pravila. • Lema o praznom nizu: ako je prazni znak dio gramatike G tada je moguće proizvesti gramatiku G’ koja neće imati nijedno lambda pravilo ukoliko niz w nema praznih znakova; ako ima prazan znak tada će se G’ moći izraziti jednim pravilom o praznom znaku.

  27. 2.1 Hijerarhija Chomskog /2 • Def. 2: Neka je G=(V, X, S, P) neka gramatika. Tada G klasificiramo kao vrste i, i=0, 1, 2, 3, prema sljedećim ograničenjima na oblike zamjena pravila P: • Bilo koja gramatika je nulte vrste. Nema ograničenja oblika pravila te gramatike. • Gramatika je prve vrste ako postoji barem jedno pravilo u P oblika yAz- ywz gdje su A neterminal, y,z su iz skupa (VX)*, z nije neprazan znak, w je iz skupa (VX)+ ili jedno pravilo oblikaS→λ, s time da se S ne pojavljuje niti na jednoj desnoj strani nekog pravila. To su kontekstno osjetljive gramatike i stvaraju KO jezik.

  28. 2.1 Hijerarhija Chomskog /3 • Neka je gramatika druge vrste ako je svako pravilo P oblika *.Ovo su beskontekstne gramatike i proizvode beskontekstne jezike. • Neka je gramatika treće vrste ako su sva pravila u P oblika A→bC ili A→b, gdje su. Te se gramatike također nazivamo desno linearnim gramatikama. One stvaraju desnolinearni jezik. • Hijerargija Chomskog je striktna hijerarhija klasa jezika: • . • Dokaz: moraju se dokazati sve tri striktnosti!

  29. 2.2 Svojstva zatvorenosti • Teoretičari jezika zanimaju načini na koje se dati jezici, skupovi riječi, mogu slagati u nove oblike. Uobičajeno je slagati riječi nekog jezika u tri osnovna oblika: • Def.1: Neka su L1 i L2 dva jezika iste abecede X. Tada definiramo • 1) • 2) • 3) gdje su potencije od L1 definirane kao

  30. Svojstva zatvorenosti/2 • Osnovni korak: L10 ={λ} • Korak indukcije: L1n+1= L1n• L1 za n≥0 • Tako je L11= L1 , L12= L1• L1 itd. • Kažemo da je klasa jezika zatvorena pod nekom jezičkom operacijom ako, kadagod primijenimo tu operaciju na jezik koji pripada toj klasi, dobivamo drugi jezik te iste klase. Formalnije: • Def.2: Odredimo abecedu X. Neka je L klasa jezika na X. Neka je α neki binarni operator na jezicima tj α: 2X* x 2X* → 2X* ,(L1,L2) →α(L1,L2); i neka je β neki unarni operator na jezicima tj β: 2X* → 2X* , L→ β(L). • Tada kažemo da je L zatvoren pod α ako je α(L1,L2) u L za svaki L1 , L2 u L i da je L zatvoren pod β ako je β(L) u L za svaki L u L. • Teorem 3: Obitelji tipskih jezika i zatvorene su pod operatorom unije ulančenja i iteracije za svaki i = 0, 1, 2, 3.

  31. Svojstva zatvorenosti/3 • Opća strategija dokaza se sastoji od razmatranja operacija jedna po jedna. Za definitnost razmotrimo ulančenje (∙) BK jezika. Iz G1 i G2 konstruira se nova gramatika G’. Tada uviđamo da ako su G1 i G2 BK da je tada i G’ isto tako BK i da vrijedi L(G’) = L1 ∙L2, pa je L2 obitelj BK jezika, zatvorena pod operacijom ulančenja.

  32. Svojstva zatvorenosti/4 • Stav: Desno linearna gramatika je zatvorena pod operacijama komplementa i presjeka. Komplement se definira kao (2.3.5 ref.1) komplement binarnog iskaza varijable pa vrijedi deMorganov zakon • Za zatvorenost pod komplementom vidjeti 2.3 stav 8.

  33. Svojstva zatvorenosti/5 • Teorem 5: BK jezici nisu zatvoreni pod operacijama presjeka ili komplementa. • Dokaz: Razmotrimo jezike L1={anbncm|n,m > 0}, L2= ={anbmcm|n,m > 0}. Sada je svaki jezik za sebe BK, vježba! Ali • nisu: njihov presjek daje neBK jezik ={arbrcr|r > 0} kao što je pokazano u primjeru 1.3.5 . Za dokaz pri operaciji komplementa primijenite deMorganov zakon kao u prethodnom dokazu.

  34. 2.3 Jezici s konačnim brojem stanja i regularni jezici • Prikazujemo algebarski opis desno linearnih jezika kao jezika koje obilježavaju regularni izrazi. • Definicija 1: Neka je X neka konačna abeceda. Neki je jezik L podskup od X* regularan ako je L konačan, ili ako se L može dobiti induktivno koristeći sljedeće operacije: • L je L1 L2, unija L1 i L2 gdje su L1 i L2 regularni; ili • L je L1∙L2, ulančenje L1 i L2 gdje su L1 i L2 regularni; ili • L je L1*, ponavljanje od L1, gdje je L1 regularan. Zamijetimo da su jezici {ab}*∙{a} ili {a,b} također regularni. Iz svojstava zatvorenosti slijedi neposredno:

  35. 2.3 Jezici s konačnim brojem stanja i regularni jezici/2 • Stav 2: Svaki regularni skup je neki desno linearni jezik. • Definicija 3: Neka je X konačna abeceda. Definiramo regularne izraze R i njihova regularna skupovna obilježja S(R) kako slijedi - Ø je neki regularni izraz sa S(Ø) = Ø, prazni skup. - λ je neki regularni izraz sa S(λ) = {λ}. - Ako je a ε X tada je a regularni izraz sa S(a) = {a}. - Ako su R1 i R2 regularni izrazi tada je i (R1+R2) regularni izraz sa S((R1 + R2)) = S(R1) S(R2). - Ako su R1 i R2 regularni izrazi tada je i (R1∙R2) regularni izraz sa S((R1∙R2)) = S(R1) ∙ S(R2). - Ako je R regularan tada je i (R)* regularan sa S((R)*) = (S(R))*.

  36. 2.3 Jezici s konačnim brojem stanja i regularni jezici/3 • Primjeri: • (a+b)* označava sve nizove na X = {a,b} • (a*∙b*)* označava sve nizove na X = {a,b}; zašto? • (aa + bb)* = ((a∙a) + (b∙b))*označava sve konačne nizove a-ova i b-ova koji se sastoje od ulančenih parova a-ova i parova b-ova (nastavljamo u skraćenom obliku) • aa(b*+aaa)c+(a+c)* je izraz za tri podjezika (1) svih nizova dvostrukih a-ova koje slijedi bilo koji broj b-ova koje slijedi jedan c, (2) jednonizni jezik {aaaaac} i (3) jezik načinjen od svih nizova a-ova i c-ova.

  37. 2.3 Jezici s konačnim brojem stanja i regularni jezici/4 • Primjer 4: Razmotrimo regularni izraz (b*+(ab)*). Da bismo našli desnolinearnu gramatiku za ovaj izraz prvo oblikujmo gramatiku za b*: S1→bS1||λ. Tada oblikujemo jednu (ab) gramatiku: S2→aB2, B2→b. Ovo se može iterirati dodavanjem S2→λ, B2→bS2. Konačno puni jezik dobiva se dodavanjem S→bS1||λ||aB2 dajući • S→bS1||λ||aB2 • S1→bS1||λ • S2 →aB2||λ • B2 →bS2||b

  38. 2.3 Jezici s konačnim brojem stanja i regularni jezici/5 • Uvodimo osnovnu klasu računalnih naprava ili automata zvanu prihvatnici s konačnim brojem stanja (FSA – finite state acceptors). Ove narave ocjenjuju legalnost nizova neke konačne abecede. • Primjer 5: FSA dat slikom 4. prihvaća jezik ((0+1)0*1)*. 0 0 q0 q1 1 Slika 4. 1

  39. 2.3 Jezici s konačnim brojem stanja i regularni jezici/6 • Definicija 6: FSA M s ulaznom abecedom X određuje četvorka (Q, δ, q0, F) gdje su: Q konačni broj stanja automata, δ: Q x X→Q funkcija prijelaza stanja, q0 el Q je početno stanje a F je podskup skupa Q kao skup prihvatnih stanja. • U primjeru 5 je četvorka data kao ({q0,q1}, δ, q0, {q0}), a konačna funkcija δ određena je tablicom

  40. 2.3 Jezici s konačnim brojem stanja i regularni jezici/7 • Ponašanje nekog FSA M na nizu w u X* može se opisati kako slijedi: M započinje u stanju q0 i čita najljeviji znak w-a. Ovisno o q0 i pročitanom znaku M se prebacuje u neko sljedeće novo stanje. Prijelaz vodi funkcija δ koja preslikava par znak/simbol u novo stanje. Tada se čita sljedeći znak w-a i ponavlja upotreba δ funkcije. Ako se nakon čitanja zadnjeg znaka w-a FSA nalazi u nekom od stanja F onda se niz w smatra prihvaćenim od M. Obilježimo li sa T(M) skup nizova w ε X* koje prihvaća M tako da ga šalje iz stanja q0 u neko od stanja F. Pokušajmo opisati svojstva skupa nizova koji mogu biti T(M) za neki M. Navodimo da je podskup L od X* neki jezik konačnog stanja (FSL) ako je jednak T(M)-u za neki FSA M.

  41. 2.3 Jezici s konačnim brojem stanja i regularni jezici/8 • Stav 8: Svaki FSL je desno linearni jezik. Štoviše, FSL jezici su zatvoreni pod komplementom. • Dokaz: Neka je L=T(M) s M = (Q, S, q0, F). Tada vidimo da je L= L(G) za desnolinearnu gramatiku G = (X; Q; q0, P) gdje je skup pravila P = {q→xq’||q’εδ(q,x)} {q →x||δ(q,x) ε F}. Može se provjeriti da vrijedi q→wq’ u G akko je δ*(q,w) =q’. Tada slijedi neposredno da vrijedi q0→w za w u X* upravo u slučaju kada je δ*(q0,w) ε F, tj akko je w u T(M). • Da bi se pokazalo da su FSL zatvoreni pod komplementom pretpostavimo da je L=T(M) za M=(Q, δ,q0,F). Tada je Lkompl = X* - L upravo T(Mkompl) za stroj Mkompl,,gdje je Mkompl = =(Q, δ,q0,Q-F) s komplementarnim skupom prihvatnih stanja. • Sada se može dokazati i obrat stava 2. tj da je svaki FSL neki regularni skup!

  42. 2.3 Jezici s konačnim brojem stanja i regularni jezici/9 • Primjer 10: • Razmotrimo M dat slikom 5. 1 Slika 5. q1 0 0 0 q0 q2 1

  43. 2.3 Jezici s konačnim brojem stanja i regularni jezici/10 • Razmatranjem grafa stanja odlučujemo dodati stanje q1 kao zadnje pa pišemo T(M) = A02 A01∙A11*∙A12, gdje su Aij skup nizova koji nas vode iz qi u qj a da ne koriste q1 kao međustanje. Jasno je da vrijedi: • A02 = 1; A01 = 0 + 1∙0*∙1; A11= 1+ 0∙0*∙1; A12= 0∙0*. • Tako zaključujemo da je • T(M)= 1+(0+ 1∙0*∙1)∙(1+ 0∙0*∙1 )*∙(0∙0*). • Ukoliko želimo dokazati da je svaki desno linearni jezik FSL nailazimo na problem; razmotrimo DL gramatiku: • S→aQ1, Q1→bF||b, S→aQ2, Q2→aF||b. Ovo vodi na stroj sa slike 6.

  44. 2.3 Jezici s konačnim brojem stanja i regularni jezici/11 • Slika 6. Q1 a b S F Q2 a b

  45. 2.3 Jezici s konačnim brojem stanja i regularni jezici/12 • Definicija: Nedeterministički prihvatnik konačnih stanja (NDA) M s ulaznom abecedom X određen je četvorkom (Q,δ,Q0,F) gdje Q konačni skup stanja, δ je QxX→2Q i pridjeljuje svakom ulaznom paru (q,x) jedan skup δ(q,x) podskupa od Q mogućih sljedećih stanja, Q0 podskup od Q je skup početnih stanja te F kao podskup prihvatnih stanja. • Vidimo da je NDA poput FSA samo što posjeduje skup početnih stanja i skup mogućih sljedećih stanja. Ovo znači da postoje višestruke staze prolaza NDA-o; neke završavaju u prihvatnim a neke u neprihvatnim stanjima automata. Ova nizvjesnost rješava se odlukom da se wεX* prihvaća ako postoji barem jedan put koji završava prihvatnim stanjem.

  46. 3. Potisni automati i BK jezici • 3.1 Potisni automati • Složajni ili potisni automati rade na složaju operacijama “stavi” (push) ili “uzmi”(pop) sa složaja, čime stavljaju ili uzimaju element na vrhu složaja slika 4. Vrh stoga, element na vrhu je V V N Slika 4. Operacijom “uzmi” se V miče s vrha stoga, a N zauzima njegovo mjesto

  47. 3.1 Potisni automat/2 • Primjer 1: • Razmotrimo jezik {w|w el (a+b)*, w je niz jednakog broja a-ova i b-ova}. Ovaj niz prihvaća stog prema sljedećem algoritmu. U početku je stog prazan. Automat snima niz w slijeva udesno i izvodi operacije zasnovane na tekućem znaku na vrhu stoga: • 1) ako je stog prazan a tekući znak w-a je a stavlja A na stog • 2) ako je stog prazan a tekući znak w-a je b stavlja B na stog • 3) ako je na vrhu stoga A i čita se znak a iz w-a stavlja se drugi A na stog • 4) ako je na vrhu stoga B i čita se znak b iz w-a stavlja se drugi B na stog • 5) ako je na stogu znak A i čita se znak b u w-u uzima se znak sa stoga • 6) ako je na stogu znak B i čita se znak a u w-u uzima se znak sa stoga. • Trebali bismo se uvjeriti da je nakon čitanja niza w stog prazan.

  48. Potisni automat /3 • “Program” neformalnog algoritma koji slijedi pretpostavlja postojanje posebnog znaka Z0 koji označava dno stoga. Oznaka <x, D, v> znači “ako je x sljedeći znak niza w a D je znak na stogu tada zamijeni D nizom v”. Prethodni neformalni algoritam tada glasi: • 1) <a, Z0 , AZ0 >, 2) <b, Z0 , BZ0 >, 3) <a, A, AA>, 4) <b, B, BB>, 5) <a, B, λ>, 6) <b, A, λ>, 7) <λ, Z0 , λ>. Kažemo da je niz prihvaćen ako nakon njegovog potpunog snimanja stog bude prazan.

  49. Potisni automat /4 Primjer 2. Razmotrimo jezik {wcwR | w el (a+b)*}. Ovaj niz se može prihvatiti prethodno opisanim automatom, no možemo ga puno bolje prepoznati dodamo li stogu mehanizam s konačnim brojem stanja koji posjeduje dva stanja, jedno zvano čitam (read) a drugo uspoređujem (match). Znak c odapinje prijelaz automata iz stanja čitam u stanje uspoređujem. Oznaku <q, x, D, q’, v> upotrebljavamo za operaciju: ako je automat u stanju q, x je sljedeći znak koji se čita a D je znak na stogu tada se automat mijenja iz stanja q u q’ i zamjenjuje D nizom v na stogu. Neka je Z proizvoljni znak na stogu. Tada je naredba <read, a, Z, read, AZ> kratica za tri naredbe: <read, a, Z0, read, AZ0>, <read, a, A, read, AA>, <read, a, B, read, AB>. Koristeći obogaćeno obilježje opisujemo potisni automat kako slijedi:

  50. Potisni automat/5 • <read, a, Z, read, AZ>, <read, b, Z, read, AZ>, <read, c, Z, match, Z>, <match, a, A, match, λ>, <match, b, B, match, λ>, <match, λ, Z0, match, λ>, • Zamijetimo da će potisni automat (PA) stati jer nema naredbe koja slijedi situaciju kada čita a ako je B na vrhu stoga. Na sljedećoj je tablici prikaz slijednih stanja niza koji se čita i stoga za niz w = abbcbba

More Related