Gramatické systémy - teorie a aplikace
|
|
- Viktor Pravec
- před 9 lety
- Počet zobrazení:
Transkript
1 Gramatické systémy - teorie a aplikace Luděk Dolíhal January 8, 2010 Contents 1 Úvod Teorie gramatických systémů CD gramatické systémy Definice Příklad Generativní síla Hybridní systémy Týmový CD gramatický systém Aplikace v praxi PC gramatické systémy Definice Příklady Nesynchronizované PC gramatické systémy Gramatické systémy s komunikací na příkaz Aplikace v praxi Příbuzné modely Eco gramatiky Test tube systémy Závěr 18 Literatura 19 Seznam zkratek a symbolů 20 1
2 1 Úvod Cílem této práce je diskutovat problematiku gramatických systémů ve vztahu k moderním programovacím metodám a jazykům. Bude předestřeno teoretické pozadí gramatických systémů a některých příbuzných modelů. Detailně budou probrány dva základní typy gramatických systémů a to CD gramatické systémy a PC gramatické systémy. Pokusím se popsat aplikaci těchto systémů v praxi a najít příklady jejich reálného využití. 1.1 Teorie gramatických systémů V běžné teorii programovacích jazyků je výpočet prováděn jednou výpočetní jednotkou. To znamená, že jazyk je generován jednou gramatikou a přijímán jedním automatem. Nicméně v dnešní době hraje stále větší roli distribuované zpracování. Takovéto systémy si však nevystačí se základní teorií programovacích jazyků. Jsou potřeba prostředky pro zápis paralelismu, distribuování výpočtu, konkurence a jiných. Proto byly zavedeny gramatické systémy. Gramatické systémy ve své podstatě představují množinu gramatik pracujících pohromadě. Pokud běží výpočet na více stanicích, jsou stanice synchronizovány pomocí protokolu tak, aby produkovaly jeden jazyk. Důvodů, proč se překlad děje na více místech, může být celá řada. Uveďme například výpočetní náročnost nebo zvýšení generativní síly. Je jasné, že klíčovou roli zde bude hrát právě souhra jednotlivých prvků množiny. Rozlišují se dva základní typy gramatických systémů. sekvenční paralelní CD gramatické systémy[6] jsou systémy sekvenční. Význam zkratky, stejně jako zkratky PC použité o odstavec níže, si můžete najít v seznamu zkratek, který je umístěn na konci práce. Důležitým faktem, který odlišuje tento systém od systému PC je to, že všechny části systému mají společnou větnou formu. Aktivní je vždy pouze jedna gramatika, a to ta, která právě pracuje na společné větné formě. V takovémto systému jsou nutné nějaké prvky, které udávají, kdy se právě aktivní gramatika stane neaktivní a předá řízení a větnou formu gramatice jiné. Které, o to se postará protokol. Příkladem takovýchto stop prvků mohou být například závorky nebo if podmínka. Nebo lze také říci, že daná gramatika bude pracovat právě k kroků. Naproti tomu PC gramatické systémy[6] jsou paralelní. Zde má každá gramatika svou vlastní větnou formu a mohou tedy všechny pracovat paralelně, každá na své vlastní větné formě. V tomto typu gramatických systémů je nutný globální časovač. Taktéž je velmi podstatná existence takzvaných dotazovacích (query) symbolů. Jejich funkce je následující. Pokud část i vygeneruje symbol Q j, pak aktuální větná forma komponenty j je zaslána části i, kde nahradí všechny výskyty Q j. V každém PC systému existuje jedna komponenta, která 2
3 má status master, a jazyk generovaný touto komponentou je jazyk generovaný celým systémem. 2 CD gramatické systémy Nyní se podívejme blíže na CD gramatické systémy. Abychom si mohli nadefinovat CD gramatický systém, musíme si nejdříve nadefinovat gramatiku samotnou. Gramatika G je tedy čtveřice G = (N, Σ, P, S), kde 1. N je konečná množina non terminálních symbolů 2. Σ je konečná množina terminálních symbolů 3. P je konečná množina kartézského součinu (N Σ) N.(N Σ) (N Σ) 4. S N je startovací symbol gramatiky G 2.1 Definice Pokud tedy máme definici gramatiky, můžeme si nadefinovat gramatický systém. CD gramatický systém nadefinujeme následovně: CD gramatický systém stupně n, n 1 je n-tice Γ = (N, T, S, P 1,..., P n ) kde N a T jsou disjunktní abecedy, S N a P 1,..., P n jsou konečné množiny přepisovacích pravidel nad N T. N je množina neterminálu a T je množina terminálů. P 1,..., P n jsou nazývány komponenty systému. Ještě, než přejdeme k definici jazyka, který je generován daným gramatickým systémem, musíme si nadefinovat derivační krok. Derivační kroky jsou totiž celkem čtyři. Uvedeme si všechny. Nechť Γ = (N, T, S, P 1,..., P n ) je CD gramatický systém. 1. Pro každé i 1,..., n koncový derivační krok, provedený i-tou komponentou, značený = t Pi je definován následovně: x = t Pi y pokud x = Pi y a neexistuje žádné z V takové, že y = Pi z. 2. Pro každé i 1,..., n k-kroková derivace, provedená i-tou komponentou, značená = =k Pi je definována následovně: x = =k Pi y pokud existují x 1,..., x k (N cupt) takové, že x = x 1, y = y k+1, a pro každé 1 j k, x = Pi x j Pro každé i 1,..., n nejvýše k-kroková derivace, provedená i-tou komponentou, značená = k Pi je definována následovně: 3
4 x = k Pi y pokud x = =k Pi y pro nějaké k k. 4. Pro každé i 1,..., n nejméně k-kroková derivace, provedená i-tou komponentou, značená = k Pi je definována následovně: x = k Pi y pokud x = =k Pi y pro nějaké k k. Sémantika této notace je docela jednoduchá. Pokud pracujeme v t- módu, musí každá komponenta přispět k řešení problému právě tak dlouho, dokud může. V k- módu udělá komponenta právě k po sobě jdoucích kroků. V dalších dvou módech je uděláno alespoň k nebo maximálně k kroků. V *-módu zůstane komponenta u provádění kroků tak dlouho, jak potřebuje. Nyní přejděme k definici jazyka generovaného daným systémem. Nejdříve nadefinujme množinu D následovně: D= {, t} { k, k, = k k 1} Jazyk generovaný CD gramatickým systémem Γ = (N, T, S, P 1,..., P n ) v derivačním módu f D je L f (Γ) = {w T S = f Pi 1 w 1 = f Pi 2... = f Pi m w m = w, m 1, 1 i j n, 1 j m}. 2.2 Příklad Z definice výše vyplývá, že v Γ je obsaženo několik jazyků. Která z komponent bude použita, je určeno na základě podmínek v D. Komponenta P i začne pracovat v momentě, kdy se v řetězci w objeví levá strana pravidla z P i. Na začátku je nedeterministicky určeno, která komponenta začne pracovat. Uvažujme následující příklad. Máme následující gramatické systémy: Γ 1 = ({S, A, A, B, B }, {a, b, c}, S, P 1, P 2 ), P 1 = {S S, S AB, A A, B B}, P 2 = {A aa b, B cb, A ab, B c}. Γ 2 = ({S, A}, {a}, S, P 1, P 2, P 3 ), P 1 = {S AA}, P 2 = {A S}, P 3 = {A a}. Γ 3 = ({S, A 1,..., A k, A 1,..., A k }, {a, b}, S, P 1, P 2 ), P 1 = {S S, S A 1 ba 2 b...ba k b} {A i A i 1 i k}, 4
5 P 2 = {A i aa i a, A i aba 1 i k}, K 1. Γ 4 = ({S, S } {A i, A i, A i 1 i k}, {a, b}, S, P 0, P 1,..., P 3k ), P 0 = {S S, S A 1 ba 2 b...ba k b}, P 1 = {A 1 A 1, A 1 aa 1a}, P i+1 = {A i A i, A i+1 aa i+1a}, 1 i k 1, P k+1 = {A k A k, A 1 A 1 }, P k+i+1 = {A i A i, A i+1 A i+1 }, 1 i k 2, P 2k = {A k 1 A k 1, A k A k}, P 2k+i = {A i A i, A i aba}, 1 i k, k 2. Γ 5 = ({S, A, A }, {a, b}, S, P 1, P 2, P 3 ), P 1 = {S S, S AA, A A}, P 2 = {A AA, A a}, P 3 = {A ba, A b}. Tyto gramatické systémy generují následující jazyky: L f (Γ 1 ) = {a n b n c m m, n 1}, f {= 1, 1,, t} { k k 1}, L =2 (Γ 1 ) = L 2 (Γ 1 ) = {a n b n c n n 1}, L =2 (Γ 1 ) = L 2 (Γ 1 ) = 0, k 3, L t (Γ 2 ) = {a 2n n 1}, L =k (Γ 3 ) = L k (Γ 3 ) = {(a n b) 2k n 1}, L =2 (Γ 4 ) = L 2 (Γ 4 ) = {(a n b) 2k n 1}, L =2 (Γ 5 ) = L 2 (Γ 5 ) = {ww w {a, b} + }. Nyní si dokážeme první tvrzení, abychom viděli, jak systém funguje. Nechť Γ 1 pracuje v módu 2. Stejně jako u libovolné jiné gramatiky musíme začít naši derivaci ze startovního symbolu S. Podíváme-li se na množinu pravidel, pak je jasné, že pouze P 1 může být aplikováno. Derivace tedy bude vypadat následovně: S = P1 S = P1 AB. 5
6 Nyní, když se ve větné formě již neobjevuje S, nemůžeme nadále využívat P 1. Na AB se dá aplikovat pouze množina pravidel P 2. Pokud použijeme nonterminální pravidla, tak dostaneme: AB = P2 aa bb = P2 aa bcb. Obecně můžeme z větné formy ve tvaru a i Ab j c k B udělat derivační krok do tvaru a i+1 A b j+1 c k+1 B Zapsáno matematicky: a i Ab j c k B = =2 P 1 a i+1 A b j+1 c k+1 B. Na takovýto řetězec pak aplikujeme pravidlo z množiny P 1 a dostaneme: a i+1 A b j+1 c k+1 B = =2 P 2 a i+1 Ab j+1 c k+1 B. Toto je jediná možnost, jak použít množinu pravidel P 1 v módu 2. V množině pravidel P 2 však máme možností více. Můžeme například použít jedno pravidlo s neterminálem a jedno pravidlo obsahující pouze terminální symboly. Ovšem u řetězce, který obsahuje pouze jeden neterminál různý od S, neexistuje řešení v množině P 1. Proto tedy musíme vždy použít buď dvě neterminální, nebo dvě terminální pravidla z množiny P 2. To znamená, že všechny derivace Γ 1 v módu =2 lze vyjádřit ve tvaru: S = =2 P 1 AB = =2 P 2 aa bcb = =2 P 1 aabcb = =2 P 2... = =2 P 2 a n A b n c n = =2 P 1 a n Ab n c n B = =2 P 2 a n+1 b n+1 c n+1. Toto platí pro libovolné n 0 a proto tedy platí, že L =2 (Γ 1 ) = {a n b n c n n 1}. 2.3 Generativní síla Pokud se zaměříme na generativní sílu CD systémů pracujících v libovolném módu, brzy zjistíme, že se jejich síla nijak nemění. To znamená, že máme-li CD gramatický systém, který obsahuje pravidla regulární, bezkontextová, kontextová nebo pravidla třídy 0, pak je takovýto systém schopný generovat jazyky dané třídy. Tj. opět jazyky regulární, bezkontextové, kontextové nebo jazyky rekurzivně vyčíslitelné. 6
7 2.4 Hybridní systémy Na tomto místě bych rád zmínil pár faktů o hybridních systémech, které jsou velmi zajímavé a především velmi blízké reálnému životu. Zatím jsme uvažovali pouze systémy homogenní. Tj. systémy, kde všechny komponenty pracují ve stejném režimu. V praxi se však ukázalo, že je výhodnější uvažovat o systému, kde jeho části pracují v různých módech. Takovýto systém se nazývá hybridní systém. Ten je definován následovně: Γ = (N, T, S, (P 1, f 1 ),..., (P n, f n )), n 1, kde (N, T, S, P 1,..., P n ) je běžný gramatický systém tak, jak jsme si ho nadefinovali a f i D, 1 i n je derivační mód i-té komponenty. Tyto módy mohou být obecně rozdílné! Více o těchto systémech se lze dočíst zde [6]. 2.5 Týmový CD gramatický systém Další z modifikací, které by neměly být opomenuty, jsou týmové CD gramatické systémy. U běžných CD systémů je podmínka, že pouze jedna komponenta může být v daný okamžik aktivní. Pokud tuto podmínku odstraníme, dostáváme tým CD gramatických systémů. CD gramatický systém s týmy je definován následovně: Γ = (N, T, S, P 1,..., P n, R 1,..., R n ), n, m 1 (N, T, S, P 1,..., P n ) značí běžný gramatický systém a R 1,..., R n jsou podmnožiny P 1,..., P n zvané týmy. Derivace s použitím týmu pak vypadá následovně: x = R i tehdyajentehdy x = x 1 A 1 x 2 A 2...x s A s x s+1 = x 1 y 1 x 2 y 2...x s y s x s+1 x l (N T), 1 l s + 1, A r y r P jr, 1 r s Vzhledem k tomu, že se jedná o množinu, tak není určeno žádné pořadí aplikace jednotlivých pravidel. Zajímavý je především fakt, že týmy dokáží zásadně zvýšit generativní sílu CD gramatických systémů. Podle [6] stačí týmy o velikosti dva, abychom byli schopni generovat jazyky třídy 0. Přitom nám stačí, aby pravidla v týmu byla bezkontextová. Toto nám mimo jiné dává zcela nový způsob, jak zapisovat rekurzivně vyčíslitelné jazyky velmi přehledně. 2.6 Aplikace v praxi Tento druh gramatického systému má své uplatnění při překladu programovacích jazyků. Tímto způsobem je interpretován například jazyk Python. Interpret je totiž složen ze dvou komponent, které si navzájem předávají řízení. 7
8 Podobný koncept jsem zvolil i ve své bakalářské práci, kde analyzátor jazyka taktéž sestává ze dvou komponent a předávání řízení je prováděno na základě stop prvků. V mém případě je jedna část analyzátoru založena na rekurzivním sestupu a druhá část na precedenční analýze. V momentě, kdy jedna z částí narazí na stop prvek, předá řízení druhé části. Tento způsob lze formálně popsat jako terminální mód gramatického systému. To znamená, že daná komponenta pracuje na překládaném řetězci tak dlouho, dokud je to možné. Pro ilustraci si si uvedeme jednoduchý příklad: if(((a + b)/2) > ((2 a) (2 b))); { int c; c := a + b/12; } V tomto případě jsou veškeré aritmetické výrazy přeloženy jednou komponentou a příkazy jako if nebo for jsou přeloženy druhou komponentou. Samozřejmě se může také vyskytnout případ, že celý zdrojový kód bude mít na starosti pouze jedna komponenta a druhá se vůbec nedostane k překladu. CD gramatciké systémy mají své využití také v multiagentních systémech jak dokládá kniha s názvem Grammar systems: a grammatical approach to distribution and cooperation [1]. V tomto případě jsou CD gramatické systémy použity pro popis komunikace mezi jednotlivými agenty a pro jejich kooperaci. V této kapitole bylo osvětleno, co to jsou a jak fungují CD gramatické systémy. Tyto systémy jsou stejně jako PC systémy používány především pro zápis distribuovaného zpracování. Stojí na relativně jednoduchém základě a jsou snadno pochopitelné. Po zavedení určitých změn však disponují velmi velkou sílou. Při použití bezkontextových pravidel získáme totiž sílu přesahující sílu bezkontextových gramatik. Bylo také nastíněno použití tohoto modelu v praxi. 3 PC gramatické systémy V této části se již budeme zabývat PC gramatickými systémy, které oproti CD systémům dovolují práci na více větných formách současně. Nejdříve si takový systém nadefinujme. 3.1 Definice PC gramatický systém stupně n, n 1, je (n+3)-tice Γ = (N, K, T, (S 1, P 1 ),..., (S n, P n )), 8
9 kde N je abeceda neterminálů, T je abeceda terminálů, K= Q 1,..., Q n, P i je konečná množina přepisovacích pravidel nad N K T a S i N pro všechna 1 i n. Množiny P i, 1 i n jsou nazývány komponenty systému a elementy Q 1,..., Q n z K se nazývají dotazovací symboly. Index i u Q i odkazuje na i-tou komponentu z Γ. Pokud bychom chtěli vyjádřit gramatiku jako součást PC gramatického systému Γ, lze to zapsat následovně Γ = (N, K, T, G 1,..., G i ), kde G i = (N K, T, S i, P i ), 1 i n. Ještě než přejdeme k jazyku, který může gramatický systém generovat, je nutné si nadefinovat jeho derivaci. Máme-li PC gramatický systémγ = (n, k, t, (S 1, P 1,..., (S n, P n ))) v podobě, v jaké byl nadefinován výše, pak pro dvě n-tice(x 1, x 2,...x n ), (y 1, y 2,..., y n ), kde x i, y i V Γ, 1 i n a x 1 T pak píšeme (x 1,...x n ) = (y 1,..., y n ), pokud nastal jeden z následujících případů: Pro každé i, 1 i n, x i K = 0, 1 i n a pro každé i1 i n máme buď x i = y i při použití pravidla z P i, nebo x i = y i T Existuje takové i, 1 i n takové, že x i K > 0. Nechť pro každé takové i, x i = z 1 Q i1 z 2 Q i2...z t Q it z t+1, t 1, pro z j (N T), 1 j t + 1. Pokud x ij k = 0, pro všechna j1 j t, pak y i = z 1 x i1 z 2 x i2...z t x it z t+1 a y ij = S ij, 1 j t. Pokud pro nějaké j 1 j t, x ij K 0, pak y i = x i. Pro všechna i,1 i n, taková, že y i není specifikováno výše, platí x i = y i. Každá n-tice (x 1,..., x n ), kde x i VΓ pro všechna i 1 i n je nazývána konfigurace. Konfigurace (x 1,..., x n ) přímo přechází v konfiguraci (y 1,..., y n ) pokud: 1. Žádný dotazovací symbol se neobjevuje v (x 1,..., x n ), pak máme komponentní derivaci, x i = y i, v každé komponentě P i, 1 i n tzn., že v každé komponentě je použito jedno pravidlo, vyjma případu, že x i je složeno z terminálů. V tom případě píšeme x i = y i. 2. Dotazovací symbol se vyskytuje v nějakém x i. Pokud toto nastane, pak je provedena fáze, která se nazývá komunikační krok. Každý výskyt Q i v x i je nahrazen x j za předpokladu, že samotné x j neobsahuje žádný dotazovací symbol. Jinak řečeno, komponenta x i je měněna, pouze pokud všechny cíle, do kterých směřují dotazovací symboly, samy neobsahují dotazovací symboly. V komunikačním kroku je dotazovací symbol Q j nahrazen příslušným řetězcem x j.poté začne gramatika G j opět přepisovat od startovacího symbolu. Důležité je, že komunikace má přednost před přepisováním. To znamená, že během komunikace nemohou být přepisovány žádné symboly. Dokud tedy nejsou nahrazeny všechny výskyty dotazovacích symbolů, které být nahrazeny mohou, neděje se žádné přepisování. Pokud nemůže být nějaký dotazovací symbol nahrazen v daném komunikačním kroku, protože obsahuje dotazovací symbol, 9
10 je nahrazen při prvním možném následujícím kroku. Vezmeme-li v potaz výše řečené, pak je jasné, že pravidla typu x 1 Q i x 2 = x nemohou být nikdy použita. Můžeme je tedy vypustit z PC gramatických systémů. Také nemá smysl definovat pravidla typu (x 1,...x n ) = (y 1,..., y n ), pokud je levá strana pravidla složena z terminálů. Vzhledem k tomu, že PC gramatické systémy pracují paralelně, hrozí zde reálné nebezpečí uváznutí celého systému. Uváznutí může nastat ve dvou případech. Ten první je docela zřejmý. Je to stav, kdy se žádný dotazovací symbol nevyskytuje v řetězci, řetězec (x 1,...x n ) není terminálním řetězcem a zároveň nelze žádné pravidlo na daný řetězec aplikovat. Tento typ uváznutí může nastat po obou fázích. Jak po fázi přepisování, tak po fázi komunikace. Druhá možnost, jak by mohl celý systém uváznout, je také dobře známá z paralelních systémů. Jde o kruhovou závislost. Komponenta (P i1 ) volá (Q i2 ), následně (P i2 ) zavolá (Q i3 ), až (P ik 1 ) zavolá (Q ik ) a (P ik ) zavolá opět (Q i1 ). Je jasné, že takováto závislost nemůže být vyřešena, protože se komunikují pouze řetězce, které neobsahují dotazovací symboly. Nyní přejděme k definici jazyka, který je v případě, že nenastane uváznutí, daným systémem generován. Jazyk generovaný PC gramatickým systémem Γ vypadá následovně: L(Γ) = {x T (S 1, S 2,..., S i ) = (x, α 2,..., α n ), α i V Γ, 2 i n} Začneme tedy od n-tice startujících symbolů (S 1, S 2,..., S i ) a pokračujeme přes přepisovací a komunikační kroky, dokud komponenta P 1 nevyprodukuje řetězec terminálů. Komponenta P 1 se nazývá master. Je to proto, že v momentě, kdy tato první komponenta vytvoří řetězec terminálů, tak celý systém ukončí derivování nezávisle na tom, co obsahují ostatní komponenty. PC gramatické systémy mají také svoje dělení. Existují dvě základní třídy gramatických systémů. Ty lze klasifikovat podle toho, jaký graf vytváří. Respektive podle tvaru grafu, jaký vytváří. Pro úplnost si uveďme přesnou definici. Nechť Γ = (N, K, T, (S 1, P 1 ),..., (S n, P n )) je PC gramatický systém. Pokud je pouze P 1 povoleno generovat dotazovací symboly(p i (N T) (N T) pro 2 i n), pak říkáme, že Γ je centralizovaný gramatický systém. Pokud může generovat dotazovací symboly libovolná komponenta, pak je Γ necentralizovaný gramatický systém. Další hledisko dělení gramatických systémů je podle toho, zda se vrací, či nevrací ke svému počátečnímu neterminálu. Gramatiku nazveme navracející se, pokud se poté, co poslala svůj řetězec jiné komponentě, vrátí ke svému startujícímu neterminálu S i. Pokud se tak nestane, a gramatika tedy pokračuje v provádění derivačních kroků, pak ji nazveme nenavracející gramatikou. Pokud je gramatika nenavracející, pak je nutné vynechat podmínku y ij = S ij v definici derivace. PC gramatický systém nazveme regulární, bezkontextový, kontextový, nebo třídy 0, pokud pravidla tohoto systému jsou dané třídy. Pokud nazveme systém regulárním, tak se většinou jedná o systém pravě lineární. To znamená, že 10
11 pravidla mají tvar A xb, A x kde A, B jsou neterminály a x je terminál. 3.2 Příklady Ukažme si vše na několika jednoduchých příkladech. Uvažujme následující gramatické systémy: Γ 1 = ({S 1, S 1, S 2, S 3 }, K, {a, b}, (S 1, P 1 ), (S 2, P 2 ), (S 3, P 3 )), P 1 = {S 1 abc, S 1 a 2 b 2 c 2, S 1 as 1, S 1 a 3 Q 2, S 1 as 1, S 1 a 3 Q 2, S 2 bq 3, S 3 c}, P 2 = {S 2 bs 2 }, P 3 = {S 3 cs 3 }, Γ 2 = ({S 1, S 2 }, K, {a, b}, (S 1, P 1 ), (S 2, P 2 )), P 1 = {S 1 S 1, S 1 Q 1 Q 2 }, P 2 = {S 2 as 2, S 2 bs 2, S 2 a, S 2 b}, Γ 3 = ({S 1, S 2 }, K, {a, b}, (S 1, P 1 ), (S 2, P 2 )), P 1 = {S 1 S 1, S 1 Q 1 Q 2 }, P 2 = {S 2 as 2, S 2 S 2 b, S 2 ab}. Výše uvedené gramatické systémy zjevně generují následující jazyky: L r (Γ 1 ) = L nr (Γ 1 ) = {a n b n c n n 1}, L r (Γ 2 ) = L nr (Γ 2 ) = {xx x {a, b} + 1}, L r (Γ 3 ) = L nr (Γ 3 ) = {a n b m a n b m n, m 1}. Ukažme si nyní na gramatickém systému Γ 1, jak pracuje. Musíme začít přepisovat od startujících terminálů, tedy od (S 1, S 2, S 3 ). Poté aplikujeme třetí a páté pravidlo z P 1 a pravidla z P 2 a P 3. Pokud provedeme tyto derivační kroky, dostáváme: (S 1, S 2, S 3 ) = r (as 1, bs 2, cs 3 ) = r (an+1 S 1, bn+1 S 2, c n+1 S 3 ). Případně můžeme použít šesté pravidlo z množiny P 1 : (a n+1 S 1, bn+1 S 2, c n+1 S 3 ) = r (a n+4 Q 2, bn+1 S 2, c n+2 S 3 ). 11
12 Protože se nám vyskytl ve větné formě dotazovací symbol Q 2, musíme provést komunikační krok. b n+2 S 2 je posláno první komponentě, kde nahradí Q 2. (a n+4 Q 2, bn+1 S 2, c n+2 S 3 ) = r (a n+4 b n+2 S 2, S 2, c n+2 S 3 ). Deterministickým způsobem pak budeme provádět následující kroky: (a n+4 b n+2 S 2, S 2, c n+2 S 3 ) = r (a n+4 b n+4 Q 3, bs 2, c n+3 S 3 ) = r (a n+4 bn + 4c n+3 S 3, bs 2, S 3 ) = r (a n+4 b n+4 c n+3 S 3, bs 2, cs 3 ). Tímto způsobem můžeme vyprodukovat všechny řetězce a n b n c n, n 4. To nám ovšem nestačí. Musíme být schopni vytvořit i řetězce kratší. (S 1, S 2, S 3 ) = r (a 3 Q 2, bs 2, cs 3 ) = r (a 3 bs 2, S 2, cs 3 ) = r = r (a 3 b 3 Q 3, bs 2, c 2 S 3 ) = r (a 3 b 3 c 2 S 3, bs 2, S 3 ) = r (a 3 b 3 c 3, b 2 S 2, cs 3 ). Takto vytvoříme řetězec a 3 b 3 c 3. Řetězce abc a a 2 b 2 c 2 dokáže vytvořit komponenta P 1 sama. Systémy Γ 2 a Γ 3 pracují následovně: P 1 nedělá nic, dokud P 2 generuje řetězec. Pak P 1 vytvoří řetězec Q1Q 2. Tím pádem je řetězec z P 2 zaslán P 1 a je duplikován.řetězec musí být tvořen terminály, jinak dojde k uváznutí. Všechny výše zmíněné gramatické systémy jsou centralizované. Jak vidíme, tak tyto relativně jednoduché gramatické systémy mohou generovat jazyky, které nejsou bezkontextové. 3.3 Nesynchronizované PC gramatické systémy U všech předchozích gramatických systémů jsme uvažovali synchronizaci přepisovacích kroků. Tím pádem existovaly nějaké hodiny, které řídily celý systém. S každým tikem hodin musela každá komponenta použít přepisovací pravidlo, pokud systém není v komunikačním módu. Pokud je řetězec v komponentě již složen z terminálů, pak žádné pravidlo není aplikováno. Pokud takovou synchronizaci nevyžadujeme, pak mluvíme o nesynchronizovaném systému. Označíme L u,r (Γ) a L u,nr (Γ) jazyky generované PC gramatickými systémy Γ v nesynchronizovaném návratném a nesynchronizovaném nenávratném módu. UY n X označíme rodinu jazyků generovanou nesynchronizovanými gramatickými systémy. Uveďme si několik teorémů, které můžeme najít v této literatuře. [3] (i)ucpc X = X, pro x {REG, LIN}. (ii)upc 2 REG REG, UPC REG CF, UPC 2 LIN CF, UCPC 2 CF CF. 12
13 (iii)ucpc 2 REG obsahuje nesemilineární jazyky UNCPC 2 CF obsahuje jednopísmenné a neregulární jazyky. (iv)(cpc REG NCPC REG) UCPC CF. Body (i) a (iv) ukazují, že pokud rozsynchronizujeme gramatický systém, snížíme podstatně generativní sílu, zatímco nesynchronizované PC gramatické systémy jsou stále velmi silné, jak ukazují body (ii) a (iii). Γ 1 = ({S 1, S 2, A, B, }, K, {a, b}, {S 1, P 1 }, {S 2, P 2 }), P 1 = {S 1 bq 2, B bq 2, B b}, P 2 = {S 2 as 2, S 2 aa, A ab}, Γ 2 = ({S 1, S 2, A, B, }, K, {a, b}, {S 1, P 1 }, {S 2, P 2 }), P 1 = {S 1 aq 2, S 1 aa, B ba}, P 2 = {S 2 aq 1, A bb, A b}. Jazyky, které z takovýchto gramatických systémů dostaneme, jsou následující: L u,nr (Γ 1 ) = {(ba n ) m b m 1, n 2}, nesemilineární jazyk, L u,r (Γ 2 ) = {a 2m a 2s+1 b 2t+1 m, s, t 1, s t}, neregulární jazyk. 3.4 Gramatické systémy s komunikací na příkaz Ve všech předchozích PC gramatických systémech jsme uvažovali případ, kdy byla komunikace vyžádána komponentou, která vygenerovala dotazovací symbol případně symboly. Tomuto způsobu iniciace komunikace proto říkáme na žádost. To ovšem není jediná možnost, jak komunikovat. Z praktického hlediska je však stejně důležitý i jiný přístup nazývaný komunikace na příkaz. Tento přístup je iniciován komponentou, která posílá zprávy. PC gramatické systémy komunikující na příkaz modelující WAVE diagram byly uvedeny E. Tsuhaj-Varjuem v tomto díle [2]. Základní myšlenkou je systém sestávající z několika gramatik tak, jak je to běžné u všech PC gramatických systémů pracujících odděleně, každá na své vlastní větné formě. Každá z těchto gramatik má na svém vstupu regulární nebo jiný jazyk, který pracuje jako vstupní filtr. V určitých případech je přepisování přerušeno a každá komponenta pošle svou aktuální větnou formu ostatním komponentám. Zejména těm, jejichž vstupní filtr obsahuje danou větnou formu. Stejně jako u ostatních PC gramatických systémů, tak i u těchto je jazyk generován master komponentou jazykem, který generuje celý systém. 13
14 Musí však být vyřešeno ještě několik otázek, než bude možné formulovat formální model: 1. Kdy má být ověřeno, zda mohou být větné formy komunikovány? Lze to dělat po každém kroku, pokud jsme v synchronizovaném módu, nebo můžeme nechat všechny komponenty pracovat tak dlouho, dokud mohou, a poté provést komunikaci. 2. Co by mělo být komunikováno? Celá větná forma, nebo pouze její část? 3. Jaká bude další větnou formou komponenty, která komunikovala svůj řetězec? Tedy jde o systém, který se navrací, či nikoli. 4. Uvažujme, že je několik zpráv zasláno jedné komponentě? Zde je možné najít několik řešení. Nejpřirozenější se jeví dvě varianty. Buď ze všech zpráv, které byly zaslány dané komponentě, vybereme jednu, a to buď nedeterministicky, nebo s přihlédnutím k prioritám komponent, nebo provedeme konkatenaci všech zpráv podle pořadí komponent. Jiné přístupy, které se inspirují podobnými praktickými problémy, lze nalézt zde [5]. 3.5 Aplikace v praxi Na rozdíl od CD gramatických systémů je aplikace PC gramatických systémů možné tam, kde je zapotřebí paralelismu. I zde lze uvažovat o aplikaci v multiagentních systémech. Pokud například nelze nebo nemůže libovolný agent provést zadanou operaci, vygeneruje symbol, pomocí kterého požádá o provedení operace jiného agenta nebo budou na dané operaci spolupracovat. Nejdůležitější aplikací PC gramatických systémů však nadále zůstává překlad jazyků. Můžeme si snadno představit, že používáme v našem souboru se zdrojovým kódem několik programovacích jazyků. Uvažujme pro začátek situaci, že jsou programovací jazyky od sebe navzájem odděleny například takto: ****************Jazyk C********************* double a,b,c; scanf( %f, a); printf( soucet je:%f,a+b+c); *****************Assembler******************* ohrkone: push bp ; stav zasobniku (shora dolu): 14
15 mov bp,sp ; x1:2,y1:2,x2:2,y2:2,cs:2,ip:2,bp:2 mov al,0 ; false (kone se neohrozuji) mov bl,[bp+12] ; x1 do bl sub bl,[bp+8] ; (x1-x2) do bl jz konec1 ; kone ve stejnem radku se neohrozuji jns pokr1 ; neg bl ; -(x1-x2) do bl V takovém případě není potřeba generovat žádné dotazovací symboly. Je možné zpracovat celý zdrojový soubor paralelně. Každá komponenta zpracuje svoji část zdrojového kódu následujícím způsobem. Najde si svůj startující neterminální symbol a pak aplikuje přepisovací pravidla ve vhodném pořadí. Pokud je u takovéhoto typu překladu vygenerován dotazovací symbol, lze to považovat za chybu. Nyní uvažujme situace, že jednotlivé programovací jazyky jsou smíchány dohromady: ohrkone: push bp ; stav zasobniku (shora dolu): mov bp,sp ; x1:2,y1:2,x2:2,y2:2,cs:2,ip:2,bp:2 mov al,0 ; false (kone se neohrozuji) mov bl,[bp+12] ; x1 do bl sub bl,[bp+8] ; (x1-x2) do bl jz konec1 ; kone ve stejnem radku se neohrozuji jns pokr1 ; neg bl ; -(x1-x2) do bl var x1,x2,y1,y2,i,j:byte; ch:char; Function ohrkone(x1,y1,x2,y2:byte):boolean;external; begin Randomize; ClrScr; repeat GoToXY(2,1); Write( Zadejte pozadovanou cinnost (O..Ohrozuje, K..Konec): ); repeat ch:=upcase(readkey); until ch in [ O, K ]; ClrScr; case ch of O :begin x1:=random(8)+1; y1:=random(8)+1; repeat x2:=random(8)+1; 15
16 y2:=random(8)+1; until not ((x1=x2) and (y1=y2)); for i:=1 to 8 do begin for j:=1 to 8 do begin GoToXY(20+2*j,3+i); if ((i=x1) and (j=y1)) or ((i=x2) and (j=y2)) then Write( X ) else Write(. ); end; end; GoToXY(22,15); WriteLn( Kone se ohrozuji:,ohrkone(x1,y1,x2,y2), ); end; end; until ch= K ; end. Zde lze při kontrole zdrojového kódu uplatnit naplno PC gramatické systémy. Každá komponenta bude překládat svou část kódu a v momentě kdy narazíme na assemblerovský kód uvnitř jazyka pascal se dotážeme této komponenty, zda je assemblerovská část v pořádku. Dá se uvažovat i o aplikaci tohoto postupu v kryptografii. Při lámání šifry bude každému procesoru, počítači nebo jiné výpočetní jednotce přidělena určitá část výpočtu. Jednotky pak mohou pracovat nezávisle na sobě a v případě potřeby budou spolu komunikovat přes dotazovací symboly. Tato kapitola diskutovala gramatické systémy typu PC. Nejdříve byla provedena definice tohoto typu gramatického systému a následně na příkladech ukázáno, jak v praxi fungují. Bylo provedeno rozdělení systémů podle různých hledisek. Dále se kapitola zabývala několika specifickými typy gramatických systémů, jako jsou nesynchronizované gramatické systémy nebo systémy komunikující na příkaz. Závěrem jsem se pokusil osvětlit kde se dají takovýto model použít v praxi. 4 Příbuzné modely Nyní se ještě ve zkratce podívejme na některé modely, které jsou příbuzné gramatickým systémům. Bude se jednat eco gramatiky, a pak také o test tube systémy. 4.1 Eco gramatiky V případě EG[6] se jedná o relativně nedávno uvedený gramatický model, který je zaměřen na vztah mezi prostředím a agenty, kteří v něm působí. Takovýto systém se nazývá ekosystém. EG lze interpretovat jako zobecnění jak CD, tak i PC gramatických systémů. Hlavní myšlenkou při definici tohoto mod- 16
17 elu bylo zachycení popisu různých forem života tak, aby bylo možné tuto notaci použít při modelování multiagentních systémů, nebo jiných umělých forem života. Základním předpokladem tohoto modelu je fakt, že komponenty tohoto systému mohou být popsány řetězci nad danými abecedami. Schéma gramatického systému je zachyceno na obrázku 2.1. Celý systém je ve své podstatě rozdělen na dvě části. Rozlišujeme prostředí, které je popsáno řetězci w E nad abecedou V E. Prostředí se vyvíjí podle množiny pravidel P E, která jsou typu 0. Na druhou stranu agenti, kterých může být obecně n, jsou jsou popsáni řetězci w i nad abecedou V i a vyvíjí se podle pravidel P i, která jsou rovněž typu 0. Formálně je tedy EG systém popsán následovně: kde Σ = (E, A 1, A 2,..., A n ), E = (V E, P E ) je prostředí, A i = (V i, P i, R i, ϕ i, ψ i ), 1 i n, jsou jednotliví agenti. Konvence pro popis je následující: V E, V i jsou abecedy (V E V i = ), 1 i n, P E konečná množina pravidel typu 0 nad V E, P i konečná množina pravidel typu 0 nad V i, 1 i n, R i konečná množina přepisovacích pravidel nad V E nebo j i V j, 1 i n, ϕ i : VE, 1 i n, 2Pi ψ i : Vi 2 Ri, 1 i n. Aplikace v praxi Tyto gramatiky jsou vhodné zejména pro popis agentních a multiagentních systémů. Bohužel se mi nepodařilo najít žádné informace o převedení tohoto modelu do praxe. 17
18 4.2 Test tube systémy Posledním modelem, který bude nastíněn jsou test tube systémy[4]. Jedná se o mechanismus zpracování symbolů, který má architekturu PC gramatického systému komunikujícího na příkaz. Komunikace v rámci systému je prováděna pomocí redistribuce obsahu jednotlivých rour(tubes). Takovéto systémy se ukázaly výpočetně úplné. Mají tedy sílu vyjádřit rekurzivně vyčíslitelné jazyky. Tato krátká kapitolka měla za úkol představit některé další modely, které jsou příbuzné gramatickým systémům. Byly prezentovány EG systémy a test tube systémy. 5 Závěr Cílem této práce bylo obeznámit se s gramatickými systémy jak z teoretického tak i z praktického hlediska. Bylo provedeno rozdělení gramatických systémů na tři kategorie. CD gramatické systémy, PC gramatické systémy a příbuzné modely. CD gramatické systémy pracují sekvenčně. Nicméně i tak mají velkou sílu, neboť i s bezkontextovými pravidly lze generovat jazyky typu 0. Obvykle pracují všechny komponenty ve stejném módu což však neplatí o hybridních CD gramatických systémech, kde je každé komponentě přiřazen libovolný mód. Změny derivačního módu nijak neovlivní jejich sílu. Hlavní uplatnění těchto systémů je v překladu a interpretaci jazyků. Další probranou kategorií jsou PC gramatické systémy. Jejich největší výhodou je fakt, že jsou paralelní. Každá komponenta tedy může pracovat samostatně, dokud není třeba kooperace s ostatními pomocí dotazovacích symbolů. PC gramatické systémy dělíme na returning a non-returning podle toho, zda se vracejí po komunikačním kroku zpět do počátečního stavu. Existují i speciální verze PC gramatických systémů jako například nesynchronizované PC gramatické systémy a jiné. Jejich aplikace je vhodná a možná pro popis jakýchkoli paralelních systémů např. v kryptografii a podobně. Závěrem byly zmíněny i příbuzné modely. Jmenovitě celkem zajímavý koncept ekogramatik, za jejichž vznikem stojí snaha o stvoení formalismu pro popis živých struktur a také test tube systémy. 18
19 References [1] Csuhaj-Varju, E. a. k.: Grammar systems: a grammatical approach to distribution and cooperation. OPA (Amsterdam) B.V., [2] Csuhaj-Varju, E. a. k.: Grammar systems with WAVE-like communication. Computers and AI, [3] Csuhaj-Varju, E. a. k.: Grammar Systems. A gramatical approach to distribution and cooperation. Gordon and Breach, London, [4] Freund, R. a. k.: Test tube systems with cutting/recombination operations. [Online;accessed 16-May-2009]. URL [5] Hillis, W.: The connection machine. The MIT press, Cambridge, Mass., [6] Rozenberg, G.; Salomaa, A. (editoři): Handbook of formal languages Vol. 2 Linear Modeling: Background and application. Springer, Berlin, ISBN , str
20 Seznam zkratek a symbolů PC - parallel communicating CD - cooperating distributed EG - eco gramatiky 20
Formální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
2 Formální jazyky a gramatiky
2 Formální jazyky a gramatiky 2.1 Úvod Teorie formálních gramatik a jazyků je důležitou součástí informatiky. Její využití je hlavně v oblasti tvorby překladačů, kompilátorů. Vznik teorie se datuje přibližně
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27
Bezkontextové jazyky 2/3 Bezkontextové jazyky 2 p.1/27 Transformace bezkontextových gramatik Bezkontextové jazyky 2 p.2/27 Ekvivalentní gramatiky Definice 6.1 Necht G 1 a G 2 jsou gramatiky libovolného
Vztah jazyků Chomskeho hierarchie a jazyků TS
Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé
Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
Jednoznačné a nejednoznačné gramatiky
BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 2/36 Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 4/36 Automaty a gramatiky(bi-aag) 11.
Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39
Bezkontextové jazyky Bezkontextové jazyky 1 p.1/39 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
SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA GRAMATICKÝCH A AUTOMATOVÝCH SYSTÉMECH PARSING BASED ON GRAMMAR AND AUTOMATA SYSTEMS
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SYNTAKTICKÁ ANALÝZA
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
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:
3 Maticový počet 3.1 Zavedení pojmu matice 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: a 11 a 12... a 1k... a 1n a 21 a 22...
AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
Naproti tomu gramatika je vlastně soupis pravidel, jak
1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GRAMATICKÉ SYSTÉMY
Implementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Substituce a morfismy jednoduše
Substituce a morfismy jednoduše Petr Zemek 31. července 2010 Abstrakt Tento text si dává za cíl srozumitelně a formou příkladů osvětlit problematiku substitucí a morfismů v rozsahu předmětu Teoretická
Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy
Metody a nástroje syntaktické analýzy Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 14. října 2011 Vlastnosti syntaktické analýzy Úkoly syntaktické
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
9 Kolmost vektorových podprostorů
9 Kolmost vektorových podprostorů Od kolmosti dvou vektorů nyní přejdeme ke kolmosti dvou vektorových podprostorů. Budeme se zabývat otázkou, kdy jsou dva vektorové podprostory na sebe kolmé a jak to poznáme.
Minimalizace KA - Úvod
Minimalizace KA - Úvod Tyto dva KA A,A2 jsou jazykově ekvivalentní, tzn. že rozpoznávají tentýž jazyk. L(A) = L(A2) Názorně lze vidět, že automat A2 má menší počet stavů než A, tudíž našim cílem bude ukázat
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNAKICKÁ ANALÝZA DOKONČENÍ, IMPLEMENACE. VLASNOSI LL GRAMAIK A JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Gramatika
10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo
0. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo (PEF PaA) Petr Gurka aktualizováno 9. prosince 202 Obsah Základní pojmy. Motivace.................................2 Aritmetický vektorový
Konečný automat. Jan Kybic.
Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
Množiny, relace, zobrazení
Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,
EKO-KOLONIE. Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě 24.
EKO-KOLONIE OBHAJOBA DISERTAČNÍ PRÁCE RNDr. Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 24. dubna 2008 Obsah 1 Eko-kolonie
Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory
Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový
Automaty a gramatiky
Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Co bylo minule Úvod do formálních gramatik produkční systémy generativní gramatika G=(V N,V T,,P) G =
Matematická logika. Miroslav Kolařík
Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
Číselné vektory, matice, determinanty
Číselné vektory, matice, determinanty Základy vyšší matematiky LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny
Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
Čí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:
1) Syntaktická analýza shora a zdola, derivační strom, kanonická derivace ezkontextová gramatika gramatika typu 2 Nechť G = je gramatika typu 1. Řekneme, že je gramatikou typu 2, platí-li: y
Pravděpodobnost a statistika
Pravděpodobnost a statistika 1 Náhodné pokusy a náhodné jevy Činnostem, jejichž výsledek není jednoznačně určen podmínkami, za kterých probíhají, a které jsou (alespoň teoreticky) neomezeně opakovatelné,
Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru
2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
Matice. a m1 a m2... a mn
Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích
MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13
Postův korespondenční problém Meze rozhodnutelnosti 2 p.1/13 Postův korespondenční problém Definice 10.1 Postův systém nad abecedou Σ je dán neprázdným seznamem S dvojic neprázdných řetězců nadσ, S = (α
3 Lineární kombinace vektorů. Lineární závislost a nezávislost
3 Lineární kombinace vektorů. Lineární závislost a nezávislost vektorů. Obrázek 5: Vektor w je lineární kombinací vektorů u a v. Vektory u, v a w jsou lineárně závislé. Obrázek 6: Vektor q je lineární
1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35
1. Matice a maticové operace 1. Matice a maticové operace p. 1/35 1. Matice a maticové operace p. 2/35 Matice a maticové operace 1. Aritmetické vektory 2. Operace s aritmetickými vektory 3. Nulový a opačný
Báze a dimenze vektorových prostorů
Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň
Syntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava
Implementace LL(1) překladů Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 6. ledna 2012 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný
Vysoké učení technické v Brně Fakulta informačních technologií Gramatiky nad volnými grupami 2005 Petr Blatný Abstrakt Tento dokument zavádí pojmy bezkontextové gramatiky nad volnou grupou a E0L gramatiky
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
1 Soustavy lineárních rovnic
1 Soustavy lineárních rovnic 1.1 Základní pojmy Budeme uvažovat soustavu m lineárních rovnic o n neznámých s koeficienty z tělesa T (potom hovoříme o soustavě m lineárních rovnic o n neznámých nad tělesem
Úvod do lineární algebry
Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
1 Řešení soustav lineárních rovnic
1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS MASTER S THESIS AUTHOR
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS SYSTÉMY FORMÁLNÍCH
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
OPS Paralelní systémy, seznam pojmů, klasifikace
Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
Operace s maticemi. 19. února 2018
Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice
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 Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ107/2200/280141 Soustavy lineárních rovnic Michal Botur Přednáška 4 KAG/DLA1M: Lineární
1) Sekvenční a paralelní gramatiky
A. Kapitoly z teorie formálních jazyků a automatů c Milan Schwarz (006) ) Sekvenční a paralelní gramatiky Derivace v gramatikách: Sekvenční postup sekvenční gramatiky (např. gramatiky v Chomského hierarchii)
PŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
Lineární algebra : Lineární prostor
Lineární algebra : Lineární prostor (3. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. dubna 2014, 14:43 1 2 3.1 Aximotické zavedení lineárního prostoru Číselné těleso Celou lineární
Turingovy stroje. Teoretická informatika Tomáš Foltýnek
Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh,
Teoretická informatika - Úkol č.1
Teoretická informatika - Úkol č.1 Lukáš Sztefek, xsztef01 18. října 2012 Příklad 1 (a) Gramatika G 1 je čtveřice G 1 = (N, Σ, P, S) kde, N je konečná množina nonterminálních symbolů N = {A, B, C} Σ je
Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek
Otázka 06 - Y01MLO Zadání Predikátová logika, formule predikátové logiky, sentence, interpretace jazyka predikátové logiky, splnitelné sentence, tautologie, kontradikce, tautologicky ekvivalentní formule.
Lingebraické kapitolky - Analytická geometrie
Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1
Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit
Syntaktická analýza založená na multigenerativních systémech Závěrečná práce z předmětu TJD. Jakub Martiško
Syntaktická analýza založená na multigenerativních systémech Závěrečná práce z předmětu TJD Jakub Martiško 29. ledna 2016 Obsah 1 Úvod 2 2 Definice a pojmy 4 2.1 Syntaktická analýza...............................
Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).
7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA MULTIGENEROVÁNÍ PARSING BASED ON MULTIGENERATION
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SYNTAKTICKÁ ANALÝZA
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.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
Lineární algebra Operace s vektory a maticemi
Lineární algebra Operace s vektory a maticemi Robert Mařík 26. září 2008 Obsah Operace s řádkovými vektory..................... 3 Operace se sloupcovými vektory................... 12 Matice..................................
Poslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
Kongruence na množině celých čísel
121 Kapitola 4 Kongruence na množině celých čísel 4.1 Relace kongruence na množině celých čísel Vraťme se k úvahám o dělení se zbytkem. Na základní škole jsme se naučili, že když podělíme číslo 11 číslem
Program a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
Soustavy lineárních rovnic
Soustavy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních diferenciálních rovnic y = a (x)y + a (x)y + + a n (x)y n + f (x) y = a (x)y + a (x)y + + a n (x)y n + f (x). y n = a
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
Kapitola 5 Vektorové prostory 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 operací sčítání a násobení
příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.
Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl
Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.
9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
Algoritmizace. Obrázek 1: Přeložení programu překladačem
Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Logika pro každodenní přežití Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
DEFINICE Z LINEÁRNÍ ALGEBRY
DEFINICE Z LINEÁRNÍ ALGEBRY Skripta Matematické metody pro statistiku a operační výzkum (Nešetřilová, H., Šařecová, P., 2009). 1. definice Vektorovým prostorem rozumíme neprázdnou množinu prvků V, na které
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)
GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK) 2011 Jan Janoušek MI-GEN Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Úvod
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.
Kapitola 6 LL gramatiky 6.1 Definice LL(k) gramatik Definice 6.1. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo. Definujme funkci FIRST G k : (N Σ) + P({w Σ w k}) předpisem FIRST G k (α) = {w Σ (α w
Lexikální analýza Teorie programovacích jazyků
Lexikální analýza Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Osnova dnešní přednášky 1 Úvod do teorie překladačů kompilátor a interpret
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška pátá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní
Syntaxí řízený překlad
Syntaxí řízený překlad Překladový automat Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Zobecněný překladový automat Překladový automat
Vrcholová barevnost grafu
Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška první Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Co a k čemu je logika? 2 Výroky a logické spojky