}w!"#$%&'()+,-./012345<ya

Podobné dokumenty
Petriho sítě PES 2007/2008. Doc. Ing. Tomáš Vojnar, Ph.D.

Je regulární? Pokud ne, na regulární ji upravte. V původní a nové gramatice odvod te řetěz 1111.

IB005 Formální jazyky a automaty a IB102 Automaty, gramatiky a složitost

Podobnosti trojúhelníků, goniometrické funkce

Automaty a gramatiky

Konstrukce na základě výpočtu I

Automaty a gramatiky. Úvod do formáln. lních gramatik. Roman Barták, KTIML. Příklady gramatik

( ) ( ) Sinová věta II. β je úhel z intervalu ( 0;π ). Jak je vidět z jednotkové kružnice, úhly, pro které platí. Předpoklady:

4.4.3 Kosinová věta. Předpoklady:

4.4.1 Sinová věta. Předpoklady: Trigonometrie: řešení úloh o trojúhelnících.

{ } ( ) ( ) Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25

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.

Převody Regulárních Výrazů. Minimalizace Konečných. Regulární jazyky 2 p.1/35

Půjdu do kina Bude pršet Zajímavý film. Jedině poslední řádek tabulky vyhovuje splnění podmínky úvodního tvrzení.

6. Zobrazení δ: (a) δ(q 0, x) obsahuje x i, x i Z. (b) δ(x i, y) obsahuje y j, x i y j P 7. Množina F je množinou koncových stavů.

Integrály definované za těchto předpokladů nazýváme vlastní integrály.

Automaty a gramatiky(bi-aag)

Lineární nerovnice a jejich soustavy

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

Definice. Necht M = (Q, T, δ, q 0, F ) je konečný automat. Dvojici (q, w) Q T nazveme konfigurací konečného automatu M.

2.5.4 Věta. Každý jazyk reprezentovaný regulárním výrazem je regulárním jazykem.

Jsou to rovnice, které obsahují neznámou nebo výraz s neznámou jako argument logaritmické funkce.

Konstrukce na základě výpočtu II

Minimalizace automatů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 28. března / 31

4.3.9 Sinus ostrého úhlu I. α Předpoklady: Správně vyplněné hodnoty funkce a c. z minulé hodiny.

Plánováníá a rozvrhování

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 7. března / 46

Stereometrie metrické vlastnosti 01

Automaty a gramatiky

Zkoušku snadno provedeme tak, že do soustavy (1), která je ekvivalentní dané soustavě rovnic, dosadíme příslušné hodnoty s a p.

5. Konstrukce trojúhelníků Konstrukce trojúhelníků podle vět sss, sus, usu, Ssu (ssu):

3.1.3 Vzájemná poloha přímek

Stereometrie metrické vlastnosti

= = = : 1 k > 0. x k + (1 x) 4k = 2k x + 4 4x = 2 x = x = = 2 : 1.

4.2.1 Goniometrické funkce ostrého úhlu

7 Analytická geometrie

Jak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby:

Rovinná napjatost tenzometrická růžice Obsah:

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306

3.2.1 Shodnost trojúhelníků I

Úlohy školní klauzurní části I. kola kategorie C

Souhrn základních výpočetních postupů v Excelu probíraných v AVT listopad r r. . b = A

Konstrukce na základě výpočtu I

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU

Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4)

x + F F x F (x, f(x)).

( ) ( ) ( ) Exponenciální rovnice Řeš v R rovnici: = ŘEŠENÍ: Postup z předešlého výpočtu doplníme využitím dalšího vztahu: ( ) t s t

Formální jazyky. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 6. března / 48

Spojitost funkce v bodě, spojitost funkce v intervalu

Výfučtení: Goniometrické funkce

ANALYTICKÁ GEOMETRIE V PROSTORU

NMAF061, ZS Písemná část zkoušky 25. leden 2018

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

8. cvičení z Matematiky 2

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

Definice limit I

1.7.4 Výšky v trojúhelníku II

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

Sbírka příkladů do IFJ. Petr Zemek

Teorie jazyků a automatů

2.1 - ( ) ( ) (020201) [ ] [ ]

II. INTEGRÁL V R n. Obr. 9.1 Obr. 9.2 Integrál v R 2. z = f(x, y)

63. ročník matematické olympiády III. kolo kategorie A. Ostrava, března 2014

Říkáme, že přímka je tečnou elipsy. p T Přímka se protíná s elipsou právě v jednom bodě.

VIII. Primitivní funkce a Riemannův integrál

Automaty a gramatiky. Roman Barták, KTIML. Důkaz věty o isomorfismu reduktů. Věta o isomorfismu reduktů. Pro připomenutí

Nerovnosti a nerovnice

( a) Okolí bodu

( ) ( ) Pythagorova věta, Euklidovy věty II. γ = 90, je-li dáno: c = 10, c = 6. Předpoklady: 3205

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

5.1.5 Základní vztahy mezi body, přímkami a rovinami

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c

Technická dokumentace Ing. Lukáš Procházka

Geometrie. Mgr. Jarmila Zelená. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou

Teorie jazyků a automatů

Jednoznačné a nejednoznačné gramatiky

integrovat. Obecně lze ale říct, že pokud existuje určitý integrál funkce podle různých definic, má pro všechny takové definice stejnou hodnotu.

PODOBNÁ ZOBRÁZENÍ 1. SHODNOST TROJÚHELNÍKŮ 2. PRÁVOÚHLÝ TROJÚHELNÍK

Úlohy krajského kola kategorie A

3. ROVNICE A NEROVNICE Lineární rovnice Kvadratické rovnice Rovnice s absolutní hodnotou Iracionální rovnice 90

3. Kvadratické rovnice

Repetitorium z matematiky

Teorie jazyků a automatů I

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

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA

Větu o spojitosti a jejich užití

Studijní materiály ke 4. cvičení z předmětu IZSE

2.2.9 Grafické řešení rovnic a nerovnic

URČITÝ INTEGRÁL FUNKCE

V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním

NMAF061, ZS Písemná část zkoušky 16. leden 2018

3.2. LOGARITMICKÁ FUNKCE

25. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE

Obsah rovinného obrazce

4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje.

NEWTONŮV INTEGRÁL. V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

Automaty a gramatiky. Organizační záležitosti. Přednáška: na webu ( Proč chodit na přednášku?

Transkript:

}w!"#$%&'()+,-./012345<ya Fulty of Informtis Msryk University Brno Cvičení k předmětu IA006 Vyrné kpitoly z teorie utomtů Jiří Brnt Ivn Černá poslední modifike 22. ledn 2009

Funke FIRST FOLLOW Opkování motive 1.1 Je dán následujíí grmtik G. Nvrhněte PDA (zásoníkový utomt), který nlyzuje slov nd eedou,, metodou shor dolů. G = ({S, A},{,, },P, S), kde P = { S S S A, A A ε } 1.2 Nvrhněte LL(1) jednoduhou grmtiku pro jzyk zpsný následujíí množinou ) {1 n 2 0 n 1 m 2 0 m n > 0, m 0} ) {1 n 2 0 n 1 m 2 0 m n 0, m 0} Poznámk: V jednoduhé LL(1) grmtie zčínjí všehny prvé strny prvidel terminálem, prvidl se stejnou levou strnou zčínjí různým terminálem. 1.3 Rozmyslete si jk proíhá nlýz jednoduhýh LL(1) grmtik. 1.4 Njděte jzyk, který se nedá generovt žádnou jednoduhou LL(1) grmtikou. FIRST FOLLOW Nehť G = (N, Σ, P, S) je ezkontextová grmtik. Funke F IRST G F OLLOW G jsou definovány následovně: F IRSTk G : (Σ N) 2 Σ F IRSTk G(α) = {w Σ (α w w k) (α wu w = k ; u Σ )} F OLLOWk G : N 2Σ F OLLOWk G(A) = {w Σ S uaα, w F IRST k (α) ; u Σ, α (Σ N) } Poznámk: Pozor n typ rgumentu u jednotlivýh funkí. Funke F IRSTk G (α) ere jko rgument řetěze terminálů neterminálů (α (Σ N) ), nrozdíl od funke F OLLOWk G (A), jejíž rgumentem je vždy právě jeden neterminál (A N). Běžně se používjí zkráené zápisy funkí, F I k (α) pro F IRSTk G(α) F O k (A) pro F OLLOWk G (A) (G je zřejmé z kontextu typiky se neuvádí). Poznámk: Definie funkí F IRSTk G F OLLOW k G lze přirozeně rozšířit tké n množiny odpovídjííh rgumentů, ož je užitečné zejmén pro funki F IRST. F IRST G k : 2(Σ N) 2 Σ F IRST G k (M) = α M F IRST G k (α) F OLLOWk G : 2N 2 Σ F OLLOWk G(M) = A M F OLLOW k G(A) 1

Operátor k k : 2 Σ 2 Σ 2 Σ A k B = {w Σ (w A B w k) (wu A B w = k u Σ )} Poznámk: Neformálně řečeno, operátor k provádí zřetězení množin terminálníh řětězů ořezání výslednýh řetězů n řetěze délky mximálně k. Tuto operi je tké možné relizovt v různýh lgoritmeh jko F IRSTk G (A B). Všimněme si le, že striktně formálně lze toto použít pouze je-li z kontextu dán grmtik G. Algoritmus pro výpočet funke FIRST Je dán grmtik G = (N, Σ, P, S) řetěze α = Y 1 Y 2... Y l, kde Y x N Σ. 1) F I k (x) = {x} pro x Σ {ε}, 1 x l 2) Výpočet F I k (x) pro x N: Nehť N = {X 1, X 2,..., X n }. Budeme počítt hodnotu F I k (X i ) součsně pro všehny neterminály (i = 1,..., n). Nehť všehn prvidl pro neterminál X i jsou tto: Potom X i Y1 1... Yk 1 1 Y1 2... Yk 2 2... Y j 1... Y j k j F I k (X i ) = [ F I k (Y1 1 ) k F I k (Y2 1 ) k... k F I k (Yk 1 1 ) ]... [ F I k (Y1 1 ) k F I k (Y2 1 ) k... k F I k (Yk 1 1 ) ]. Hodnoty F I k (X i ) jsou pevnými ody uvedené soustvy rekurzivníh rovni. Počáteční hodnoty jsou F I k (X i ) =. 3) F IRST k (α) = F I k (Y 1 ) k F I k (Y 2 ) k k F I k (Y l ) Algoritmus pro výpočet funke FOLLOW Je dán redukovná grmtik G = (N, Σ, P, S). Funke F O je definován pouze pro neterminály. Postupně počítáme hodnoty: F O 1 (A) pro všehny A N, F O 2 (A) pro všehny A N. F O k (A) pro všehny A N Při výpočtu F O i (A) postupujeme následovně: 1) F O 0 (A) := {ε} pro A N. F O i (S) := {ε} F O i (A) := pro A N \ {S}. 2) Pro kždé prvidlo tvru: B αaβ P, kde β ε F O i (A) := F O i (A) [(F I i (β) {ε}) i F O i 1 (B)] 3) OPAKUJ Pro kždé prvidlo tvru: B αaβ P, kde β = ε neo ε F I 1 (β) Tk dlouho, dokud se nedosáhne pevného odu. F O i (A) := F O i (A) F O i (B) 2

Poznámk: Hodnotu výrzu F IRSTk G (α) lze intuitivně vypočítt lterntivním způsoem. Přesně řečeno lze prozkoumt všehny možné derive vyházejíí z řetěze α vzít v potz terminální prefixy délky k z održenýh větnýh forem (větné formy musí ýt normovné, tj. vyderivovtelné do terminálního řetěze). Poznámk: Intuitivně (tj. ne přesně podle lgoritmu) lze postupovt i při výpočtu hodnoty funke F OLLOWk G (A). Seství se rovnie tk, jk uvedeno v lgoritmu tyto se řeší líným vyhodnoováním, tj. jednotlivé členy rovni se počítjí ž v okmžiku, kdy jsou potřeuj. Avšk i při tomto postupu může dojít k definii rekurzivní rovnie, npříkld: F O 2 (A) = {} {, } F O 1 (B) F O 2 (A). Tuto situi lze n intuitivní úrovni řešit vypuštěním členu F O 2 (A), neoť F O 2 (A) nepřináší ni nového do F O 2 (A), tj nmísto předhozí rekurzivní rovnie se použije: F O 2 (A) = {} {, } F O 1 (B). V oené rovině tkto rekurzivní rovnie smozřejmě řešit nelze, le v tomto kontextu je to možné. 1.5 Podle lgoritmu řešte F I 2 (A) F I 3 (Ae) pro grmtiku G = ({A, B, C},{,, d},p, A), kde P = { A B, B A C d, C B d } 1.6 Podle lgoritmu řešte F I 2 (A) F I 3 (A) pro grmtiku G = ({A},{, },P, A), kde P = { A A, A } 1.7 Vypočítejte F I 1 (BB), F I 2 (BB), F O 1 (A), F O 1 (S), F O 1 (B), F O 1 (C), F O 3 (A), F O 3 (S), F O 3 (C), F I 1 (SAB), F I 4 (SAB) pro následujíí grmtiku: G = ({S, A, B, C},{,,, e, d},p, S), kde P = { S A B, A A SCe ε, B C ε, C d ε } 1.8 Podle lgoritmu řešte F O k (X), kde k = 1, 2, 3, 4 X {S, A, B, C, D} pro následujíí grmtiku: G = ({S, A, B, C, D},{,, d,, x, y, z},p, S), kde P = { S ABCD ε, A ASd ε, B SA xc ε, C Sy Cz ε, D BD ε } 1.9 Vypočítejte F O k (X), kde k = 1, 2, 3, 4 X {S, A, B, C, D} pro následujíí grmtiku: G = ({S, B, A, D, C},{,,, d},p, S), kde P = { S BB, A A A, B DA A, C B B, D d dc } 3

SLL(k) grmtiky nlyzátory Grmtik je SLL(k), právě když pro všehny neterminály A N, pro kždá dvě různá prvidl A β, A γ pltí: F I k (β F O k (A)) F I k (γ F O k (A)) = 2.1 Ověřte, zd následujíí grmtik je SLL(2): G = ({S, X, Y },{, },P, S), kde P = { S X, X Y Y, Y ε } 2.2 Ověřte, zd grmtik je SLL(3) G = ({S, A, B},{, },P, S), kde P = { S AB AB, A, B B } 2.3 Nvrhněte SLL(2) nlyzátor pro následujíí grmtiku nlyzujte slovo slovo. G = ({S, A, B, D},{,, },P, S), kde P = { S AA, S BB, A A, A, B D, D D, D ε } 2.4 Nvrhněte SLL(3) nlyzátor pro grmtiku nlyzujte slovo. G = ({S, A, B},{, },P, S), kde P = { S A, S B, A A, A B, B A, B ε } 4

LL(k) grmtiky nlyzátory Grmtik je LL(k), právě když pro dvě liovolná různá prvidl grmtiky A β, A γ pro všehny nejlevější větné formy tvru waα pltí: F I k (β α) F I k (γ α) = Grmtik je LL(1) právě když je SLL(1). Je-li grmtik G SLL(k), pk je tké LL(k). 3.1 Ověřte, zd je následujíí grmtik LL(2): G = ({S, X, Y },{, },P, S), kde P = { S X, X Y Y, Y ε } 3.2 Ověřte, zd je následujíí grmtik LL(3): G = ({S, A, B},{, },P, S), kde P = { S AB AB, A, B B } 3.3 Ukžte, že grmtik není LL(k) pro žádné k: G = ({S, A, B},{,, 0, 1},P, S), kde P = { S A B, A A 0, B B 1 } 3.4 Ukžte, že grmtik je LL(k): G = ({S, T, A, B}, {,, }, P, S), kde P = { S T T SA A A B B k 1 d ε 3.5 Zkonstruujte LL(2) nlyzátor pro grmtiku G: G = ({S, A},{, },P, S), kde P = { S ε, S A, A S, A } 3.6 Zkonstruujte LL(3) nlyzátor pro grmtiku G: G = ({S, A, B},{, },P, S), kde P = { S AB, S AB, A, A, B B, B } 5

3.7 Njděte LL(1) nlyzátor pro jzyk generovný následujíí grmtikou: G = ({ST AT, V AR, IDLIST }, {if, id, then, else, fi, while, do, od, (, ), :=}, P, ST AT ) P = { ST AT if id then ST AT else ST AT fi ST AT while id do ST AT od ST AT V AR := V AR ST AT id (IDLIST ) V AR id id (IDLIST ) IDLIST id id (IDLIST ) 6

Trnsforme LL(k) grmtik Motive: Pltí: Grmtik je LL(1), právě když je SLL(1). Pro grmtiky, které jsou SLL(1), se sndno konstruuje nlyzátor. Pro dnou ezkontextovou grmtiku G je nerozhodnutelné, zd je LL(k) pro nějké k 0. Je-li dán ezkontextová grmtik G pevné k tkové, že G není LL(k), pk je nerozhodnutelné určit, zd G má ekvivletní grmtiku, která je LL(k). Nvzdory výše uvedeným fktům existuje několik trnsformí, které zhovávjí jzykovou ekvivleni které někdy vedou k LL(1) grmtie. Grmtik není LL(1) prinipielně ze dvou důvodů. Těmi jsou konflikt first-first konflikt first-follow. Správný postup řešení příkldu převod n LL(1) grmtiku oshuje tyto tři kroky: nlezení konfliktů v trnsformovné grmtie (pomoí ověření n LL(1)), odstrnění konfliktů níže uvedenými postupy, ověření výsledné grmtiky n LL(1) (při nlezení konfliktů opkování předhozího kroku). Odstrnění levé rekurze 4.1 Odstrňte levou rekurzi v následujíí grmtie: G = ({S, A, B},{,, },P, S), kde P = { S SA SB S AB, A A ε, B BB } Rohová sustitue Nehť G = (N, T, P, S) je ezkontextová grmtik s prvidlem A Bα, nehť všehny B prvidl jsou B α 1 α 2... α m. Nehť G 1 = (N, T, P, S) je grmtik, která vznikl z G vyloučením prvidl A Bα přidáním prvidel A α 1 α α 2 α... α m α. Tto trnsforme nese název rohová sustitue. Je zvláštní tím, že její opkovnou lpikí je možné z grmtiky, která je LL(1) nemá ε-prvidl udělt jednoduhou LL(1) grmtiku. 4.2 Aplikujte rohovou sustitui n následujíí grmtiku: G = ({S, A, B},{,,, d},p, S), kde P = { S AB, A B, B db } 7

4.3 Aplikujte rohovou sustitui n následujíí grmtiku: G = ({S, A, B},{, },P, S), kde P = { S AB, A A ε, B A ε } Levá fktorize Pro LL(1) grmtiku musí pltit: A α, A β F IRST 1 (α) F IRST 1 (β) = nesplnění této podmínky se oznčuje jko konflikt F IRST F IRST. Kolizi může způsoit přítomnost prvidel tvru A αα 1 αα 2... αα n, kde α ε. Kolizi odtsrníme jestliže uvedená prvidl nhrdíme prvidly tvru A αa, A α 1 α 2... α n. Této trnsformi se říká levá fktorize. Většinou je nutné před touto trnsformí plikovt n grmtiku rohovou sustitui, y konflikty uvedeného typu yly v poždovné formě. 4.4 Aplikujte levou fktorizi n grmtiku: G = ({A, B, C},{,,, d},p, A), kde P = { A B C db B C, B B dc BC, C A } 4.5 Aplikujte levou fktorizi n grmtiku: G = ({A, B, C},{, x, y, z},p, A), kde P = { A Bxx Cyy zy zx, B Bx z, C ycy z } 4.6 Odstrňte konflikt first-first v následujíí grmtie. G = ({S, A, B},{,, },P, S), kde P = { S A B, A A, B B } 4.7 Odstrňte konflikt first-first v následujíí grmtie. G = ({A, B, C},{,,, d},p, A), kde P = { A B CB, C C B, B B d } 4.8 Odstrňte konflikt first-first v následujíí grmtie. G = ({A, B, D},{, d,, x, y, z},p, A), kde P = { A B Dd, B x y, D Bz } 4.9 Odstrňte konflikt first-first v následujíí grmtie. G = ({S, A, B},{,,, d},p, S), kde P = { S A AB, A, B A dd } 8

4.10 Odstrňte konflikt first-first v následujíí grmtie. G = ({S, A, B},{,, },P, S), kde P = { S A B, A A ε, B B ε } Pohlení terminálního symolu Pro LL(1) grmtiku musí pltit: A α, A ε F IRST 1 (α) F OLLOW 1 (A) = nesplnění této podmínky se oznčuje jko konflikt F IRST F OLLOW. Nehť {} F IRST 1 (γ i ) F OLLOW 1 (A). Může to ýt způsoeno tím, že v grmtie je prvidlo následujíího tvru: X αaβ přitom A prvidl jsou tyto: A γ 1... γ n. Konflikt se můžeme pokusit odstrnit tk, že prvidlo X αaβ nhrdíme prvidlem X α[a]β pro nový neterminál [A] přidáme prvidl [A] γ 1... γ n. Tím jsme z množiny F OLLOW 1 (A) vyloučili symol (z předpokldu, že tm není z jiného důvodu). 4.11 Řešte kolizi FIRST-FOLLOW v následujíí grmtie: G = ({A, B, C},{,, },P, A), kde P = { A BC, B ε C, C C } 4.12 Řešte kolizi FIRST-FOLLOW v následujíí grmtie: G = ({A, B, C},{, },P, A), kde P = { A BC, B B ε, C } Extrke prvého kontextu Pohlení terminálního symolu je možné udělt pouze tehdy, vyskytuje-li se přímo z prolemtikým neterminálem. Situe le může vypdt npříkld tkto: X αay β Y β + γ. V tomto přípdě nelze přímo použít trnsformi pohlení terminálního symolu, můžeme se všk pokusit (opkovně) sustituovt z neterminál ezprostředně vprvo od neterminálu A održet tk konflikt v poždovné formě. Této trnsformi říkáme extrke prvého kontextu. 4.13 Pokuste se provést extrki prvého kontextu zmyslete se: G = ({S, A, B},{d,,, },P, S), kde P = { S Ad, A AB ε, B A } 4.14 Řešte kolizi FIRST-FOLLOW v následujíí grmtie: G = ({S, B, A, C},{,, d, },P, S), kde P = { S BA AB, A ε C BCd, B B CdC, C C d } 4.15 Trnsformujte n LL(1) následujíí grmtiku: G = ({E, T, F, S},{o, n,, (, )},P, E), kde P = { E EoT T, T T of F, F ns S, S (E) } 9

4.16 Ověřte, zd je následujíí grmtik LL(1) grmtik. Pokud není, použijte stndrdní trnsforme n úprvu grmtiky n LL(1) o výsledné grmtie dokžte, že je LL(1) grmtikou. G = ({S, A},{,, },P, S), kde P = { S A, A ε A } 10

LR(0) SLR(k) nlyzátory LR(0) nlyzátor 5.1 Zkonstruujte LR(0) nlyzátor G = ({S, A},{,, },P, S), kde P = { S A, S A, A A, A A, A } nlyzujte slovo 5.2 Dokžte, neo vyvrťte, že následujíí grmtik je LR(0) G = ({S, A, B, C},{,,, d},p, S), kde P = { S A, S B, S C, S dcd, A A, B A C, C A } 5.3 Zkonstruujte LR(0) nlyzátor nlyzujte liovolné slovo G = ({S, A, C, B, D},{,,, d},p, S), kde P = { S A, S A, S C, S dcd, A B, B, C D, D d } SLR(k) nlyzátor 5.4 Zkonstruujte SLR(1) SLR(2) nlyzátor G = ({S, A, B},{, },P, S), kde P = { S AB, A A, A ε, B B, B } nlyzujte slovo 5.5 Njděte všehny SLR(2) konflikty 11

G = ({S, P, R},{,,, d},p, S), kde P = { S P P, P R, P R, P d, P d, R d } 5.6 Dokžte, že grmtik z příkldu 5.5 není SLR(k) pro žádné k 5.7 Rozhodněte, zd následujíí grmtik je SLR(k) G = ({X, S, L, R},{=, i, d, },P, X), kde P = { X S, S L = R, S R, L id, L R, R L } 5.8 Zkonstruujte SLR(1) nlyzátor: G = ({X, S, A},{+, (, ), },P, X), kde P = { X S, S S + A, S A, A (S), A (S), A } LR(0) SLR(k) grmtiky 5.9 Zkonstruujte LR(0) grmtiky L 1 = {1 n 0 n n 0} {1 n 0 2n n 0} L 2 = { 1 n 0 n n 0} { 1 n 0 2n n 0} L 3 = {1 n 0 m m > n > 0} L 4 = {w#w R w {0, 1} } 5.10 Dokžte, že následujíí grmtik není LR(0) le je SLR(1) G = ({X, S, A},{+, (, ), },P, X), kde P = { X S, S S + A, S A, A (S), A (S), A } 5.11 Nlezněte o možná nejjednoduší grmtiku tkovou, že ) není LR(0) ) není SLR(1) protože má konflikt čtení-reduke ) není SLR(1) protože má konflikt reduke-reduke 5.12 Ověřte, zd je následujíí grmtik SLR(1) či SLR(2) grmtik. G = ({X, S, B},{, },P, X), kde P = { X S, S B, S, B S } 12

LR(k) LALR(k) nlyzátory 6.1 Rozhodněte, zd je grmtik LR(0), SLR(1), LALR(1), LR(1) G = ({X, S, A, B},{, d,, e, },P, X), kde P = { X S, S Ad, S Bd, S Be, S Ae, A, B } 6.2 Rozhodněte, zd je grmtik LR(0), SLR(1), LALR(1), LR(1) G = ({X, S, A, B, C, D, E},{, },P, X), kde P = { X S, S AB, A, B CD, B E, C, D, E } 6.3 Zkonstruujte LALR(1) nlyzátor G = ({X, S, A, B},{,, },P, X), kde P = { X S, S A, S, S B, A S, A B, B } 6.4 Zkonstruujte iniiální stv LR(2) utomtu G = ({S, R},{+, (, ), },P, S), kde P = { S R, R RR, R R + R, R (R), R } 6.5 Proveďte LR(1) nlýzu G = ({X, S, A},{, },P, X), kde P = { X S, S AS, S ε, A } 13

6.6 Zkonstruujte nlyzátor nlyzujte slov G = ({S, A, B},{0, 1},P, S), kde P = { S AB, A 0A1, A ε, B 1B, B 1 } 14

Bisimule 7.1 Pro dný přehodový systém njděte všehny dvojie isimulčně ekvivlentníh stvů metodou hry. Pomoí isimulčního kolpsu k němu zkonstruujte ekvivlentní přehodový systém. 1 2 3 5 6 4 7.2 Pro dný přehodový sytém njděte mximální isimuli metodou postupnýh proximí. 1 2 3 4 5 7.3 Je dán přehodový systém P 1 (nekonečně stvový). Zkonstruujte přehodový systém P 2 tkový, y pltilo: (i) P 2 má stv I tkový, že I 1 (ii) P 2 je konečně stvový Jká je mximální isimule pro P 1? P 1 : 1 2 3 4 5 7.4 Njděte konečné utomty A 1, A 2 ez ε-přehodů tkové, y splňovly všehny tři následujíí podmínky: (i) L(A 1 ) = L(A 2 ) (ii) L(A 1 ) je nekonečný (iii) Počáteční stvy utomtů A 1, A 2 nejsou isimulčně ekvivlentní 15

7.5 Dokžte neo vyvrťte: 2 8. Njděte mximální isimuli. 1 2 8 7 3 4 6 5 7.6 Njděte nejmenší n, tkové y pltilo 3 n 4, le 3 n 1 4. Njděte mximální isimuli. Fktorizujte podle rele isimule. 1 2 3, 4 5 6 7.7 Njděte nejmenší n, tkové y pltilo 3 n 4, le 3 n 1 4. Njděte mximální isimuli. Fktorizujte podle rele isimule. 3 4 16

Přehodové systémy BPA BPP 8.1 Otázky: Je dný proes popsný deterministikým konečným utomtem. Jk zjistím, které stvy jsou isimulčně ekvivlentní? Njděte postčujíí podmínku n to, y pro normovný přehodový systém, yl jzyková ekvivlene shodná s isimulí. Pro normovné BPA ověřte: ABC DBC A D Njděte nutnou podmínku, y pro BPA pltilo AA A. 8.2 Dán BPA lger. Njděte přehodový systém, který je určen X XBB X ε B BBB B ε 8.3 Jký jzyk generuje následujíí BPA (z proměnné X)? X XA X XB X ε A ε B ε 8.4 Nkreslete přehodový systém určený BPP lgerou X X B X X D B ε D d ε (X e ε ) 8.5 Vyjádřete dný přehodový systém BPA i BPP syntxí: 17

8.6 Vyjádřete dný přehodový systém BPA syntxí: d d d 8.7 Vyjádřete dný přehodový systém BPP syntxí: 8.8 Vyjádřete dný přehodový systém BPA syntxí: 8.9 Vyjádřete dný přehodový systém BPP syntxí: 18

Konstruke tel pro BPA Tlo pro γ = δ se skládá z podtel. Kždé podtlo je strom. Podtlo s kořenem Xα = Y β vytvoříme následovně. Nehť k = min{ X, Y }. N uzel Xα = Y β plikujeme k-krát trojii prvidel (REC, SUM, PREFIX). Po k-plikíh jsou některé uzly reziduály, jeden z nih oznčíme jko vytčený podle něj plikujeme n osttní uzly v ktuálním ptře prvidlo SUB (respektive SUBL, neo SUBR). Reziduálem je uzel ve tvru α = γβ (použijeme prvdilo SUBL) neo γα = β (použijeme prvdilo SUBR), přípdně α = β (použijeme prvdilo SUB (tj. SUBL, neo SUBR, n strně nezáleží)). Po pliki odpovídjíího prvidl SUB ( jen tehdy) održíme listy podtl. Po dokončení podtl, zkontrolujeme všehny jeho listy. U kždého listu nstává jeden z následujííh přípdů: List je úspěšný. (Netře pro něj udovt podtlo.) List je neuspěšný. Pk je elé tlo neúspěšné. List není ni úspěšný ni neúspěšný, stává se kořenem nového podtl. Jestliže v průěhu tvory kteréhokoliv podtl se některý uzel (nemusí to ýt nutně list) ukáže ýt neúspěšným podle níže uvedenýh kritérií, je neúspěšné elé tlo. Kždé podtlo je téměř vyvážený strom. Všehny esty v něm jsou stejně dlouhé, liší se mximálně o jedn (po pliki prvidl SUB,SUBL neo SUBR se pod vytčeným reziduálem est neprodlouží, sám reziduál slouží jko list, tedy přípdně i jko kořen dlšího podtl, ztímo pod osttními uzly n stejném ptře se est prodlouží o jedn (díky pliki odpovídjíího prvidl SUB), teprve tyto uzly (o ptro níž než je reziduál) tvoří listy dného podtl). Kritéri úspěšnosti: 1. α = α (tj. levá prvá strn jsou shodné, α zde nemá ni společného s α použitou výše či níže) 2. α = β n estě od tohoto listu do kořene elého tl se vyskytuje uzel se stejným oznčením α = β mezi nimi je lespoň jednou použito prvidlo PREFIX (uzel β = α se nepočítá!) Kritéri neúspěšnosti : 1..α =.β,kde je různé od 2. α = β,kde α je různá od β Poznámk: 1. Výše uvedená metod funguje pouze pro NORMOVANÉ BPA!!! 2. Poznámk o zápisu: XY = X.Y Prvidl Xα = Y β Eα = F β REC def kde X = E Y def = F α = β P REF IX α = β 19

( m i=1 iα i )α = ( n j=1 jβ j )β { i α i α = f(i) β f(i) β} m i=1 { g(j)α g(j) α = j β j β} n SUM j=1 kde f : {1,..., m} {1,..., n} g : {1,..., n} {1,..., m} m, n 1 α i α = β i β SUBL α i γ = β i α i α = β i β α i = β i γ SUBR 9.1 Zkonstruujte důkz P QQ = SU kde α = γβ je vytčený residuál kde γα = β je vytčený residuál P = P QQ + RQQ + Q = R = P S = SU + T + T = SU U = V V = 9.2 Zkonstruujte důkz F X = A, XCB = BCX, F BX = AB, CXB = XBB A = BCX + B B = C C = D D = D + F = + XC X = Y Y = D 9.3 Dokžte DH DF G, AH AGF, EF D, BA DG A = BC + D + EF B = C = D = H + C E = G F = G = A H = BA 9.4 Zkonstruujte důkz Y = C X = Y X + Y = X A = C + C = AA 9.5 Zkonstruujte důkz X = A X = XX + + Y Y = Y X + + X A = AA + + A 20

9.6 Zkonstruujte důkz A = E A = BC + H B = C = d + DE D = F F = E = C + GH G = H = d + I I = K K = A 9.7 Zkonstruujte důkz A = X X = d + XX + Y + Z Y = X + Y Y + Z + d Z = X A = d + AA + A + B B = A 9.8 Zkonstruujte důkz AB = XY B A = B + C X = + Z B = B + Y = Y + Z = Z + X C = C + A 9.9 Zkonstruujte důkz F BI = AB A = BCI + B B = C C = D D = D + F = + IC I = K K = D 21

Bühiho utomty 10.1 Nvrhněte nedeterministiký BA pro jzyk všeh ω-slov nd eedou Σ = {,, }, která oshují nekonečný počet symolů. 10.2 Nvrhněte nedeterministiký BA pro jzyk všeh ω-slov nd eedou Σ = {,, }, která oshují nekonečný počet symolů pro která pltí, že pokud liovolný konečný prefix slov oshuje lihý počet symolů pk oshuje tké sudý počet symolů. 10.3 Nvrhněte nedeterministiký BA pro jzyk L = {w = w 1 w 2 w 3... w i {, } pro i 1, nekonečně mnoho j N tkovýh, že w j = w j+4 } 10.4 Nehť Σ = {0, 1, #}. Pro slovo w = 0 1 3... Σ ω dvě čísl i, j N, 0 i j oznčme w[i, j] podslovo i... j. Pro pevně zvolené n N definjme jzyk: L n ={w w ((0 + 1) n 1 #) ω, pro nekonečně mnoho i 0 pltí: w[2in, (2i + 1)n 1] w[(2i + 1)n, (2i + 2)n 1]}. Popište dv nedeterministiké BA A 1, A 2 velikosti O(n) tkové, y L n = L(A 1 ) L(A 2 ). 10.5 Dokžte, neo vyvrťte: Ke kždému NBA A lze zkonstruovt NBA A s jediným počátečním stvem. 10.6 Nehť jzyk L = {w {0, 1} ω uď 0 inf(w), neo 1 inf(w)}. ) zkonstruujte nedeterministiký BA ) diskutujte, zd je možné sestrojit pro dný jzyk NBA s jedním konovým stvem ) dokžte, že pro dný jzyk nelze sestrojit NBA s jedním konovým stvem 10.7 Konstruujte NBA pro následujíí jzyky L nd eedou {,,, d}. ) L = {w inf(w) = {}} ) L = {w inf(w) = {, }} ) L = {w inf(w)} d) L = {w inf(w) inf(w)} e) L = {w {, } inf(w) d inf(w)} f) L = {w {, } inf(w)} 10.8 Buď A konečný utomt. Oznčme L(A) množinu slov, kterou keptuje konečný utomt A. Oznčme L ω (A) množinu ω-slov, kterou keptuje Bühiho utomt A. Njděte utomt A tk, y pltilo ) (L(A)) ω = L ω (A) ) (L(A)) ω L ω (A) 22