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



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

Automaty a gramatiky

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

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

Technická dokumentace Ing. Lukáš Procházka

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

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

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

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

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

Teorie jazyků a automatů I

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

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

Střední škola obchodu, řemesel, služeb a Základní škola, Ústí nad Labem, příspěvková organizace Vzdělávací středisko Trmice

Automaty a gramatiky(bi-aag)

Podobnosti trojúhelníků, goniometrické funkce

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

7 Analytická geometrie

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

4.4.3 Kosinová věta. Předpoklady:

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

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

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

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.8.5 Lineární nerovnice s parametrem

Teorie jazyků a automatů

Úvod do Teoretické Informatiky ( UTI)

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ů.

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

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

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

METODICKÝ NÁVOD MODULU

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

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

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

DIGITÁLNÍ UČEBNÍ MATERIÁL. Název školy SOUpotravinářské, Jílové u Prahy, Šenflukova 220. Název materiálu VY_32_INOVACE / Matematika / 03/01 / 17

ANALYTICKÁ GEOMETRIE V PROSTORU

Lineární nerovnice a jejich soustavy

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

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

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

Větu o spojitosti a jejich užití

( a, { } Intervaly. Předpoklady: , , , Problém zapíšeme snadno i výčtem: { 2;3; 4;5}?

MULTIDIMENSIONÁLNÍ JAZYKY A JEJICH AUTOMATY MULTI-DIMENSIONAL LANGUAGES AND THEIR AUTOMATA

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

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

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

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

Automaty a gramatiky

13. Exponenciální a logaritmická funkce

TROJÚHELNÍK. JAN MALÝ UK v Praze a UJEP v Ústí n. L. sin α = b a.

3.2.1 Shodnost trojúhelníků I

Teorie jazyků a automatů

INTEGRACE KOMPLEXNÍ FUNKCE KŘIVKOVÝ INTEGRÁL

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

2.3. DETERMINANTY MATIC

Riemannův určitý integrál.

( ) ( ) ( ) 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

9 Axonometrie ÚM FSI VUT v Brně Studijní text. 9 Axonometrie

H - Řízení technologického procesu logickými obvody

Zvyšování kvality výuky technických oborů

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

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)

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

OBECNÝ URČITÝ INTEGRÁL

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru

3. Kvadratické rovnice

2. Funkční řady Studijní text. V předcházející kapitole jsme uvažovali řady, jejichž členy byla reálná čísla. Nyní se budeme zabývat studiem

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n,

1. Pokyny pro vypracování

( t) ( t) ( ( )) ( ) ( ) ( ) Vzdálenost bodu od přímky I. Předpoklady: 7308

Úvod 1. 3 Regulární jazyky Konečné jazyky Pumping Lemma pro regulární jazyky a nekonečné jazyky Sjednocení...

Vzdělávací materiál. vytvořený v projektu OP VK. Název školy: Gymnázium, Zábřeh, náměstí Osvobození 20. Číslo projektu: CZ.1.07/1.5.00/34.

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

ELEKTŘINA A MAGNETIZMUS Řešené úlohy a postupy: Kapacita a uložená energie

10. Suffixové stromy

KŘIVKOVÉ INTEGRÁLY. Křivka v prostoru je popsána spojitými funkcemi ϕ, ψ, τ : [a, b] R jako množina bodů {(ϕ(t), ψ(t), τ(t)); t

4.2.1 Goniometrické funkce ostrého úhlu

3.2. LOGARITMICKÁ FUNKCE

DERIVACE A INTEGRÁLY VE FYZICE

. V trojúhelníku ABC platí 180. Součet libovolného vnitřního úhlu a jemu odpovídajícího vnějšího úhlu je úhel přímý. /

Přednáška 9: Limita a spojitost

Hyperbola, jejíž střed S je totožný s počátkem soustavy souřadnic a jejíž hlavní osa je totožná

4. Determinanty. Výpočet: a11. a22. a21. a12. = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 a 13 a 22 a 31. a 11 a 23 a 32 a 12 a 21 a 33

Svazy. Def Svaz je algebra S ( M ;, ) = se dvěma binárními operacemi taková, že pro libovolné prvky c M platí následující podmínky axiomy svazu:

Základy teorie matic

2.2.9 Grafické řešení rovnic a nerovnic

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

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

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

Integrální počet - III. část (určitý vlastní integrál)

1. LINEÁRNÍ ALGEBRA 1.1. Matice

Digitální učební materiál

Opakování ke státní maturitě didaktické testy

Řešte daný nosník: a = 2m, b = 2m, c = 1m, F 1 = 10kN, F 2 = 20kN

Prostorové nároky Zatížení Velikost zatížení Směr zatížení Nesouosost Přesnost Otáčky Tichý chod...

( ) ( ) Výrazy Výraz je druh matematického zápisu, který obsahuje konstanty, proměnné, symboly matematických operací, závorky.

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

Transkript:

Sírk příkldů do IFJ Petr Zemek 11. ledn 2012

Osh Předmluv 1 1 Aeedy, řetěze jzyky 3 2 Úvod do překldčů 5 3 Modely regulárníh jzyků 6 4 Speiální konečné utomty 8 5 Lexikální nlýz 10 6 Modely ezkontextovýh jzyků 11 7 Syntktiká nlýz shor dolů 13 8 Syntktiká nlýz zdol nhoru 15 9 Syntxí řízený překld 16 10 Optimlize, generování ílového kódu 17 11 Vlstnosti regulárníh jzyků 19 12 Vlstnosti ezkontextovýh grmtik 20 13 Turingovy stroje Chomského hierrhie 21 Řešení příkldů 22 Litertur 36

Předmluv Tento text slouží jko pomoný mteriál pro studenty předmětu Formální jzyky překldče (IFJ) klářského studijního progrmu Informční tehnologie n Fkultě informčníh tehnologií VUT v Brně. Jeho ílem je poskytnout studentům příkldy, n kterýh si mohou vyzkoušet své nyté znlosti. Oshuje řdu příkldů z kždé proírné olsti, včetně jejih řešení. Pokud v textu nrzíte n hyu, neváhejte mi poslt emil n izemek@fit.vutr.z. Předmět emilu v ideálním přípdě zčínejte prefixem "IFJ sírk: ". V přípdě dotzů lze využít fórum předmětu ve WISu (preferovná vrint, protože váš dotz může zjímt víe studentů). Nezpomeňte vždy zmínit, o kterou verzi textu (= dtum n přední strně) se jedná, yhom předešli nesrovnlostem. Doufám, že vám text přinese užitek. Petr Zemek, 11. ledn 2012 Použití struktur Kždá kpitol oshuje příkldy k jednomu proírnému témtu. Číslování kpitol y mělo sedět s rozvržením přednášek n [3], le jelikož se pořdí přednášek může změnit, nelze to stoproentně zručit. V závěru dokumentu je osženo řešení příkldů. Při řešení příkldů lze postupovt od prvního po poslední. Příkldy oznčené hvězdičkou (viz dále) lze při prvním řešení vyneht. Použitá terminologie, konvene note vyhází z přednášek předmětu IFJ [3] knihy, n které je tento předmět zložen [2]. Pokud yl příkld převzán, je u něj vždy uveden referene n původní zdroj. Použité konvene, které se mohou lišit od přednášek: místo několik hrn z jednoho stvu do druhého je použit jediná hrn, kde jednotlivé symoly jsou odděleny čárkou. Význm hvězd u příkldů: oznčuje příkldy, u kterýh je tře zpřemýšlet nd ráme předmětu IFJ, le které y měli studenti, kteří proírné láte rozumí, v pohodě vyřešit; oznčuje příkldy, k jejihž vyřešení je tře mít znlosti mimo předmět IFJ, ez nihž nemusí ýt příkld pro student IFJ řešitelný v konečném čse. 1

Poděkování N tomto místě yh htěl poděkovt všem, kteří se svými postřehy, poznámkmi rdmi zsloužili o zkvlitnění tohoto textu. Dále yh htěl poděkovt studentům, kteří n vičeníh pokládli zjímvé otázky, které tvořily motivi u řdy příkldů. V neposlední řdě yh htěl poděkovt své přítelkyni, která mi yl oporou. Tento dokument neyl finnován z žádného grntu ni výzkumného záměru vznikl ve volném čse. Historie revizí Jelikož ude tento dokument čsto ktulizován, uvádím seznm proěhlýh revizí. Dtum Popis revize 11.1.2012 Zjednodušeno řešení příkldu 6.3. Z nápd děkuji Rde Škvřilové. 11.1.2012 Doplněno zdání příkldu 8.2 (doplněny hyějíí závorky v množině terminálů). Z nhlášení hyy děkuji Mihlu Strigzdovi. 10.1.2012 Oprveno řešení příkldu 12.1. Z nhlášení hyy děkuji Jiřímu Honovi. 10.1.2012 Oprveno řešení příkldu 8.1. Z nhlášení hyy děkuji Mtúšovi Fedorkovi. 9.1.2012 Oprveno řešení příkldu 7.4 uprveno zdání příkldu 7.5. Z nhlášení hyy děkuji Jkuu Jeřákovi. 9.1.2012 Oprveno řešení příkldů 8.1 8.3. Z nhlášení hy děkuji Fridolínu Pokornému. 5.12.2011 Doplněno zdání příkldu 8.2 (speifike priority operátorů) oprveno jeho řešení. Z nhlášení hy děkuji Fridolínu Pokornému. 5.12.2011 Doplněno zdání příkldu 6.6. Z postřeh děkuji Fridolínu Pokornému. 24.10.2011 Oprveno číslo řešení u příkldu 1.9. Z nhlášení hyy děkuji Mihlu Strigzdovi. 23.10.2011 Zjednodušeno řešení příkldu 3.4. Z postřeh děkuji Fridolínu Pokornému. 22.10.2011 Zjednodušeno řešení příkldu 3.3. Z postřeh děkuji Dávidu Antolíkovi. 22.10.2011 Oprveno řešení odu (k) v příkldu 1.7. Z nhlášení hyy děkuji Fridolínu Pokornému. 21.10.2011 Oprveno zdání odu (h) v příkldu 1.6. Z nhlášení hyy děkuji Lukáši Svtému. 20.10.2011 Oprveno řešení odu (e) v příkldu 1.6. Z nhlášení hyy děkuji Ldislvu Szántovi jednomu studentovi n vičení, jehož jméno ohužel nevím. 4.10.2011 Sjednoen průměr uzlů v přehodovýh grfeh konečnýh utomtů (kosmetiká změn). 20.9.2011 Zveřejněn první verze. 2

Kpitol 1 Aeedy, řetěze jzyky Pokud není řečeno jink, uvžujte u všeh příkldů eedu Σ = {,, }. Příkld 1.1. Jkou délku mjí řetěze, ε? Příkld 1.2. Jké jsou reverze řetězů, ε? Příkld 1.3. Určete všehny prefixy řetěze. Které z nih jsou vlstní? Příkld 1.4. Určete všehny sufixy řetěze. Které z nih jsou vlstní? Příkld 1.5. Určete všehny podřetěze řetěze. Které z nih jsou vlstní? Příkld 1.6. Určete: () () 3 =? () ε 4 =? () εε =? (d) ε =? (e) {}{, }{} =? (f) {} =? (g) {} + {ε} =? (h) Σ {,, } =? (i) {,, } {} =? (j) {, } 2 =? (k) {,, } 3 =? (l) {,,, } {, } =? (m) Σ =? Příkld 1.7. Určete: () =? () + =? () 3 =? (d) =? (e) =? (f) {} =? (g) {} =? (h) {ε} =? (i) {ε} + =? (j) {ε} =? (k) {ε} =? (l) {ε} 5 =? Příkld 1.8 ( ). Opere symetriký rozdíl ( ) dvou množin je definován jko množin, která oshuje prvky, které jsou uď v první množině, neo ve druhé množině, le ne v oou zároveň. Nehť L 1 L 2 jsou dv jzyky nd Σ. 3

() Definujte formálně symetriký rozdíl L 1 L 2 (s využitím náležitosti do množiny ). () Definujte formálně symetriký rozdíl L 1 L 2 pouze pomoí operí sjednoení rozdílu dvou množin. Příkld 1.9 ( ). Mějme jzyk Je L konečný? L = { n > 2 existují,, 1 tkové, že n + n = n} 4

Kpitol 2 Úvod do překldčů Příkld 2.1. Vypište seřďte fáze překldu, jk jdou typiky z seou n logiké úrovni. 5

Kpitol 3 Modely regulárníh jzyků Pokud není řečeno jink, uvžujte u všeh příkldů eedu Σ = {,, }. Příkld 3.1. Rozhodněte, které z následujííh výrzů jsou pltné regulární výrzy (uvžujte i konvene zvedené n přednáškáh). Pokud není výrz pltným regulárním výrzem, zdůvodněte proč. () () 3 () (d) d (e) + (f) ε (g) (h) ε (i) ε ε (j) + + + + + (k) Σ Příkld 3.2. Určete, které jzyky znčí následujíí regulární výrzy. () + + =? () + + ε =? () ( + + ) =? (d) =? (e) ( + ε) =? (f) ( + ) =? Příkld 3.3. Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá právě řetěze oshujíí lihý (nenulový) počet znků 1. Příkld 3.4. Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá právě řetěze oshujíí jko podřetěze 101. Příkld 3.5. Vytvořte regulární výrz nd eedou Σ = {, }, znčíí jzyk oshujíí právě řetěze, které oshují jko podřetěze. Příkld 3.6. Vytvořte regulární výrz nd eedou Σ = {, }, znčíí jzyk oshujíí právě řetěze, které neoshují jko podřetěze. Příkld 3.7. Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá právě řetěze neoshujíí podřetěze 11. Příkld 3.8. Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá prázdný jzyk ( ). 6

Příkld 3.9. Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá právě řetěze zčínjíí prefixem 010. Příkld 3.10. Vytvořte regulární výrz nd eedou Σ = {, }, znčíí jzyk oshujíí právě řetěze končíí sufixem. Příkld 3.11. Převeďte regulární výrz ( + ) n konečný utomt (použijte lgoritmus z přednášek). Příkld 3.12. Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá právě neprázdné řetěze sudé délky neoshujíí 1. Příkld 3.13 ( ). Vytvořte konečný utomt nd eedou Σ = {0, 1}, který přijímá právě řetěze oshujíí stejný počet znků 0 1. Příkld 3.14 ( ). Převeďte následujíí konečný utomt nd eedou Σ = {,, } n ekvivlentní regulární výrz. 0 1 7

Kpitol 4 Speiální konečné utomty Pokud není řečeno jink, uvžujte u všeh příkldů eedu Σ = {,, }. Příkld 4.1. Převeďte zdný konečný utomt n deterministiký. 1 2 3 4 Příkld 4.2. Převeďte zdný konečný utomt n deterministiký. 0 1 ε 2 ε 3 Příkld 4.3. Převeďte zdný deterministiký konečný utomt n ekvivlentní deterministiký konečný utomt ez nedostupnýh neukončujííh stvů. 1 2 3 4 6 5 7 8 Příkld 4.4. Převeďte zdný deterministiký konečný utomt n úplný konečný utomt. 8

1 2 3 5 4 Příkld 4.5. Převeďte zdný úplný konečný utomt n doře speifikovný konečný utomt. 1 2 4, 3,,,, 5 Příkld 4.6. Převeďte zdný úplný konečný utomt n doře speifikovný konečný utomt. 1 2, 3, Příkld 4.7. Převeďte zdný doře speifikovný konečný utomt n minimální. 1 2 3 5 4,,, 9

Kpitol 5 Lexikální nlýz Příkld 5.1. Jký je rozdíl mezi tokenem lexémou? 10

Kpitol 6 Modely ezkontextovýh jzyků Příkld 6.1. Vytvořte ezkontextovou grmtiku generujíí jzyk { n n n 1 } Příkld 6.2. Vytvořte ezkontextovou grmtiku generujíí jzyk { w reversl(w) w {, } } Příkld 6.3. Vytvořte zásoníkový utomt přijímjíí jzyk { w w {0, 1} +, w oshuje stejný počet 0 1 } Typ přijímání si zvolte. Příkld 6.4. Vytvořte ezkontextovou grmtiku generujíí jzyk { m m n m, n 0} { m n n m, n 0 } Příkld 6.5. Vytvořte zásoníkový utomt přijímjíí jzyk { w reversl(w) w {, } } Typ přijímání si zvolte. Příkld 6.6. Ze zdné grmtiky G vytvořte oený syntktiký nlyzátor shor dolů. G = ( {S, A, B, C, D}, {,, }, P, S ) kde P oshuje následujíí prvidl: S ABC A BC C D D B ε Ukžte přijetí řetěze. Příkld 6.7. Z grmtiky G z příkldu 6.6 vytvořte oený syntktiký nlyzátor zdol nhoru. Ukžte přijetí řetěze. Příkld 6.8 ( ). Vytvořte ezkontextovou grmtiku generujíí jzyk { i j k i, j, k 0, i j neo j k neo i k } 11

Příkld 6.9 ( ). Vytvořte deterministiký zásoníkový utomt přijímjíí jzyk { w reversl(w) w {, } } Typ přijímání si zvolte. Příkld 6.10 ( ). Vytvořte zásoníkový utomt přijímjíí jzyk { ww w {, } } Typ přijímání si zvolte. 12

Kpitol 7 Syntktiká nlýz shor dolů Příkld 7.1. Uvžujte grmtiku pro ritmetiké výrzy G expr3 z přednášek [3] z ní vytvořenou LL tulku. Proveďte prediktivní syntktikou nlýzu řetěze i + i. Jké dvě informe jsou výsledkem prediktivní syntktiké nlýzy? Jk je tomu v tomto příkldu? Příkld 7.2. Uvžujte grmtiku kde P oshuje následujííh šest prvidel: G = ( {S, A, B, C}, {,, }, P, S ) 1: S ABC 2: A 3: A B 4: B B 5: B 6: C Vytvořte z G LL tulku. Je G LL grmtik? Příkld 7.3. Uvžujte grmtiku G vytvořenou tulku z příkldu 7.2. Určete levý rozor pro řetěze. Příkld 7.4. Uvžujte grmtiku kde P oshuje následujííh šest prvidel: G = ( {S, A, B, C}, {,, }, P, S ) 1: S AB 2: A BC 3: A ε 4: B B 5: B ε 6: C ε Vytvořte z G LL tulku. Je G LL grmtik? Příkld 7.5. Uvžujte grmtiku G z příkldu 7.4. Určete levý rozor pro řetěze. Příkld 7.6. Uvžujte grmtiku G = ( {X, Y, Z}, {,, }, P, X ) kde P oshuje následujíí čtyři prvidl: 13

X Y X Y Z Z Použitím fktorize (vytýkání) trnsformujte G n ekvivlentní LL grmtiku H. Příkld 7.7. Uvžujte grmtiku G = ( {X, Y, Z}, {,, }, P, X ) kde P oshuje následujíí čtyři prvidl: X XZ X Z Y Y Y ε Trnsformujte G n ekvivlentní grmtiku H ez levé rekurze. 14

Kpitol 8 Syntktiká nlýz zdol nhoru Příkld 8.1. Podle grmtiky pro výrzy preedenční tulky z přednášek [3] proveďte syntktikou nlýzu řetěze i (i + i). Jké dvě informe jsou výsledkem preedenční syntktiké nlýzy? Jk je tomu v tomto příkldu? Příkld 8.2. Mějme ezkontextovou grmtiku kde P oshuje následujííh pět prvidel: G = ( {S}, {,,, i, (, )}, S, P ) 1: S S S 2: S S S 3: S S S 4: S (S) 5: S i Operátor má vyšší prioritu než operátory. Operátor má vyšší prioritu než. Operátory jsou levě soitivní, operátor je prvě soitivní. Vytvořte pro tuto grmtiku preedenční tulku. Příkld 8.3. Uvžujte grmtiku G preedenční tulku z příkldu 8.2. Určete prvý rozor pro řetěze i i (i i). Příkld 8.4. Uvžujte grmtiku pro ritmetiké výrzy G expr1 LR tulku z přednášek [3]. Proveďte podle ní LR syntktikou nlýzu řetěze i + i. Jký je jeho prvý rozor? 15

Kpitol 9 Syntxí řízený překld Příkld 9.1. Vysvětlete hlvní myšlenku syntxí řízeného překldu. Příkld 9.2. Vyjmenujte tři zákldní metody generování třídresného kódu (3AK). 16

Kpitol 10 Optimlize, generování ílového kódu Příkld 10.1. Rozdělte následujíí kód n zákldní loky. L1: L2: L3: L4: int = 0; += 1; printf("%d", ); if ( < 5) goto L1; = rnd(); if ( > 10) goto L2; printf("%d", ); Příkld 10.2. Uvžujte následujíí kód. swith () { se 1: = * * ; rek; se 2: = * + ; rek; se 3: = - * ; rek; se 4: = / * ; rek; defult: = 2 * * ; rek; } N tento kód yl plikován optimlize snížení velikosti progrmu (došlo k nhrzení výrzu * z konstntu), jejíž výsledkem je následujíí kód. onst int AB = * ; swith () { se 1: = AB * ; rek; se 2: = AB + ; rek; se 3: = - AB; rek; se 4: = / AB; rek; defult: = 2 * AB; rek; } Je tto optimlize v tomto přípdě korektní? Zdůvodněte. 17

Příkld 10.3. Mějme následujíí posloupnost instrukí. 1: v = / 2: w = v - 3: u = w * 4: d = u + w Proměnné,, d jsou progrmátorské, zylé proměnné jsou pomoné. Vytvořte vyplňte pro tuto posloupnost tulku zákldního loku. 18

Kpitol 11 Vlstnosti regulárníh jzyků Příkld 11.1. Npište znění pumping lemm pro regulární jzyky. Příkld 11.2. Vysvětlete, proč pomoí pumping lemm pro regulární jzyky nelze dokázt, že dný jzyk je regulární. Příkld 11.3 ( ). Pomoí pumping lemm dokžte, že jzyk není regulární. L = { ww w {, } } Příkld 11.4 ( ). Konstrukčně dokžte, že pro kždé dv konečné utomty M 1 M 2 pltí, že K = L(M 1 ) L(M 2 ) je regulární. Konstrukčně znmená, že sestrojíte konečný utomt, který přijímá K. Příkld 11.5 ( ). Konstrukčně dokžte, že pro kždé dv konečné utomty M 1 M 2 pltí, že K = L(M 1 )L(M 2 ) je regulární. Konstrukčně znmená, že sestrojíte konečný utomt, který přijímá K. Příkld 11.6 ( ). Konstrukčně dokžte, že pro kždé dv konečné utomty M 1 M 2 pltí, že K = L(M 1 ) L(M 2 ) je regulární. Konstrukčně znmená, že sestrojíte konečný utomt, který přijímá K. Příkld 11.7 ( ). Dokžte, že tříd regulárníh jzyků je uzvřen vůči reverzi. Nápověd: Ukžte, že pro kždý konečný utomt M lze sestrojit tkový konečný utomt, který přijímá reversl ( L(M) ) 19

Kpitol 12 Vlstnosti ezkontextovýh grmtik Příkld 12.1 ( ). Převeďte následujíí grmtiku n ekvivlentní grmtiku v Chomského normální formě. G = ( {S, B, C}, {,, }, P, S ) kde P oshuje prvidl S CB B CCCC C Příkld 12.2 ( ). Převeďte následujíí grmtiku n ekvivlentní grmtiku v Greihové normální formě. G = ( {S, A, B}, {, }, P, S ) kde P oshuje prvidl S BA A B B Příkld 12.3. Npište znění pumping lemm pro ezkontextové jzyky. Příkld 12.4 ( ). Vysvětlete, proč pomoí pumping lemm pro ezkontextové jzyky nelze dokázt, že dný jzyk je ezkontextový. Příkld 12.5 ( ). Dokžte, že tříd ezkontextovýh jzyků je uzvřen vůči reverzi. Nápověd: Ukžte, že pro kždou ezkontextovou grmtiku G lze sestrojit tkovou ezkontextovou grmtiku, která generuje reversl ( L(G) ) 20

Kpitol 13 Turingovy stroje Chomského hierrhie Příkld 13.1 ( ). Neformálně popište Turingův stroj, který přijímá jzyk { n n n n 0} (Stčí popst prinip, n jkém stroj přijímjíí tento jzyk funguje.) Příkld 13.2 ( ). Vytvořte neomezenou grmtiku, která generuje jzyk { ww w {, } } Příkld 13.3 ( ). Vytvořte neomezenou grmtiku, která generuje jzyk { n n n 1 } Příkld 13.4 ( ). Vytvořte prvou lineární grmtiku, která generuje jzyk { }{ } {, } Příkld 13.5 ( ). Vymyslete příkld jzyk, který () ptří do třídy jzyků typu 3; () ptří do třídy jzyků typu 2, le neptří do třídy jzyků typu 3; () ptří do třídy jzyků typu 1, le neptří do třídy jzyků typu 2. Příkld 13.6 ( ). Vytvořte kontextovou grmtiku, která generuje nenulová Fioniho čísl [6] v unárním zkódování (tzn. 1 = 0, 2 = 00, 3 = 000, 5 = 00000 td.). 21

Řešení příkldů Kpitol 1 Řešení příkldu 1.1. = 5, = 1 ε = 0 Řešení příkldu 1.2. reversl() =, reversl() = reversl(ε) = ε Řešení příkldu 1.3. Prefixy jsou ε,,,. Vlstní prefixy jsou. Řešení příkldu 1.4. Sufixy jsou,,, ε. Vlstní sufixy jsou. Řešení příkldu 1.5. Podřetěze jsou ε,,,,,,,,,,,,,,,. Vlstní podřetěze jsou,,,,,,,,,,,,,. Řešení příkldu 1.6. () () 3 = () ε 4 = ε () εε = ε (d) ε = (e) {}{, }{} = {, } (f) {} = (g) {} + {ε} = {} (h) Σ {,, } = (i) {,, } {} = {,, } (j) {, } 2 = {,,, } (k) {,, } 3 = {,,,,,,,,,,,,,,,,,,,,,,,,,, } (l) {,,, } {, } = {} (m) Σ = Řešení příkldu 1.7. () = {ε} () + = () 3 = (d) = (e) = (f) {} = (g) {} = {} (h) {ε} = {ε} (i) {ε} + = {ε} (j) {ε} = {ε} (k) {ε} = (l) {ε} 5 = {ε} 22

Řešení příkldu 1.8. () L 1 L 2 = {x x L 1 zároveň x / L 2, neo x L 2 zároveň x / L 1 } () L 1 L 2 = (L 1 L 2 ) (L 2 L 1 ) Řešení příkldu 1.9. Ano, L je končený. Dokone pltí, že L =. Vyplývá to ze slvné Velké Fermtovy věty [5]. Kpitol 2 Řešení příkldu 2.1. lexikální nlýz, syntktiká nlýz, sémentiká nlýz, generování vnitřního kódu, optimlize, generování ílového kódu Kpitol 3 Řešení příkldu 3.1. () pltný () 3 nepltný (monin není v definii regulárníh výrzů) () pltný (d) d nepltný (d / Σ) (e) + pltný (f) ε pltný (g) nepltný (rozdíl není v definii regulárníh výrzů) (h) ε pltný (i) ε ε nepltný ( ε není v definii regulárníh výrzů) (j) + + + + + pltný (k) Σ nepltný (Σ / Σ) Řešení příkldu 3.2. () + + = {,, } () + + ε = {} () ( + + ) = {,, } (d) = {} (e) ( + ε) = {ε} (f) ( + ) = {, } {} Řešení příkldu 3.3. 0 S 1 1 0 L Řešení příkldu 3.4. 0 q0 1 1 0,1 1 0 1 0 10 101 23

Řešení příkldu 3.5. ( + ) ( + ) Řešení příkldu 3.6. ( + ) ( + ε) Řešení příkldu 3.7. 0 q0 1 0 q1 Řešení příkldu 3.8. q0 Řešení příkldu 3.9. 0,1 0 q0 0 1 01 0 010 Řešení příkldu 3.10. ( + ) Řešení příkldu 3.11. 0 ε 1 ε ε 2 6 3 ε 7 ε ε 4 ε 5 ε 8 ε 9 ε 10 11 Řešení příkldu 3.12. q0 0 L 0 0 S Řešení příkldu 3.13. Tkový konečný utomt neexistuje (potřeovli yhom nekonečný počet stvů). Řešení příkldu 3.14. ( + ) Kpitol 4 Řešení příkldu 4.1. 24

{1} {2,3} {1,3} {4} {3,4} Řešení příkldu 4.2. {0,2,3} {0} {2,3} Řešení příkldu 4.3. 1 2 6 Řešení příkldu 4.4. 5,, 2,,, 1, 3 4 - Řešení příkldu 4.5. 1 2,,, 3 Řešení příkldu 4.6. Zdný utomt je již doře speifikovný konečný utomt. 25

Řešení příkldu 4.7.,,, {1}, {2,5} {4} {3} Kpitol 5 Řešení příkldu 5.1. Lexém je lexikální jednotk dného progrmovího jzyk, npř. identifikátor, eločíselná konstnt, operátor sčítání, pod. Token je konkrétní reprezente lexémy, npř. identifikátor fox či eločíselná konstnt 6. Dá se řít, že token je lexém s přípdnými triuty. Kpitol 6 Řešení příkldu 6.1. G = ( {S}, {, }, P, S ), kde P oshuje prvidl S S S. Řešení příkldu 6.2. G = ( {S}, {, }, P, S ), kde P oshuje prvidl S S, S S S ε. Řešení příkldu 6.3. Automt přijímá konovým stvem (nví má v konovém stvu vždy prázdný zásoník). 1/ε,0 0/ε,1 1/11,1 0/00,0 S/S1,1 S/S0,0 q0 S/S0,0 S/S1,1 q1 S/ε,ε qf Řešení příkldu 6.4. G = ( {S, X, Y, Z, W }, {,, }, P, S ), kde P oshuje následujíí prvidl: S XY ZW X X ε Y Y ε Z Z ε W W ε Řešení příkldu 6.5. Automt přijímá konovým stvem (nví má v konovém stvu vždy prázdný zásoník). 26

S/S, S/S, /ε, /ε, S/SS,ε 0 1 S/ε,ε 2 S/ε,S qf Řešení příkldu 6.6. Zásoníkový utomt přijímjíí vyprázdněním zásoníku M = ( {s}, {,, }, {S, A, B, C, D,,, }, R, s, S, ) kde R oshuje následujíí prvidl: s s s s s s Ss CBAs As CBs Bs s Cs Ds Ds s Řetěze je přijt následujíí posloupností přehodů: Ss CBAs [Ss CBAs] CBCBs [As CBs] CBCs [Bs s] CBDs [Cs Ds] CBDs [s s] CBDs [s s] CBs [Ds s] CBs [s s] CBs [s s] Cs [Bs s] Cs [s s] Ds [Cs Ds] Ds [s s] Ds [s s] s [Ds s] s [s s] s [s s] Řešení příkldu 6.7. Rozšířený zásoníkový utomt přijímjíí konovým stvem M = ( {s, f}, {,, }, {S, A, B, C, D,,,, #}, R, s, #, f ) kde R oshuje následujíí prvidl: #Ss f s s s s s s ABCs Ss BCs As s Bs Ds Cs s Ds 27

Řetěze je přijt následujíí posloupností přehodů: #s #Bs [s Bs] #Bs [s s] #Bs [s s] #Bs [s s] #BDs [s Ds] #BCs [Ds Cs] #As [BCs As] #As [s s] #ABs [s Bs] #ABs [s s] #ABs [s s] #ABs [s s] #ABs [s s] #ABDs [s Ds] #ABCs [Ds Cs] #ABCs [s s] #Ss [ABCs Ss] f [#Ss f] Řešení příkldu 6.8. Stčí zručit, že se ude lišit počet neo počet. Grmtik proto n zčátku provede rozdvojení do dvou větví, kde v první se zručí, že počet ude různý, ve druhé se zručí, že počet ude různý. Dále se v kždé větvi provede dlší rozdvojení, kde v prvním ude počet jednoho symolu menší než počet druhého, ve druhé větvi nopk (npř. v první větvi se zručí, že počet ude menší než počet, ve druhé větvi se zručí, že počet ude větší než počet ). Řešením je kde P oshuje následujíí prvidl: G = ( {S 1, S 1, S 2, S 2, ā,,, A 1, A 1, B 1, B 1, A, C}, {,, }, P, S ) S S 1 S 1 S 2 S 2 ā ε ε ε A A ε C C ε S 1 A 1 C A 1 āa 1 ε S 1 A 1C A 1 A 1 ε S 2 AB 1 B 1 B 1 ε S 2 AB 1 B 1 B 1 ε Řešení příkldu 6.9. Tkový deterministiký zásoníkový utomt neexistuje. Řešení příkldu 6.10. Tkový zásoníkový utomt neexistuje. Kpitol 7 Řešení příkldu 7.1. 28

Zásoník Vstup Prvidlo $E i + i$ 1: E T E $E T i + i$ $E T F i + i$ 4: T F T $E T F i + i$ 8: F i $E T i i + i$ $E T +i$ 6: T ε $E +i$ 2: E +T E $E T + +i$ $E T i$ 4: T F T $E T F i$ 8: F i $E T i i$ $E T $ 6: T ε $E $ 3: E ε $ $ Výsledkem prediktivní syntktiké nlýzy je (1) informe, zd yl nlýz úspěšná, čili zd lze vstupní řetěze vygenerovt dnou grmtikou, (2) levý rozor. V tomto příkldu syntktiká nlýz proěhl úspěšně levý rozor je 148624863. Řešení příkldu 7.2. Ano, G je LL grmtik. Řešení příkldu 7.3. 12456 Řešení příkldu 7.4. Ne, G není LL grmtik. Řešení příkldu 7.5. 1245645 $ S 1 A 2 3 3 B 4 5 C 6 $ S 1 1 A 2 2, 3 B 5 4 5 5 C 6 Řešení příkldu 7.6. H = ( {X, X, Y, Z}, {,, }, P, X ), kde P oshuje následujíí prvidl: X X X Y X ε Y Z Z Řešení příkldu 7.7. H = ( {X, X, Y, Z}, {,, }, P, X ), kde P oshuje následujíí prvidl: 29

X X X ZX X ε Z Y Y Y ε Kpitol 8 Řešení příkldu 8.1. Zásoník Opere Vstup Prvidlo $ < i (i + i)$ $ < i > (i + i)$ 4: E i $E < (i + i)$ $ < E < (i + i)$ $ < E < ( < i + i)$ $ < E < (< i > +i)$ 4: E i $ < E < (E < +i)$ $ < E < (< E+ < i)$ $ < E < (< E+ < i > )$ 4: E i $ < E < (< E + E > )$ 1: E E + E $ < E < (E = )$ $ < E < (E) > $ 3: E (E) $ < E E > $ 2: E E E $E $ Výsledkem preedenční nlýzy je (1) informe, zd yl nlýz úspěšná, čili zd lze vstupní řetěze vygenerovt dnou grmtikou, (2) prvý rozor. V tomto příkldu syntktiká nlýz proěhl úspěšně prvý rozor je 444132. Řešení příkldu 8.2. ( ) i $ > < < < > < > > > < < > < > > > < < > < > ( < < < < = < ) > > > > > i > > > > > $ < < < < < Řešení příkldu 8.3. 55355142 Řešení příkldu 8.4. Zásoník Stv Vstup Ake Prvidlo $, 0 0 i + i$ α[0, i] = s5 $, 0 i, 5 5 +i$ α[5, +] = r6, β[0, F ] = 3 6: F i $, 0 F, 3 3 +i$ α[3, +] = r4, β[0, T ] = 2 4: T F $, 0 T, 2 2 +i$ α[2, +] = r2, β[0, E] = 1 2: E T $, 0 E, 1 1 +i$ α[1, +] = s6 $, 0 E, 1 +, 6 6 i$ α[6, i] = s5 $, 0 E, 1 +, 6 i, 5 5 $ α[5, $] = r6, β[6, F ] = 3 6: F i $, 0 E, 1 +, 6 F, 3 3 $ α[3, $] = r4, β[6, T ] = 9 4: T F $, 0 E, 1 +, 6 T, 9 9 $ α[9, $] = r1, β[0, E] = 1 1: E E + T $, 0 E, 1 1 $ α[1, $] = 30

Prvý rozor řetěze i + i je 642641. Kpitol 9 Řešení příkldu 9.1. K prvidlům v grmtie jsou přiřzeny tzv. sémntiké ke, které jsou vykonávány při pliki dného prvidl při syntktiké nlýze. Mezi tyto ke ptří npř. generování vnitřního kódu, práe s tulkou symolů či jkákoliv jiná ke, která je potře. Smotný překld je tudíž řízen syntxí progrmu, která udává ke, které se provedou. Řešení příkldu 9.2. (1) Syntktiký nlyzátor vytvoří strktní syntktiký strom, který je převeden n (3AK). (2) Syntktiký nlyzátor vytvoří postfixovou reprezenti progrmu, která je převeden n 3AK. (3) Syntktiký nlyzátor vytvoří 3AK přímo. Kpitol 10 Řešení příkldu 10.1. První zákldní lok: int = 0; Druhý zákldní lok: L1: += 1; printf("%d", ); Třetí zákldní lok: L2: if ( < 5) goto L1; Čtvrtý zákldní lok: = rnd(); Pátý zákldní lok: L3: if ( > 10) goto L2; Šestý zákldní lok: L4: printf("%d", ); Řešení příkldu 10.2. Není, protože výsledný kód není funkčně ekvivlentní původnímu (výsledek výrzu = / * se oeně může lišit od výsledku výrzu = / AB;, protože v prvním přípdě se provede nejdříve dělení pk ž násoení, le ve druhém přípdě se dělí vynásoená hodnot). 31

Řešení příkldu 10.3. Řádek Instruke Stv Dlší použití 1 v = /,,v:l :N; :3; v:2 2 w = v -,w:l; v:d,v:n; w:3 3 u = w *,u,w:l :N; u,w:4 4 d = u + w d:l; u,w:d d,u,w:n Kpitol 11 Řešení příkldu 11.1. Nehť L je regulární jzyk. Pk existuje k 1 tkové, že pokud z L z k, pk existují u, v w tkové, že z = uvw jsou splněny následujíí tři vlstnosti: (1) v ε, (2) uv k, (3) pro kždé i 0 pltí, že uv i w L. Řešení příkldu 11.2. Protože pumping lemm předstvuje pouze nutnou podmínku pro to, y dný jzyk yl regulární. Jinými slovy, kždý regulární jzyk tuto podmínku splňuje, le existují i některé ne-regulární jzyky, které ji tktéž splňují. Řešení příkldu 11.3. Postupujte odoně jko v řešeníh příkldů v mteriáleh ke třetímu demonstrčnímu vičení [3]. Řešení příkldu 11.4. Nehť M 1 = (Q 1, Σ 1, R 1, s 1, F 1 ) M 2 = (Q 2, Σ 2, R 2, s 2, F 2 ) jsou dv konečné utomty. Bez újmy n oenosti můžeme předpokládt, že Q 1 Q 2 = (množiny stvů oou utomtů jsou disjunktní) že o utomty jsou úplné. Sestrojme konečný utomt M = ( Q, Σ, R, s, F ) kde Q = Q 1 Q 2 {s}, kde s je nový stv, Σ = Σ 1 Σ 2, R = R 1 R 2 {s s 1, s s 2 }, F = F 1 F 2. Zřejmě L(M) = L(M 1 ) L(M 2 ). Rigorózní důkz identity L(M) = L(M 1 ) L(M 2 ) y se prováděl indukí je nd ráme předmětu IFJ. Řešení příkldu 11.5. Nehť M 1 = (Q 1, Σ 1, R 1, s 1, F 1 ) M 2 = (Q 2, Σ 2, R 2, s 2, F 2 ) jsou dv konečné utomty. Bez újmy n oenosti můžeme předpokládt, že Q 1 Q 2 = (množiny stvů oou utomtů jsou disjunktní) že o utomty jsou úplné. Sestrojme konečný utomt M = ( Q, Σ, R, s 1, F 2 ) kde Q = Q 1 Q 2, Σ = Σ 1 Σ 2, 32

R = R 1 R 2 {f s 2 f F 1 }. Zřejmě L(M) = L(M 1 )L(M 2 ). Rigorózní důkz identity L(M) = L(M 1 )L(M 2 ) y se prováděl indukí je nd ráme předmětu IFJ. Řešení příkldu 11.6. Nehť M 1 = (Q 1, Σ 1, R 1, s 1, F 1 ) M 2 = (Q 2, Σ 2, R 2, s 2, F 2 ) jsou dv konečné utomty. Bez újmy n oenosti můžeme předpokládt, že Q 1 Q 2 = (množiny stvů oou utomtů jsou disjunktní) že o utomty jsou úplné. Ide důkzu je tková, že udeme zároveň simulovt o utomty, řetěze přijmeme, pokud y jej přijl jk M 1, tk M 2. Sestrojme konečný utomt M = ( Q, Σ, R, s, F ) kde Q = Q 1 Q 2 ( oznčuje krtézský součin [4]), Σ = Σ 1 Σ 2, R = { (p 1, p 2 ) (q 1, q 2 ) p 1 q 1 R 1, p 2 q 2 R 2 }, s = (s 1, s 2 ) F = { (f 1, f 2 ) f 1 F 1, f 2 F 2 }. Zřejmě L(M) = L(M 1 ) L(M 2 ). Rigorózní důkz identity L(M) = L(M 1 ) L(M 2 ) y se prováděl indukí je nd ráme předmětu IFJ. Řešení příkldu 11.7. Nehť M = (Q, Σ, R, s, F ) je konečný utomt. Bez újmy n oenosti můžeme předpokládt, že M je úplný. Sestrojme konečný utomt kde Q = Q {s }, kde s je nový stv, R = {q p p q R}, F = {s}. N = ( Q, Σ, R, s, F ) Zřejmě L(N) = reversl ( L(M) ). Rigorózní důkz identity L(N) = reversl ( L(M) ) y se prováděl indukí je nd ráme předmětu IFJ. Kpitol 12 Řešení příkldu 12.1. G = ( {S, B, C, ā, C, CC }, {,, }, P, S ), kde P oshuje prvidl S C B C Cā ā B CC CC CC CC C Řešení příkldu 12.2. G = ( {S, A, B, ā, }, {, }, P, S ), kde P oshuje prvidl 33

S āba ā A B B Řešení příkldu 12.3. Nehť L je ezkontextový jzyk. Pk existuje k 1 tkové, že pokud z L z k, pk existují u, v, w, x y tkové, že z = uvwxy jsou splněny následujíí tři vlstnosti: (1) vx ε, (2) vwx k, (3) pro kždé i 0 pltí, že uv i wx i y L. Řešení příkldu 12.4. Protože pumping lemm předstvuje pouze nutnou podmínku pro to, y dný jzyk yl ezkontextový. Jinými slovy, kždý ezkontextový jzyk tuto podmínku splňuje, le existují i některé ne-ezkontextové jzyky, které ji tktéž splňují. Řešení příkldu 12.5. Nehť G = (N, T, P, S) je ezkontextová grmtik. Sestrojme ezkontextovou grmtiku H = (N, T, P, S), kde P = {A reversl(x) A x P } Zřejmě L(H) = reversl ( L(G) ). Rigorózní důkz identity L(H) = reversl ( L(G) ) y se prováděl indukí je nd ráme předmětu IFJ. Kpitol 13 Řešení příkldu 13.1. Turingův stroj nejdříve zkontroluje, zd je vstup tvořen posloupností následovnou posloupností končíí posloupností. Pokud tomu tk není, pk vstup zmítne. Po kontrole se přesune zpět n zčátek vstupu. Nyní přepíše nejlevější n A, poté nejlevější n B, nkone nejlevější n C. Pokud některý z těhto přepisů nelze provést (npř. hyí ), pk vstup zmítne. Toto se opkuje tk dlouho, dokud se n vstupu nevyskytují žádné symoly,, ož znmená, že vstup yl korektní, stroj vstupní řetěze přijme. V opčném přípdě vstup zmítne (npř. přeývjí symoly ). Řešení příkldu 13.2. G = ( {S, A, A, X, X, X, X ε }, {, }, P, S ), kde P oshuje prvidl S AXA AX AX AX X ε X A XA X A XA X ε A ε X X X X X X X X X X X X X ε X ε X ε X ε Neformálně, G funguje tk, že po kždém vygenerovném symolu vlevo od A se pomoí X vygeneruje příslušný symol vlevo od A. Pokud se npř. vygeneruje, pk se X změní n X. Toto X se pk přesune od A ž k A. Po vygenerování před A se X změní zpět n X, přesune se zpátky k A, může ýt vygenerován dlší symol. Po ukončení generování dojde ke zrušení všeh tří neterminálů A, X A. Řetěze lze vygenerovt následovně: 34

S AXA AX A AXA AX A AX A AXA AXA AX A AX A AX A AXA AXA AXA X ε A X ε A X ε A X ε A Řešení příkldu 13.3. Jelikož je kždá ezkontextová grmtik zároveň neomezenou grmtikou, tk řešením je grmtik G = ( {S}, {, }, P, S ) kde P oshuje prvidl S S S. Řešení příkldu 13.4. G = ( {S, X}, {,, }, P, S ), kde P oshuje prvidl S X X X Řešení příkldu 13.5. () Npř. { n n 0} neo {,, }. () Npř. { n n n 0} neo { w reversl(w) w {, } }. () Npř. { n n n n 0} neo { ww w {, } }. Řešení příkldu 13.6. G = ( {S, A, B, B r, C}, {0}, P, S ), kde P oshuje následujíí prvidl: S CS B r CA BC CB ABC CB r AB r A 0 B 0 B r 0 Řešení je převzto z [1] (v tomto článku je tktéž vysvětleno, jk G funguje). 35

Litertur [1] Holzer, M.; Rossmnith, P.: A simpler grmmr for Fioni numers. The Fioni Qurterly, ročník 35, č. 5, 1996: s. 465 466. Dostupné n URL: http://www.fq.mth./snned/34-5/holzer.pdf [2] Medun, A.: Automt nd Lnguges: Theory nd Applitions. Springer, Londýn, 2000, ISBN 978-1-85233-074-3. [3] Medun, A.; Lukáš, R.: Přednášky z předmětu Formální jzyky překldče [online]. 2011, [it. 2011-09-01]. Dostupné n URL: http://www.fit.vutr.z/study/ourses/ifj/puli/mterils/ [4] Wikipedi: Crtesin produt [online]. 2011, [it. 2011-09-09]. Dostupné n URL: http://en.wikipedi.org/wiki/crtesin_produt [5] Wikipedi: Fermt s Lst Theorem [online]. 2011, [it. 2011-08-27]. Dostupné n URL: http://en.wikipedi.org/wiki/fermt_lst_theorem [6] Wikipedi: Fioni numer [online]. 2011, [it. 2011-09-09]. Dostupné n URL: http://en.wikipedi.org/wiki/fioni_numer 36