opora
KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 17 2.3.3 Typ 2 Gramatika typu 2 obsahuje pravidla tvaru: A → γ, A ∈ N, γ ∈ (N ∪ Σ) ∗ . Gramatiky typu 2 se nazývají také bezkontextovými gramatikami, protože substituci pravé strany γ pravidla za nonterminál A lze provádět bez ohledu na kontext, ve kterém je nonterminál A uložen. Na rozdíl od kontextových gramatik, bezkontextové gramatiky smí obsahovat pravidla tvaru A → ɛ. V kapitole 4 však ukážeme, že každou bezkontextovou gramatiku lze transformovat, aniž by se změnil jazyk generovaný touto gramatikou tak, že obsahuje nejvýše jedno pravidlo s prázdným řetězcem na pravé straně tvaru S → ɛ. V takovém případě, stejně jako v případě kontextových gramatik, nesmí se výchozí symbol S objevit v žádné pravé straně přepisovacího pravidla gramatiky. Příklad 2.22 Příklad bezkontextové gramatiky: G = ({S}, {0, 1}, P, S) s pravidly S → 0S1 | ɛ Poznamenejme, že jazyk generovaný touto gramatikou je stejný jako jazyk generovaný kontextovou gramatikou z příkladu 2.21: 2.3.4 Typ 3 L(G) = {0 n 1 n }, n ≥ 0 Gramatika typu 3 obsahuje pravidla tvaru: A → xB nebo A → x; A, B ∈ N, x ∈ Σ ∗ . Gramatika s tímto tvarem pravidel se nazývá pravá lineární gramatika (jediný možný nonterminál pravé strany pravidla stojí úplně napravo). V následující kapitole ukážeme, že k uvedené gramatice lze sestrojit ekvivalentní speciální pravou lineární gramatiku s pravidly tvaru nebo A → aB nebo A → a, kde A, B ∈ N, a ∈ Σ S → ɛ, pokud se S neobjevuje na pravé straně žádného pravidla. Tuto gramatiku budeme nazývat regulární gramatikou, přesněji pravou regulární gramatikou. Příklad 2.23 Příklady gramatiky typu 3: G = ({A, B}, {a, b, c}, P, A) s pravidly A → aaB | ccB B → bB | ɛ
KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 18 Definice 2.16 Jazyk generovaný gramatikou typu i, i = 0, 1, 2, 3, nazýváme jazykem typu i. Podle názvů gramatik mluvíme také o jazycích rekurzivně vyčíslitelných (i = 0) a analogicky ke gramatikám jazycích kontextových (i = 1), bezkontextových (i = 2) a regulárních (i = 3) 1 . Věta 2.3 Nechť L i , i = 0, 1, 2, 3 značí třídu všech jazyků typu i. Pak platí L 0 ⊇ L 1 ⊇ L 2 ⊇ L 3 . Důkaz: Z definice gramatiky typu i plyne, že každá gramatika typu 1 je zároveň gramatikou typu 0 a každá gramatika typu 3 je zároveň bezkontextovou gramatikou. Inkluze L 1 ⊇ L 2 plyne ze skutečnosti, že každá bezkontextová gramatika může být převedena na bezkontextovou gramatiku, jež neobsahuje, s výjimkou pravidla S → ɛ (S je výchozí symbol), žádné pravidlo s pravou stranou totožnou s prázdným řetězcem ɛ. ✷ K základním poznatkům teorie formálních jazyků patří další tvrzení, jež je zesílením věty 2.3 a jež definuje Chomského hierarchii formálních jazyků. Toto tvrzení uvádíme nyní bez důkazu. Věta 2.4 Nechť L i , i = 0, 1, 2, 3 jsou třídy jazyků typu i. Pak platí L 0 ⊃ L 1 ⊃ L 2 ⊃ L 3 . Formální jazyk je univerzálním prostředkem pro kódování informace a popis objektů řady aplikací, které lze reprezentovat a zpracovávat počítačovými programy. Algebraický charakter operací nad formálními jazyky umožňuje kompozitní řešení složitých problémů jejich rozkladem a skládáním výsledného řešení. Chomského hierarchie gramatik a formálních jazyků je referenčním schématem klasifikace aplikací teorie formálních jazyků a prostředkem vymezujícím popisnou a rozhodovací sílu dané třídy formálních modelů. 2.4 Cvičení Cvičení 2.4.1 Uspořádejte (podle množinové inkluze) tyto jazyky (a) {a, b} ∗ (b) a ∗ b ∗ c ∗ (c) {w | w ∈ {a, b}∗ a počet výskytů symbolů a a b je roven } Cvičení 2.4.2 Na základě Chomského klasifikace gramatik a jazyků rozhodněte typ dané gramatiky. Uvádíme pouze pravidla gramatiky; velká písmena značí nonterminální symboly (S je výchozí symbol) a malá písmena nebo číslice značí terminální symboly. 1 Toto označení vychází z ekvivalence vyjadřovací síly gramatik typu 3 a gramatik regulárních.
- 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 and 8: KAPITOLA 1. ÚVOD 6 1.1 Obsahové a
- Page 9 and 10: Kapitola 2 Jazyky, gramatiky a jeji
- 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: 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
- Page 59 and 60: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 61 and 62: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 63 and 64: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 65 and 66: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 67 and 68: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 18<br />
Definice 2.16 Jazyk generovaný gramatikou typu i, i = 0, 1, 2, 3, nazýváme<br />
jazykem typu i. Podle názvů gramatik mluvíme také o jazycích rekurzivně vyčíslitelných<br />
(i = 0) a analogicky ke gramatikám jazycích kontextových (i = 1),<br />
bezkontextových (i = 2) a regulárních (i = 3) 1 .<br />
Věta 2.3 Nechť L i , i = 0, 1, 2, 3 značí třídu všech jazyků typu i. Pak platí L 0 ⊇<br />
L 1 ⊇ L 2 ⊇ L 3 .<br />
Důkaz: Z definice gramatiky typu i plyne, že každá gramatika typu 1 je zároveň<br />
gramatikou typu 0 a každá gramatika typu 3 je zároveň bezkontextovou gramatikou.<br />
Inkluze L 1 ⊇ L 2 plyne ze skutečnosti, že každá bezkontextová gramatika<br />
může být převedena na bezkontextovou gramatiku, jež neobsahuje, s výjimkou<br />
pravidla S → ɛ (S je výchozí symbol), žádné pravidlo s pravou stranou totožnou<br />
s prázdným řetězcem ɛ.<br />
✷<br />
K základním poznatkům teorie formálních jazyků patří další tvrzení, jež je<br />
zesílením věty 2.3 a jež definuje Chomského hierarchii formálních jazyků. Toto<br />
tvrzení uvádíme nyní bez důkazu.<br />
Věta 2.4 Nechť L i , i = 0, 1, 2, 3 jsou třídy jazyků typu i. Pak platí L 0 ⊃ L 1 ⊃<br />
L 2 ⊃ L 3 .<br />
Formální jazyk je univerzálním prostředkem pro kódování informace a popis<br />
objektů řady aplikací, které lze reprezentovat a zpracovávat počítačovými programy.<br />
Algebraický charakter operací nad formálními jazyky umožňuje kompozitní<br />
řešení složitých problémů jejich rozkladem a skládáním výsledného řešení.<br />
Chomského hierarchie gramatik a formálních jazyků je referenčním schématem<br />
klasifikace aplikací teorie formálních jazyků a prostředkem vymezujícím popisnou<br />
a rozhodovací sílu dané třídy formálních modelů.<br />
2.4 Cvičení<br />
Cvičení 2.4.1 Uspořádejte (podle množinové inkluze) tyto jazyky<br />
(a) {a, b} ∗<br />
(b) a ∗ b ∗ c ∗<br />
(c) {w | w ∈ {a, b}∗ a počet výskytů symbolů a a b je roven }<br />
Cvičení 2.4.2 Na základě Chomského klasifikace gramatik a jazyků rozhodněte<br />
typ dané gramatiky. Uvádíme pouze pravidla gramatiky; velká písmena značí<br />
nonterminální symboly (S je výchozí symbol) a malá písmena nebo číslice značí<br />
terminální symboly.<br />
1 Toto označení vychází z ekvivalence vyjadřovací síly gramatik typu 3 a gramatik regulárních.