10.02.2019 Views

opora

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 17<br />

2.3.3 Typ 2<br />

Gramatika typu 2 obsahuje pravidla tvaru:<br />

A → γ, A ∈ N, γ ∈ (N ∪ Σ) ∗ .<br />

Gramatiky typu 2 se nazývají také bezkontextovými gramatikami, protože substituci<br />

pravé strany γ pravidla za nonterminál A lze provádět bez ohledu na kontext,<br />

ve kterém je nonterminál A uložen. Na rozdíl od kontextových gramatik,<br />

bezkontextové gramatiky smí obsahovat pravidla tvaru A → ɛ. V kapitole 4<br />

však ukážeme, že každou bezkontextovou gramatiku lze transformovat, aniž by<br />

se změnil jazyk generovaný touto gramatikou tak, že obsahuje nejvýše jedno pravidlo<br />

s prázdným řetězcem na pravé straně tvaru S → ɛ. V takovém případě,<br />

stejně jako v případě kontextových gramatik, nesmí se výchozí symbol S objevit<br />

v žádné pravé straně přepisovacího pravidla gramatiky.<br />

Příklad 2.22 Příklad bezkontextové gramatiky:<br />

G = ({S}, {0, 1}, P, S) s pravidly<br />

S → 0S1 | ɛ<br />

Poznamenejme, že jazyk generovaný touto gramatikou je stejný jako jazyk generovaný<br />

kontextovou gramatikou z příkladu 2.21:<br />

2.3.4 Typ 3<br />

L(G) = {0 n 1 n }, n ≥ 0<br />

Gramatika typu 3 obsahuje pravidla tvaru:<br />

A → xB nebo A → x; A, B ∈ N, x ∈ Σ ∗ .<br />

Gramatika s tímto tvarem pravidel se nazývá pravá lineární gramatika (jediný<br />

možný nonterminál pravé strany pravidla stojí úplně napravo). V následující kapitole<br />

ukážeme, že k uvedené gramatice lze sestrojit ekvivalentní speciální pravou<br />

lineární gramatiku s pravidly tvaru<br />

nebo<br />

A → aB nebo A → a, kde A, B ∈ N, a ∈ Σ<br />

S → ɛ, pokud se S neobjevuje na pravé straně žádného pravidla.<br />

Tuto gramatiku budeme nazývat regulární gramatikou, přesněji pravou regulární<br />

gramatikou.<br />

Příklad 2.23 Příklady gramatiky typu 3:<br />

G = ({A, B}, {a, b, c}, P, A) s pravidly<br />

A → aaB | ccB<br />

B → bB | ɛ

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

Saved successfully!

Ooh no, something went wrong!