opora

frantisek.plesicek
from frantisek.plesicek More from this publisher
10.02.2019 Views

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.

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!