456-330/1: Teoretická informatika(ti) přednáška 4 prof. RNDr Petr Jančar, CSc. katedra informatiky FI VŠB-TUO www.cs.vsb.cz/jancar LS 2009/2010 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 1/ 16
(Procedury) konstrukce ZNKA k regulárnímu výrazu Sjednocení(Union) Zřetězení(Conc) Iterace(Iter) Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 2/ 16
Syntaxí řízený překlad RV na ZNKA regulárnívýraz (1 0 +10) 1 syntaktický strom 1 + 0 1 0 Conc Iter 1 Union Conc Conc Iter 0 1 0 1 lineární zápis Conc(Iter(Union(Conc(Iter(1), 0), Conc(1, 0))), 1) 1 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 3/ 16
Bezkontextové gramatiky Příklad:aritmetickévýrazyvabecedě {a, +,, (, ) } konkrétnířetězce: a +a a, (a +a) a (a je zde atom, reprezentuje např. celé číslo) XPR a XPR XPR + XPR XPR XPR XPR XPR ( XPR ) a + () Odvození(derivace),slovaa +a a: + a + a + a +a a +a a leváderivace,praváderivace... + + + a +a a a +a a A ještě příklad derivace, která není ani levá ani pravá: + + +a a +a a +a a Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 4/ 16
Derivační strom strom odvození(derivační strom) + a + a a a a a Těmto různým stromům odpovídají různé levé derivace: + a + a + a +a a +a a + a + a +a a +a a Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 5/ 16
Bezkontextová gramatika- formálně Bezkontextová gramatika G = (Π, Σ,S,P): Π... konečná množina neterminálů, Σ...konečnámnožinaterminálů (Π Σ = ), S Π...počátečníneterminál P...konečnámnožinapravideltypu A β, kde A Π, β (Π Σ). Relace (resp. G )na (Π Σ) : jestliže ( µ 1, µ 2,A, β :) γ δ γ = µ 1 Aµ 2, δ = µ 1 βµ 2, (A β) P Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 6/ 16
Bezkontextové jazyky...reflexivníatranzitivníuzávěrrelace (nejmenší relace, která obsahuje a je reflexivní a tranzitivní) Tedy γ δ ex.posloupnost µ 0, µ 1,...,µ n tak,že γ = µ 0 µ 1 µ n = δ. (Derivace(délkyn)slova δzeslova γ.) JazykgenerovanýgramatikouG:L(G) = {w Σ S w } JazykLjebezkontextový df ex.bggtak,žel(g) =L. Značení: a,b,c,.....(proměnné,jejichžhodnotyjsou)terminály u,v,w,.....řetězceterminálů A,B,C,...,X,Y,Z...neterminály α, β, γ,.....řetězceneterminálůaterminálů(prvkyz(π Σ) ) Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 7/ 16
Levá derivace ProG = (Π, Σ,S,P) α L β(βvzniknezαlevýmpřepsáním) df u Σ, δ (Π Σ), (X γ) P: α =uxδ, β =uγδ α 0 α 1 α n jelevouderivací df α i L α i+1 (0 i n 1). Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 8/ 16
Derivační strom- formálně Derivačnístrom(vztahujícísekeG = (Π, Σ,S,P)),jeuspořádaný kořenový strom, v němž -vrcholyohodnocenyprvky Π Σ, - kořen ohodnocen S, -vrcholohodnocenýx( Π)mánásledníkyohodnocenéY 1,Y 2,...,Y n (Y i Π Σ),kde (X Y 1 Y 2...Y n ) P, - vrchol ohodnocený a ( Σ) je listem. Derivačnístromprow =a 1 a 2...a n...málistyzlevadopravaohodnoceny a 1,a 2,...,a n. Věta.Každémuderivačnímustromuproslovow(vdanégramaticeG) přirozeně odpovídá právě jedná levá derivace slova w(vyvozená z levého průchodu stromem); naopak každé levé derivaci slova w přirozeně odpovídá právě jeden derivační strom pro w. Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 9/ 16
Syntaxe, sémantika Gramatika slouží nejen pro popis syntaxe jazyka; syntaktická struktura (derivační strom) konkrétního slova je obvykle základem také pro vyhodnocení sémantiky(významu) slova. Tím významem může být např. hodnota z nějaké množiny(domény). Např. u dříve uvedených aritmetických výrazů je to(celé) číslo či program (cílovýkód)kjehovýpočtu...(interpret,kompilátor...) + 17 5 42 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 10/ 16
Překlad RV na(zn)ka na základě derivačního stromu BG Omezmesenaabecedu Σ = {a,b}.množinaregulárníchvýrazůnad Σje dána např. následující gramatikou(symboly, ǫ zde neuvažujeme) R a b R+R R R RR R (R) regulárnívýraz syntaktický strom + a a b (a b +a) derivační strom R ( R ) R + R R R a R b a Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 11/ 16
Konstrukce(ZN)KA na základě derivačního stromu pro vrchol označený derivační strom R ( R ) R + R R R a R a b a, b: vydej příslušný(elementární) automat; RsnásledníkyR, +,R: sestavautomata 1 pro1.následníka,a 2 pro3. následníka,apaksestavavydejautomata prol(a 1 ) L(A 2 ); RsnásledníkyR,,R(podobněproR,R): sestavautomata 1 pro1.následníka,a 2 pro3. následníka,apaksestavavydejautomata prol(a 1 ) L(A 2 ); RsnásledníkyR, :sestavautomata 1 pro1. následníka,apaksestavavydejautomata prol(a 1 ) ; Rsnásledníky (,R, ):vydejautomatsestavený pro 2. následníka. Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 12/ 16
Nejednoznačné gramatiky xistence dvou různých derivačních stromů(levých derivací) pro jedno a totéž slovo... pro překlad(vyhodnocení sémantiky) závada! Připomeňme si + a + a a a a ugramatiky a + () a Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 13/ 16
Jednoznačné gramatiky a jazyky BGGjejednoznačná df každéslovozl(g)máprávějedenderivační strom(tj. právě jednu levou derivaci). V opačném případě je G nejednoznačná(či víceznačná). BezkontextovýjazykLjejednoznačný df ex.jednoznačnágtž. L(G) = L; jinak se L nazývá(vnitřně) nejednoznačný(víceznačný). Např.: L 1 = {a n b n n 0 }: S asb (jejednoznačný) L 2 = {a i b j c k (i =j) (j =k) }: S S 1 C AS 2 S 1 as 1 b S 2 bs 2 c C cc A aa Fakt:Neex.jednoznačnáBGGtž.L(G) =L 2.(L 2 jevíceznačný.) Pozn.: problém jednoznačnosti bezkontextové gramatiky je algoritmicky nerozhodnutelný(ukážeme později...). Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 14/ 16
Jednoznačné gramatiky a jazyky K(nejednoznačné) gramatice R a b R+R RR R (R) lze sestrojit ekvivalentní gramatiku, která je jednoznačná: R T +R T T FT F F F (R) C C a b Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 15/ 16
Gramatika pro booleovské formule(cvičení) Uvažujme jazyk sestávající ze všech booleovských formulí s proměnnými x1,x2,...alogickýmispojkami,, ;mohousevnichpoužívatzávorky (, ),alenenínutnéplnězávorkovat.každátakováformulejetedy řetězcem v abecedě Σ = {x,0,1,2,3,4,5,6,7,8,9,,,, (, ) } ; jakopříkladmůžesloužitřetězec ( x15 x2 x5) x21 (x2 x5), který do jazyka patří.(samozřejmě zde můžeme preferovat přehlednější zápis ( x 15 x 2 x 5 ) x 21 (x 2 x 5 ),aletonenípodstatné.) Navrhněte co nejjednodušší bezkontextovou gramatiku generující uvedený jazyk. Takto navržená(jednoduchá) gramatika asi není jednoznačná; ověřte. Zkonstruujte pak pro stejný jazyk jednoznačnou gramatiku, u níž derivační stromy přirozeně odpovídají obvyklé prioritě operátorů: negace váže silněji než konjunkce a konjunkce váže silněji než disjunkce. Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010 16/ 16