M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 1 apì 33 JewrÐa UpologismoÔ Grammatikèc QwrÐc Sumfrazìmena kai Autìmata StoÐbac
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 2 apì 33 Epanˆlhyh Efarmogèc autìmata kai kanonikèc ekfrˆseic Metaglwttistèc eðdh metaglwttist n fˆseic metagl ttishc Lektik anˆlush diadikasða sqediasmoô idiaiterìthtec To ergaleðo lex/flex leitourgða dom programmˆtwn
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 3 apì 33 S mera Grammatikèc qwrðc sumfrazìmena ergaleða paragwg c glwss n Gl ssec qwrðc sumfrazìmena gl ssec paragìmenec apì grammatikèc qwrðc sumfrazìmena Suntaktikˆ dèndra grafik anaparˆstash paragwg n sumboloseir n Autìmata stoðbac genðkeush peperasmènwn automˆtwn
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 4 apì 33 MontelopoÐhsh Glwss n Klˆsh kanonik n glwss n paragwg glwss n: kanonikèc ekfrˆseic anagn rish glwss n: peperasmèna autìmata ekfrastikìthta: periorismènh Klˆsh glwss n qwrðc sumfrazìmena paragwg glwss n: grammatikèc qwrðc sumfrazìmena anagn rish glwss n: autìmata stoðbac ekfrastikìthta: megalôterh antikeðmeno melèthc glwssolìgwn, p.q. Noam Chomsky
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 5 apì 33 Grammatikèc QwrÐc Sumfrazìmena Grammatik qwrðc sumfrazìmena (context-free grammar) OrÐzetai wc mia tetrˆda ìpou: G = (V, Σ, R, S) V eðnai èna alfˆbhto Σ V eðnai to sônolo twn termatik n (terminals) R (V Σ) V eðnai to sônolo twn kanìnwn (rules) S V Σ eðnai to arqikì sômbolo Parathr seic ta stoiqeða tou V Σ onomˆzontai mh termatikˆ o kanìnac (A, w) R grˆfetai wc A G w A w. oi kanìnec efarmìzontai anexˆrthta apì ta sumfrazìmena
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 6 apì 33 Parˆdeigma I Grammatik G = (V, Σ, R, E) V = {E, T, F, id, +,, (, )} (Expression, T erm, F actor, identifier) Σ = {id, +,, (, )} R = {R 1, R 2, R 3, R 4, R 5, R 6 } R 1 : E T + E R 2 : E T R 3 : T F T R 4 : T F R 5 : F (E) R 6 : F id Gl ssa L = L(G) orjèc majhmatikèc ekfrˆseic me +, kai parenjèseic
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 7 apì 33 Oi sqèseic G kai G H sqèsh G (parˆgei se èna b ma) duadik sqèsh anˆmesa se dôo sumboloseirèc u, v V G V V : u G v x, y, v V, A V Σ : H sqèsh G (parˆgei) (u = xay) (A v ) (v = xv y) h anaklastik kai metabatik kleistìthta thc G Paragwg (derivation) thc w n apì th w 0 sth G akoloujða: w 0 G w 1 G G w n h paragwg èqei m koc n apoteleðtai apì n b mata
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 8 apì 33 Gl ssa QwrÐc Sumfrazìmena Paragìmenh gl ssa L(G) h gl ssa pou parˆgetai apì thn G = (V, Σ, R, S) L(G) = {w Σ : S G w} Gl ssa qwrðc sumfrazìmena (context-free language) L = L(G), ìpou G mia grammatik qwrðc sumfrazìmena Mhqan paragwg c oi grammatikèc qwrðc sumfrazìmena eðnai paragwgoð glwss n IsodunamÐa grammatik n G 1 kai G 2 isodônamec ann L(G 1 ) = L(G 2 )
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 9 apì 33 Parˆdeigma II Grammatik G = (V, Σ, R, S) V = {A, a, b} Σ = {a, b} R = { A aab, A e } S = A Gl ssa L = L(G) L(G) = {a n b n : n N} Oi grammatikèc qwrðc sumfrazìmena mporoôn na parˆgoun kai mh kanonikèc gl ssec!
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 10 apì 33 Parˆdeigma III Grammatik G = (V, Σ, R, S) V = {S, (, )} Σ = {(, )} R = { S e, S SS, S (S) } Gl ssa L = L(G) L(G) = { w {(, )} : kanonik antistoiqða parenjèsewn } Oi grammatikèc qwrðc sumfrazìmena mporoôn na parˆgoun kai mh kanonikèc gl ssec!
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 11 apì 33 Je rhma Grammatikèc kai Autìmata Kˆje kanonik gl ssa eðnai gl ssa qwrðc sumfrazìmena. Apìdeixh Metatrop M = (K, Σ, δ, s, F ) se G = (V, Σ, R, S) V = K Σ Σ = Σ R = { q ap : δ(q, a) = p } { q e : q F } S = s Parˆdeigma L = (ab aab)
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 12 apì 33 Suntaktikˆ Dèndra
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 13 apì 33 Pollaplèc Paragwgèc Kanonik antistoiqða parenjèsewn: G = (V, Σ, R, S) V = {S, (, )} Σ = {(, )} R = { S e, S SS, S (S) } Paragwg ()() S SS (S)S ()S ()(S) ()() S SS S(S) S() (S)() ()() MÐa sumboloseirˆ pijanìn na èqei pollèc paragwgèc anˆloga me tic epilogèc efarmog c twn kanìnwn!
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 14 apì 33 Anaparˆstash Pollapl n Paragwg n Paragwg ()() S SS (S)S ()S ()(S) ()() S SS S(S) S() (S)() ()()
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 15 apì 33 Suntaktikˆ Dèntra (Parse Trees) Suntaktikì dèntro gia thn grammatik G = (V, Σ, R, S) dèndro: sunektikìc grˆfoc qwrðc kôklouc h rðza epigrˆfetai me to arqikì sômbolo S oi kìmboi epigrˆfontai me mh termatikˆ sômbola (V Σ) ta fôlla epigrˆfontai me termatikˆ sômbola (Σ) me to e o kìmboc A èqei paidiˆ A 1,..., A n, an (A A 1 A n ) R Paragìmenh sumboloseirˆ parˆjesh twn epigraf n twn fôllwn (aristerˆ proc dexiˆ) Suntaktikˆ dèndra wc anaparˆstash anaparistoôn klˆseic isodunamðac paragwg n
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 16 apì 33 Parˆdeigma Kanonik antistoiqða parenjèsewn: G = (V, Σ, R, S) V = {S, (, )}, Σ = {(, )}, R = {S e, S SS, S (S)} Paragwg ()() S SS (S)S ()S ()(S) ()() S SS S(S) S() (S)() ()()
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 17 apì 33 Eidikèc Paragwgèc Aristerìterh paragwg (leftmost derivation) se kˆje b ma antikajðstatai to aristerìtero mh termatikì x L G y (x = waβ) (A γ R) (y = wγβ) mða aristerìterh paragwg se kˆje suntaktikì dèndro prodiatetagmènh diapèrash dèndrou (preorder traversal) parˆdeigma: S SS (S)S ()S ()(S) ()() Dexiìterh paragwg (rightmost derivation) se kˆje b ma antikajðstatai to dexiìtero mh termatikì x R G y (x = βaw) (A γ R) (y = βγw) mða dexiìterh paragwg se kˆje suntaktikì dèndro metadiatetagmènh diapèrash dèndrou (postorder traversal) parˆdeigma: S SS S(S) S() (S)() ()()
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 18 apì 33 Suntaktikˆ Dèndra kai Paragwgèc Je rhma 'Estw G = (V, Σ, R, S) mia grammatik qwrðc sumfrazìmena kai èstw to mh termatikì sômbolo A V Σ kai h sumboloseirˆ w Σ. Tìte oi parakˆtw protˆseic eðnai isodônamec: A w Upˆrqei suntaktikì dèndro me rðza A pou parˆgei thn w Upˆrqei aristerìterh paragwg A L w Upˆrqei dexiìterh paragwg A R w
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 19 apì 33 Pollaplèc Aristerìterec Paragwgèc Kanonik antistoiqða parenjèsewn: G = (V, Σ, R, S) V = {S, (, )} Σ = {(, )} R = { S e, S SS, S (S) } Paragwg ()() S SS (S)S ()S ()(S) ()() S SS SSS (S)SS ()SS ()S ()(S) ()() MÐa sumboloseirˆ pijanìn na èqei perissìtera apì èna suntaktikˆ dèndra!
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 20 apì 33 DiforoÔmenec Grammatikèc DiforoÔmenh grammatik G (ambiguous grammar) w L(G) èqei parapˆnw apì èna suntaktikˆ dèndra w L(G) èqei parapˆnw apì mða aristerìterec paragwgèc w L(G) èqei parapˆnw apì mða dexiìterec paragwgèc Parathr seic mh epijumht idiìthta monadikìthta suntaktikoô dèndrou = monadikìthta shmasðac sun jwc, upˆrqei dunatìthta aposaf nishc Eggen c diforoômenec gl ssec perigrˆfontai mìno me diforoômenec grammatikèc
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 21 apì 33 Parˆdeigma DiforoÔmenhc Grammatik c Orjèc ekfrˆseic me + kai : G = (V, Σ, R, E) V = {E, id, +, }, Σ = {id, +, } R = { E E + E, E E E, E (E), E id } Paragwg id + id id
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 22 apì 33 Autìmata StoÐbac
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 23 apì 33 Anagnwristèc Glwss n QwrÐc Sumfrazìmena L = { ww R : w {a, b} } mh kanonik gl ssa pou parˆgetai apì th G = (V, Σ, R, S): V = {S, a, b}, Σ = {a, b} R = {S asa, S bsb, S e} h L eðnai gl ssa qwrðc sumfrazìmena Anagn rish thc L den anagnwrðzetai apì peperasmèno autìmato aparaðthth prosj kh: aperiìristh mn mh apoj keuse th sumboloseirˆ ìpwc thn diabˆzeic mh nteterministikˆ diˆlexe to mèso thc sumboloseirˆc sôgkrine an to deôtero misì sumfwneð me to pr to misì
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 24 apì 33 Autìmata StoÐbac
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 25 apì 33 Autìmata StoÐbac (Pushdown Automata) Mh nteterministikì autìmato stoðbac M OrÐzetai wc mia exˆda ìpou: M = (K, Σ, Γ,, s, F ) K eðnai èna peperasmèno sônolo katastˆsewn Σ eðnai èna alfˆbhto (ta sômbola eisìdou) Γ eðnai èna alfˆbhto (ta sômbola thc stoðbac) eðnai h sqèsh metˆbashc (K (Σ {e}) Γ ) (K Γ ) s K eðnai h arqik katˆstash F K eðnai to sônolo twn telik n katastˆsewn
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 26 apì 33 Autìmata StoÐbac (2) Metˆbash (transition) èna zeôgoc ( (p, a, β), (q, γ) ) StoÐba (stack) ( (p, u, e), (q, a) ) : eisˆgei (push) to a sth stoðba ( (p, u, a), (q, e) ) : exˆgei (pop) to a apì th stoðba Sunolik katˆstash (configuration) èna stoiqeðo (q, w, α) tou sunìlou K Σ Γ q: katˆstash sthn opoða brðsketai to autìmato w: sumboloseirˆ eisìdou pou apomènei na diabasteð α: perieqìmena thc stoðbac apì pˆnw proc ta kˆtw
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 27 apì 33 Oi sqèseic M kai M Duadik sqèsh <<parˆgei se èna b ma>> M M ( K Σ Γ ) ( K Σ Γ ) (p, x, α) M (q, y, ζ) a Σ, β, γ, η Γ : x = ay, α = βη, ζ = γη ( (p, a, β), (q, γ) ) h M den eðnai upoqrewtikˆ sunˆrthsh Duadik sqèsh <<parˆgei>> M h anaklastik kai metabatik kleistìthta thc M
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 28 apì 33 Apodekt Gl ssa Apodekt sumboloseirˆ Mia sumboloseirˆ w Σ eðnai apodekt apì to autìmato stoðbac M = (K, Σ, Γ,, s, F ) ann upˆrqei mia katˆstash q F ètsi ste (s, w, e) M (q, e, e). Apodekt gl ssa H gl ssa L(M) pou gðnetai apodekt apì to M eðnai to sônolo twn sumboloseir n pou apodèqetai to M. Upologismìc tou M akoloujða sunolik n katastˆsewn C 0, C 1, C 2,..., C n C i 1 M C i, i = 0, 1,..., n n: m koc upologismoô
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 29 apì 33 'Askhsh I Kataskeuˆste M gia thn L L = {wcw R : w {a, b} } Kataskeu M = (K, Σ, Γ,, s, F ) K = {s, f}, Σ = {a, b, c}, Γ = {a, b}, F = {f} = { 1, 2, 3, 4, 5 } 1 : ( (s, a, e), (s, a) ) 2 : ( (s, b, e), (s, b) ) 3 : ( (s, c, e), (f, e) ) 4 : ( (f, a, a), (f, e) ) 5 : ( (f, b, b), (f, e) )
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 30 apì 33 'Askhsh II Kataskeuˆste M gia thn L L = {ww R : w {a, b} } Kataskeu M = (K, Σ, Γ,, s, F ) K = {s, f}, Σ = {a, b}, Γ = {a, b}, F = {f} = { 1, 2, 3, 4, 5 } 1 : ( (s, a, e), (s, a) ) 2 : ( (s, b, e), (s, b) ) 3 : ( (s, e, e), (f, e) ) 4 : ( (f, a, a), (f, e) ) 5 : ( (f, b, b), (f, e) )
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 31 apì 33 'Askhsh III Kataskeuˆste M gia thn L L = {w {a, b} : w èqei Ðso arijmì a kai b} Kataskeu M = (K, Σ, Γ,, s, F ) K = {s, q, f}, Σ = {a, b}, Γ = {a, b, c}, F = {f} = { 1, 2, 3, 4, 5, 6, 7, 8 } 1 : ( (s, e, e), (q, c) ) 2 : ( (q, a, c), (q, ac) ) 3 : ( (q, b, c), (q, bc) ) 4 : ( (q, a, a), (q, aa) ) 5 : ( (q, b, b), (q, bb) ) 6 : ( (q, a, b), (q, e) ) 7 : ( (q, b, a), (q, e) ) 8 : ( (q, e, c), (f, e) )
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 32 apì 33 Peperasmèna Autìmata kai Autìmata StoÐbac { peperasmèna autìmata } { autìmata stoðbac } Kˆje peperasmèno autìmato eðnai èna autìmato stoðbac pou den qrhsimopoieð potè thn stoðba tou. Metatrop M = (K, Σ,, s, F ) = M = (K, Σ, Γ,, s, F ) Γ = { ((p, ) } = u, e), (q, e) : (p, u, q) L(M) = L(M )
M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 33 apì 33 SÔggramma Melèth Harry R. Lewis kai QrÐstoc Q. PapadhmhtrÐou, StoiqeÐa JewrÐac UpologismoÔ, Ekdìseic Kritik, 2005. Enìthtec 3.1, 3.2, 3.3