opora
KAPITOLA 1. ÚVOD 7 Kapitola 6 Nerozhodnutelné problémy teorie formálních jazyků. Kapitola 7 Úvod do výpočetní složitosti, Turingovská složitost, třída P a NP problémů.
Kapitola 2 Jazyky, gramatiky a jejich klasifikace Cílem této kapitoly je pochopení pojmu formální jazyk, jeho matematické explikace (popisu) a univerzality a základních algebraických operací nad formálními jazyky, které nacházejí praktické uplatnění v praktických aplikacích. Dále pak pochopení základního způsobu specifikace formálního jazyka gramatikou a způsobu klasifikace formálních jazyků, založeného na klasifikaci gramatik. 2.1 Jazyky Jedním ze základních pojmů pro vymezení jazyka jsou pojmy abeceda a řetězec. Definice 2.1 Abecedou rozumíme neprázdnou množinu prvků, které nazýváme symboly abecedy. V některých teoretických případech je účelné pracovat i s abecedami nekonečnými, v našich aplikacích se však omezíme na abecedy konečné. Příklad 2.1 Jako příklady abeced můžeme uvést latinskou abecedu obsahující 52 symbolů, které reprezentují velká a malá písmena, řeckou abecedu, dvouprvkovou binární abecedu reprezentovanou množinou {0, 1} resp. {true, false} nebo abecedy programovacích jazyků. Definice 2.2 Řetězcem (také slovem nebo větou) nad danou abecedou rozumíme každou konečnou posloupnost symbolů abecedy. Prázdnou posloupnost symbolů, tj. posloupnost, která neobsahuje žádný symbol, nazýváme prázdný řetězec. Prázdný řetězec budeme označovat písmenem ɛ. Formálně lze definovat řetězec nad abecedou Σ takto: (1) prázdný řetězec ɛ je řetězec nad abecedou Σ, (2) je-li x řetězec nad Σ a a ∈ Σ, pak xa je řetězec nad Σ, (3) y je řetězec nad Σ, když a jen když lze y získat aplikací pravidel 1 a 2. Příklad 2.2 Je-li A = {a, b, +} abeceda, pak ɛ a b + aa a + b + ab jsou některé řetězce nad abecedou A. Pořadí symbolů v řetězci je významné; řetězce a + b, +ab jsou různé. Symbol b, například, je řetězec nad A, poněvadž ɛb = b (pravidlo (2)). Konvence 2.1 Budeme-li pracovat s obecnými abecedami, symboly, či řetězci, pak pro jejich značení použijeme: 8
- Page 1 and 2: Teoretická informatika TIN Studijn
- Page 3 and 4: OBSAH 2 4 Bezkontextové jazyky a z
- Page 5 and 6: OBSAH 4 7.2 Třídy složitosti . .
- Page 7: KAPITOLA 1. ÚVOD 6 1.1 Obsahové a
- Page 11 and 12: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 13 and 14: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 15 and 16: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 17 and 18: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 19 and 20: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 21 and 22: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 23 and 24: KAPITOLA 3. REGULÁRNÍ JAZYKY 22
- Page 25 and 26: KAPITOLA 3. REGULÁRNÍ JAZYKY 24 3
- Page 27 and 28: KAPITOLA 3. REGULÁRNÍ JAZYKY 26 D
- Page 29 and 30: KAPITOLA 3. REGULÁRNÍ JAZYKY 28 2
- Page 31 and 32: KAPITOLA 3. REGULÁRNÍ JAZYKY 30 D
- Page 33 and 34: KAPITOLA 3. REGULÁRNÍ JAZYKY 32 V
- Page 35 and 36: KAPITOLA 3. REGULÁRNÍ JAZYKY 34 D
- Page 37 and 38: KAPITOLA 3. REGULÁRNÍ JAZYKY 36 V
- Page 39 and 40: KAPITOLA 3. REGULÁRNÍ JAZYKY 38 D
- Page 41 and 42: KAPITOLA 3. REGULÁRNÍ JAZYKY 40 3
- Page 43 and 44: KAPITOLA 3. REGULÁRNÍ JAZYKY 42 3
- Page 45 and 46: KAPITOLA 3. REGULÁRNÍ JAZYKY 44 V
- Page 47 and 48: KAPITOLA 3. REGULÁRNÍ JAZYKY 46 3
- Page 49 and 50: KAPITOLA 3. REGULÁRNÍ JAZYKY 48 P
- Page 51 and 52: KAPITOLA 3. REGULÁRNÍ JAZYKY 50 3
- Page 53 and 54: KAPITOLA 3. REGULÁRNÍ JAZYKY 52 C
- Page 55 and 56: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 57 and 58: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
Kapitola 2<br />
Jazyky, gramatiky a jejich<br />
klasifikace<br />
Cílem této kapitoly je pochopení pojmu formální jazyk, jeho matematické explikace<br />
(popisu) a univerzality a základních algebraických operací nad formálními<br />
jazyky, které nacházejí praktické uplatnění v praktických aplikacích. Dále pak<br />
pochopení základního způsobu specifikace formálního jazyka gramatikou a způsobu<br />
klasifikace formálních jazyků, založeného na klasifikaci gramatik.<br />
2.1 Jazyky<br />
Jedním ze základních pojmů pro vymezení jazyka jsou pojmy abeceda a řetězec.<br />
Definice 2.1 Abecedou rozumíme neprázdnou množinu prvků, které nazýváme<br />
symboly abecedy.<br />
V některých teoretických případech je účelné pracovat i s abecedami nekonečnými,<br />
v našich aplikacích se však omezíme na abecedy konečné.<br />
Příklad 2.1 Jako příklady abeced můžeme uvést latinskou abecedu obsahující 52<br />
symbolů, které reprezentují velká a malá písmena, řeckou abecedu, dvouprvkovou<br />
binární abecedu reprezentovanou množinou {0, 1} resp. {true, false} nebo abecedy<br />
programovacích jazyků.<br />
Definice 2.2 Řetězcem (také slovem nebo větou) nad danou abecedou rozumíme<br />
každou konečnou posloupnost symbolů abecedy. Prázdnou posloupnost symbolů,<br />
tj. posloupnost, která neobsahuje žádný symbol, nazýváme prázdný řetězec. Prázdný<br />
řetězec budeme označovat písmenem ɛ.<br />
Formálně lze definovat řetězec nad abecedou Σ takto:<br />
(1) prázdný řetězec ɛ je řetězec nad abecedou Σ,<br />
(2) je-li x řetězec nad Σ a a ∈ Σ, pak xa je řetězec nad Σ,<br />
(3) y je řetězec nad Σ, když a jen když lze y získat aplikací pravidel 1 a 2.<br />
Příklad 2.2 Je-li A = {a, b, +} abeceda, pak<br />
ɛ a b + aa a + b + ab<br />
jsou některé řetězce nad abecedou A. Pořadí symbolů v řetězci je významné;<br />
řetězce a + b, +ab jsou různé. Symbol b, například, je řetězec nad A, poněvadž<br />
ɛb = b (pravidlo (2)).<br />
Konvence 2.1 Budeme-li pracovat s obecnými abecedami, symboly, či řetězci,<br />
pak pro jejich značení použijeme:<br />
8