Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/31

Podobné dokumenty
Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Jednoznačné a nejednoznačné gramatiky

Bezkontextové jazyky 3/3. Bezkontextové jazyky 3 p.1/27

Vztah jazyků Chomskeho hierarchie a jazyků TS

Automaty a gramatiky

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Formální jazyky a gramatiky Teorie programovacích jazyků

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Vlastnosti regulárních jazyků

Teoretická informatika TIN 2013/2014

Teoretická informatika

UČEBNÍ TEXTY VYSOKÝCH ŠKOL. Prof. RNDr. Milan Češka, CSc. Gramatiky a jazyky

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Syntaxí řízený překlad

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

Naproti tomu gramatika je vlastně soupis pravidel, jak

Teoretická informatika - Úkol č.1

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

/1: Teoretická informatika(ti) přednáška 4

Fakulta informačních technologií. Teoretická informatika

Formální jazyky a automaty Petr Šimeček

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.

Modely Herbrandovské interpretace

Bezkontextové gramatiky nad volnými grupami

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS MASTER S THESIS AUTHOR

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný

Lineární algebra : Lineární prostor

1 Báze a dimenze vektorového prostoru 1

2 Formální jazyky a gramatiky

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Lineární algebra Kapitola 1 - Základní matematické pojmy

Základy teoretické informatiky Formální jazyky a automaty

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

Univerzální Turingův stroj a Nedeterministický Turingův stroj

Lineární algebra : Násobení matic a inverzní matice

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

AUTOMATY A GRAMATIKY

Matematická analýza 1

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

/01: Teoretická informatika(ti) přednáška 5

Lineární algebra : Násobení matic a inverzní matice

PŘEDNÁŠKA 2 POSLOUPNOSTI

Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13

Teoretická informatika

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

Výroková a predikátová logika - IV

Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b})

Úvod do lineární algebry

6 Lineární geometrie. 6.1 Lineární variety

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Úvod do informatiky. Miroslav Kolařík

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

Logické programy Deklarativní interpretace

Na rozšiřující přednášce minulý týden jsme se věnovali zejména. algoritmu, který k zadanému konečnému automatu sestrojí ekvivalentní regulární výraz

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Těleso racionálních funkcí

Automaty a gramatiky. Roman Barták, KTIML. Separované gramatiky. Kontextové gramatiky. Chomského hierarchie

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

Hypergrafové removal lemma a Szemérediho

Vrcholová barevnost grafu

Lineární algebra : Skalární součin a ortogonalita

Naproti tomu gramatika je vlastně soupis pravidel, jak

Lineární algebra : Báze a dimenze

Minimalizace KA - Úvod

4.2 Syntaxe predikátové logiky

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Vlastní čísla a vlastní vektory

Úvod do informatiky. Miroslav Kolařík

Věta o dělení polynomů se zbytkem

Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49

Lineární algebra : Lineární zobrazení

Množiny, relace, zobrazení

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Spojitost a limita funkce

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematická logika. Miroslav Kolařík

1 Množiny, výroky a číselné obory

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

4 Počítání modulo polynom

Automaty a gramatiky. Na zopakování X*/~ Roman Barták, KTIML. Iterační (pumping) lemma. Pravidelnost regulárních jazyků

LIMITA A SPOJITOST FUNKCE

Transkript:

Bezkontextové jazyky Bezkontextové jazyky 1 p.1/31

Jazyky typu 2 Definice 4.1 Gramatika G = (N, Σ, P, S) si nazývá bezkontextovou gramatikou, jestliže všechna pravidla z P mají tvar A α, A N, α (N Σ) Lemma 4.1 Každý regulární jazyk je jazykem bezkontextovým. Proč studujeme bezkontextové jazyky? Příklad 4.1 Jazyk L = {a n b n n 0}, jak víme, není jazykem regulárním, je však jazykem bezkontextovým: L = L(G) kde G = ({S},{a,b},{S asb,s ε},s) Bezkontextové jazyky 1 p.2/31

Příklad bezkontextové gramatiky Pro účely demonstrace vysvětlovaných pojmů budeme v následujících příkladech používat následující gramatiku. Příklad 4.2 G = ({S, A, B},{a, b, c}, P, S), kde P obsahuje pravidla S AB A aab ab B bbc bc Gramatika G generuje bezkontextový jazyk L(G) = {a m b m+n c n n 1,m 1} Bezkontextové jazyky 1 p.3/31

Derivační strom Důležitým prostředkem pro grafické vyjádření struktury věty (její derivace) je strom, který se nazývá derivačním nebo syntaktickým stromem. Definice 4.2 Necht δ je věta nebo větná forma generovaná v gramatice G = (N,Σ,P,S) a necht S = v 0 v 1... v k = δ její derivace v G. Derivační strom příslušející této derivaci je vrcholově ohodnocený strom s těmito vlastnostmi: 1. Vrcholy derivačního stromu jsou ohodnoceny symboly z množiny N Σ; kořen stromu je označen výchozím symbolem S. 2. Přímé derivaci v i 1 v i,i = 0,1,...,k kde v i 1 = µaλ, µ,λ (N Σ), A N v i = µαλ A α, α = X 1...X n je pravidlo z P, odpovídá právě n hran (A,X j ),j = 1,...,n vycházejících z uzlu A, jež jsou uspořádány zleva doprava v pořadí (A,X 1 ),(A,X 2 ),...,(A,X n ). 3. Ohodnocení koncových uzlů derivačního stromu vytváří zleva doprava větnou formu nebo větu δ (plyne z 1. a 2.). Bezkontextové jazyky 1 p.4/31

Příklad derivačního stromu Příklad 4.3 V gramatice z příkladu 4.2 můžeme generovat řetězec aabbbbcc např. derivací: S AB aabb aabbbc aabbbcc aabbbbcc Derivační strom odpovídající této derivaci vypadá takto (po stranách jsou uvedena použitá pravidla): S S AB A aab a A b b B c B bbc A ab a A b b B c B bc Bezkontextové jazyky 1 p.5/31

Levá a pravá derivace Ukažme si i jiné derivace věty aabbbbcc, které se liší v pořadí, v němž byly vybírány nonterminály pro přímé derivace. 1. S AB aabb aabbb aabbbbc aabbbbcc 2. S AB AbBc Abbcc aabbbc aabbbbcc Definice 4.3 Necht S α 1 α 2... α n = α je derivace větné formy α. Jestliže byl v každém řetězci α i,i = 1,...,n 1 přepsán nejlevější (nejpravější) nonterminál, pak tuto derivaci nazýváme levou (pravou) derivací větné formy α. Výše uvedené příklady derivací představují levou (1.) a pravou (2.) derivaci. Lemma 4.2 Je-li S α 0 α 1... α n w levá, resp. pravá derivace věty w, pak každá z větných forem α i, i = 1,2,...,n 1 má tvar: x i A i β i kde x i Σ,A i N,β i (N Σ) resp. γ i B i y i kde y i Σ,B i N,γ i (N Σ) t.j. větné formy levé, resp. pravé derivace mají terminální prefixy, resp. sufixy. Bezkontextové jazyky 1 p.6/31

Fráze větné formy Definice 4.4 Necht G = (N, Σ, P, S) je gramatika a necht řetězec λ = αβγ je větná forma. Podřetězec β se nazývá frází větné formy vzhledem k nonterminálu A z N, jestliže platí: S αaγ A + β Podřetězec β je jednoduchou frází větné formy, jestliže platí: S αaγ A β Nejlevější jednoduchá fráze se nazývá l-frází. Bezkontextové jazyky 1 p.7/31

Příklad 4.4 V gramatice z příkladu 4.1 nalezněte fráze věty aabbbbcc. Nejdříve vytvořme libovolnou derivaci této věty (Příklad 4.2). Na základě této derivace získáme následující fráze k příslušným nonterminálům: Fráze aabbbbcc S aabb A 1 ab A 2 bbcc B 1 bc B 2 Nonterminál Fráze ab a bc jsou jednoduché, ab je l-fráze. Bezkontextové jazyky 1 p.8/31

Vztah fráze a derivačního stromu Podstrom derivačního stromu odpovídá frázi příslušné větné formy. Fráze je tvořena koncovými uzly podstromu. Jednoduchá fráze odpovídá podstromu, jenž je výsledkem přímé derivace A β, a jeho hloubka je rovna jedné. Situaci ilustruje následující obrázek. S A α β γ Bezkontextové jazyky 1 p.9/31

Příklad 4.5 Podstromy derivačního stromu věty aabbbbcc (příklad 4.3) jsou následující stromy odpovídající též frázím z předchozího příkladu. A B S a A b b B c a b b c A B a A b b B c a b b c S a A b b B c A B a b b c a A b b B c Bezkontextové jazyky 1 p.10/31

Víceznačnost gramatik Definice 4.5 Necht G je gramatika. Říkáme, že věta w generovaná gramatikou G je víceznačná, existují-li alespoň dva různé derivační stromy s koncovými uzly tvořícími větu w. Gramatika G je víceznačná, pokud generuje alespoň jednu víceznačnou větu. V opačném případě mluvíme o jednoznačné gramatice. Jazyky, které lze generovat víceznačnou gramatikou, ale které nelze generovat jednoznačnou gramatikou, se nazývají jazyky s inherentní víceznačností. Problém víceznačnosti gramatik je nerozhodnutelný, tj. neexistuje algoritmus, který by byl schopen v konečném čase rozhodnout, zda daná gramatika je nebo není víceznačná. Víceznačnost gramatiky je pokládána za negativní rys (vede k větám, které mají několik interpretací). Na druhé straně může být víceznačná gramatika jednodušší než odpovídající jednoznačná gramatika. Bezkontextové jazyky 1 p.11/31

Víceznačnost gramatik Příklad 4.6 Uvažujme gramatiku G = ({E},{+,,,/,(,),P,E), kde P je množina pravidel E E +E E E E E E/E ( E ) i Jazyk L(G) je tvořen aritmetickými výrazy s binárními operacemi. Gramatika G je na rozdíl od gramatiky z příkladu 4.2 víceznačná. Vezměme například větu i+i i a uvažujme všechny možné derivační stromy. E E E + E E * E i E * E E + E i i Není jasné, zda první operací bude násobení (derivační strom vlevo), nebo sčítání (derivační strom vpravo). i i i Bezkontextové jazyky 1 p.12/31

Příklad 4.7 Jednoznačnou gramatikou generující tentýž jazyk je gramatika G = ({E,T,F},{+,,,/,(,),i},P,E) s množinou přepisovacích pravidel P definovanou následujícím způsobem: E T E +T E T T F T F T/F F ( E ) i Bezkontextové jazyky 1 p.13/31

Zásobníkové automaty Bezkontextové jazyky 1 p.14/31

Základní schéma Schéma zásobníkového automatu: a 1 a 2 a 3 a 4 a n vstupní páska q n q 1 q 2 Z k Z k-1 vrchol zásobníku q 3 q 4 Z 1 konečné stavové řízení Bezkontextové jazyky 1 p.15/31

Základní definice Definice 4.6 Zásobníkový automat P je n-tice P = (Q,Σ,Γ,δ,q 0,Z 0,F) 1. Q je konečná množina vnitřních stavů 2. Σ je konečná vstupní abeceda 3. Γ je konečná zásobníková abeceda 4. δ je přechodová funkce ve tvaru δ : Q (Σ {ε}) Γ 2 Q Γ 5. q 0 Q je počáteční stav 6. Z 0 Γ je startovací symbol zásobníku 7. F Q je množina koncových stavů Bezkontextové jazyky 1 p.16/31

Konfigurace a přechod ZA Definice 4.7 Necht P = (Q,Σ,Γ,δ,q 0,Z 0,F) je zásobníkový automat. Konfigurací automatu P nazveme trojici (q,w,α) Q Σ Γ, kde 1. q je přítomný stav vnitřního řízení 2. w je dosud nezpracovaná část vstupního řetězce 3. α je obsah zásobníku (α = Z i1 Z i2...z ik, Z i1 je vrchol) Přechod ZA P je binární relace P definovaná na množině konfigurací: (q,w,β) P (q,w,β ) def w = aw β = Zα β = γα (q,γ) δ(q,a,z), kde q,q Q, a Σ {ε}, w,w Σ, Z Γ a α,β,β,γ Γ. Je-li a = ε, pak odpovídající přechod nazýváme ε-přechodem. Relace i P, P, + P jsou definovány obvyklým způsobem. Platí-li pro řetězec w Σ relace (q 0,w,Z 0 ) P (q,ε,γ), kde q F a γ Γ, pak říkáme, že w je přijímán zásobníkovým automatem P (q 0,w,Z 0 ), resp. (q,ε,γ) je počáteční, resp. koncová konfigurace. Definujeme jazyk přijímaný zásobníkovým automatem P : L(P) = {w (q 0,w,Z 0 ) P (q,ε,γ) q F}. Bezkontextové jazyky 1 p.17/31

Příklad zásobníkového automatu Příklad 4.8 Sestrojme zásobníkový automat, který přijímá jazyk L = {0 n 1 n n 0}. Řešením je P = ({q 0,q 1,q 2 },{0,1},{Z,0},δ,q 0,Z,{q 0 }), kde δ(q 0,0,Z) = {(q 1,0Z)} δ(q 1,0,0) = {(q 1,00)} δ(q 1,1,0) = {(q 2,ε)} δ(q 2,1,0) = {(q 2,ε)} δ(q 2,ε,Z) = {(q 0,ε)} Při přijetí řetězce 0011 projde P těmito konfiguracemi: (q 0,0011,Z) (q 1,011,0Z) (q 1,11,00Z) (q 2,1,0Z) (q 2,ε,Z) (q 0,ε,ε) Zásobníkové automaty lze také popsat přechodovým diagramem, jak je ilustrováno níže na právě sestrojeném automatu P: 0,0/00 1,0/ε Z q 0,Z/0Z 0 q 1,0/ε 1 q 2 ε,z/ε Bezkontextové jazyky 1 p.18/31

Varianty zásobníkových automatů Bezkontextové jazyky 1 p.19/31

Rozšířený zásobníkový automat Definice 4.8 Rozšířený zásobníkový automat P je sedmice P = (Q,Σ,Γ,δ,q 0,Z 0,F), kde δ je přechodová funkce definovaná takto: δ : Q (Σ {ε}) Γ 2 Q Γ Ostatní složky mají stejný význam jako v definici 5.2. Příklad 4.9 Rozšířený zásobníkový automat P = ({p, q},{a, b},{a, b, S, Z}, δ, q, Z,{p}), kde δ(q,a,ε) = {(q,a)} δ(q,b,ε) = {(q,b)} δ(q,ε,ε) = {(q,s)} δ(q,ε,asa) = {(q,s)} δ(q,ε,bsb) = {(q,s)} δ(q,ε,sz) = {(p,ε)} přijímá jazyk L = {ww R w {a,b} + }. Např: (q,aabbaa,z) (q,abbaa,az) (q,bbaa,aaz) (q,baa,baaz) (q,baa,sbaaz) (q,aa,bsbaaz) (q,aa,saaz) (q,a,asaa) (q,a,saz) (q,ε,asaz) (q,ε,sz) (p,ε,ε) Bezkontextové jazyky 1 p.20/31

Ekvivalence RZA a ZA Věta 4.1 Necht P = (Q,Σ,Γ,δ,q 0,Z 0,F) je rozšířený zásobníkový automat. Pak existuje zásobníkový automat P 1 takový, že L(P 1 ) = L(P). Důkaz. Položme m = max{ α δ(q,a,α) pro nějaké q Q, a Σ {ε} a α Γ }. Zásobníkový automat P 1 budeme konstruovat tak, aby simuloval automat P. Protože automat P neurčuje přechody podle vrcholu zásobníku, ale podle vrcholového řetězce zásobníku, bude automat P 1 ukládat m vrcholových symbolů v jakési vyrovnávací paměti řídící jednotky tak, aby na počátku každého přechodu věděl, jakých m vrcholových symblů je v zásobníku automatu P. Nahrazuje-li automat P k vrcholových symboů řetězcem délky l, pak se totéž provede ve vyrovnávací paměti automatu P 1. Jestliže l < k, pak P 1 realizuje k l ε-přechodů, které přesouvají k l symbolů z vrcholu zásobníku do vyrovnávací paměti. Automat P 1 pak může simulovat další přechod automatu P. Je-li l k pak se symboly přesouvají z vyrovnávací paměti do zásobníku. Bezkontextové jazyky 1 p.21/31

Formálně můžeme konstrukci zásobníkového automatu P 1 popsat takto: P 1 = (Q 1,Σ 1,Γ 1,δ 1,Z 1,F 1 ), kde 1. Q 1 = {[q,α] q Q,α Γ 1 0 α m} 2. Γ 1 = Γ {Z 1 } 3. Zobrazení δ 1 je definováno takto: (a) Předpokládejme, že δ(q,a,x 1...X k ) obsahuje (r,y 1...Y l ). i. Jestliže l k, pak pro všechna Z Γ 1 a α Γ 1 taková, že α = m k, pak δ 1 ([q,x 1...X k α],a,z) obsahuje ([r,β],γz), kde βγ = Y 1...Y l α a β = m. ii. Je-li l < k, pak pro všechna Z Γ 1 a α Γ 1 taková, že α = m k, pak δ 1 ([q,x 1...X k α],a,z) obsahuje ([r,y 1...Y l αz],ε). (b) Pro všechna q Q,Z Γ 1 a α Γ 1 taková, že α < m, platí δ 1 ([q,α],ε,z) = {([q,αz],ε)}. Tato pravidla vedou k naplnění vyrovnávací paměti. Bezkontextové jazyky 1 p.22/31

4. q 1 = [q 0,Z 0,Z m 1 1 ]. Vyrovnávací pamět obsahuje na počátku symbol Z 0 na vrcholu a m 1 symbolů Z 1 na dalších místech. Symboly Z 1 jsou speciální znaky pro označení dna zásobníku. 5. F 1 = {[q,α] q F,α Γ 1} Lze ukázat, že (a,aw,x 1...X k X k+1...x n ) P (r,w,y 1...Y l X k+1...x n ) platí, právě když ([q,α],aw,β) + P 1 ([r,α ],w,β ) kde αβ = X 1...X n Z m 1 α β = Y 1...Y l X k+1...x n Z m 1 α = α = m a mezi těmito dvěma konfiguracemi automatu P 1 není žádná konfigurace, ve které by druhý člen stavu (vyrovnávací pamět ) měl délku m. Tedy relace (q 0,w,Z 0 ) P (q,ε,α) pro q F,α Γ platí, právě když ([q 0,Z 0,Z m 1 1 ],w,z 1 ) P 1 ([q,β],ε,γ), kde β = m a βγ = αz m 1. Tedy L(P) = L(P 1 ). Bezkontextové jazyky 1 p.23/31

ZA přijímající s vyprázdněním zás. Definice 4.9 Zásobníkový automat nebo rozšířený zásobníkový automat P = (Q,Σ,Γ,δ,q 0,Z, ) přijímá s vyprázdněním zásobníku, pokud L(P) = {w (q 0,w,Z 0 ) (q,ε,ε),q Q} Věta 4.2 Ke každému ZA (resp. RZA) P existuje ZA (resp. RZA) P, který přijímá s vyprázdněním zásobníku, takový, že L(P) = L(P ). Důkaz. (Hlavní myšlenka) Opět budeme konstruovat automat P tak, aby simuloval automat P. Kdykoli automat P dospěje do koncového stavu, přejde automat P do speciálního stavu q ε, který způsobí vyprázdnění zásobníku. Musíme však uvážit situaci, kdy automat P je v konfiguraci s prázdným zásobníkem, nikoli však v koncovém stavu. Abychom zabránili případům, že automat P přijímá řetězec, který nemá být přijat, přidáme k zásobníkové abecedě automatu P znak, jenž bude označovat dno zásobníku a může být vybrán pouze tehdy, je-li automat P ve stavu q ε. Bezkontextové jazyky 1 p.24/31

Ekvivalence bezkontextových jazyků a jazyků přijímaných zásobníkovým automatem Označme třídu všech jazyků přijímaných zásobníkovými automaty symbolem L P. Dokážeme, že L 2 = L P postupem analogickým s důkazem tvrzení L 3 = L M. Ukážeme tedy, že ke každé bezkontextové gramatice existuje ekvivalentní zásobníkový automat, tj. L 2 L P a ke každému zásobníkovému automatu existuje ekvivalentní gramatika typu 2, tj. L P L 2 Pro důkaz inkluze L 2 L P zkonstruujeme (redundantně) automaty modelující oba typy syntaktické analýzy příslušného bezkontextového jazyka. Bezkontextové jazyky 1 p.25/31

L 2 L P Věta 4.3 Necht G = (N, Σ, P, S) je bezkontextová gramatika. Pak existuje zásobníkový automat P, který přijímá s vyprázdněním zásobníku takový, že L(G) = L(P). Důkaz. Zásobníkový automat P vytvoříme tak, aby vytvářel levou derivaci vstupního řetězce v gramatice G (modeloval syntaktickou analýzu shora dolů). Necht P je ZA: P = ({q},σ,n Σ,δ,q,S, ), kde δ je určena takto: Je-li A α pravidlo z P, pak (q,α) δ(q,ε,a) δ(q,a,a) = {(q,ε)} pro všechna a Σ Indukcí lze dokázat ekvivalenci A m w (q,w,a) n (q,ε,ε), m,n 1, w Σ což pro případ A = S znamená L(G) = L(P). Bezkontextové jazyky 1 p.26/31

Příklad 4.10 Ke gramatice G = ({S},{0,1},{S 0S1,S 01},S), sestrojíme zásobníkový automat P, který modeluje syntaktickou analýzu shora dolů: Skutečně, např. derivaci P = ({q},{0,1},{s,0,1},q,s,0), kde δ(q,ε,s) = {(q,0s1),(q,01)} δ(q,0,0) = {(q,ε)} δ(q,1,1) = {(q,ε)} S 0S1 00S11 000111 odpovídá posloupnost přechodů automatu P : (q,000111,s) (q,000111,0s1) (q,00111,s1) (q,00111,0s11) (q,0111,s11) (q,0111,0111) (q,111,111) (q,11,11) (q,1,1) (q,ε,ε) Bezkontextové jazyky 1 p.27/31

Věta 4.4 Necht G = (N,Σ,P,S) je bezkontextová gramatika. Pak lze ke gramatice G sestrojit RZA P takový, že L(G) = L(P). Důkaz. RZA P sestrojme tak, aby modeloval syntaktickou analýzu zdola nahoru. Necht P je RZA kde δ je určena takto: P = ({q,r},σ,n Σ {#},δ,q,#,{r}) 1. Je-li A α pravidlo z P, pak δ(q,ε,α) obsahuje (q,a R ). - redukce 2. δ(q,a,ε) = {(q,a)} pro všechna a Σ - shift 3. δ(q,ε,s#) = {(r,ε)} Indukcí lze opět dokázat L(G) = L(P). Bezkontextové jazyky 1 p.28/31

Příklad 4.11 Na gramatiku G = ({S},{0,1},{S 0S1,S 01},S) aplikujeme nyní větu 5.4. Výsledný RZA bude mít tvar: kde δ je definována takto P = ({q,r},{0,1},{0,1,s,#},δ,q,#,{r}) δ(q,ε,0s1) = {(q,s)} redukce δ(q,ε,01) = {(q,s)} redukce δ(q,0,ε) = {(q,0)} shift δ(q,1,ε) = {(q,1)} shift δ(q,ε,#s) = {(r,ε)} Derivaci S 0S1 0011 odpovídá posloupnosti konfigurací (q, 0011,#) (q, 011,#0) (q,11,#00) (q,1,#001) (q,1,#0s) (q,ε,#0s1) (q,ε,#s) (r,ε,ε) Poznámka 4.1 Vrchol zásobníku uvádíme, pro lepší čitelnost, vpravo Bezkontextové jazyky 1 p.29/31

L P L 2 Věta 4.5 Necht P = (Q,Σ,Γ,δ,q 0,Z 0, ) je zásobníkový automat přijímající s vyprázdněním zásobníku. Pak existuje gramatika G = (N, Σ, P, S) taková, že L(P) = L(G). Důkaz. Gramatiku G budeme definovat formálně takto: N = {[qzr] q,r Q,Z Γ} {S} Jestliže (r,x 1 X 2...X k ) δ(q,a,z), k 1, pak k P přidej pravidla tvaru [qzs k ] a[rx 1 s 1 ][s 1 X 2 s 2 ]...[s k 1 X k s k ] pro každou posloupnost stavů s 1,s 2,...,s k z množiny Q Jestliže (r,ε) δ(q,a,z), pak k P přidej pravidlo [qzr] a (pro a Σ {ε}) Pro každý stav q Q přidej k P pravidlo S [q 0 Z 0 q] Indukcí lze dokázat S [q 0 Z 0 q] + w právě když (q 0,w,Z 0 ) (q,ε,ε) Bezkontextové jazyky 1 p.30/31

Ekvivalence L 2 = L P Věta 4.6 Třída bezkontextových jazyků a třída jazyků přijímaných zásobníkovými automaty jsou totožné. Důkaz. Přímý důsledek vět 5.4 a 5.5. Bezkontextové jazyky 1 p.31/31