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 15<br />

Definice 2.13 Nechť G = (N, Σ, P, S) je gramatika a λ a µ jsou řetězce z (N ∪<br />

Σ) ∗ . Mezi řetězci λ a µ platí relace ⇒ + nazývaná derivace, jestliže existuje<br />

posloupnost přímých derivací ν i−1 ⇒ ν i i = 1, . . . , n, n ≥ 1 taková, že platí:<br />

λ = ν 0 ⇒ ν 1 ⇒ . . . ⇒ ν n−1 ⇒ ν n = µ<br />

Tuto posloupnost nazýváme derivací délky n. Platí-li λ ⇒ + µ, pak říkáme, že<br />

řetězec µ lze generovat z řetězce λ v gramatice G. Relace ⇒ + je zřejmě tranzitivním<br />

uzávěrem relace přímé derivace ⇒ . Symbolem ⇒ n značíme n-tou mocninu<br />

relace ⇒.<br />

Příklad 2.17 V gramatice z příkladu 2.13 platí (v důsledku pravidla 0A → 00A1,<br />

viz příklad 2.15) relace<br />

0 n A1 n ⇒ 0 n+1 A1 n+1 n > 0<br />

a tudíž také 0A1 ⇒ + 0 n A1 n pro libovolné n > 1.<br />

Definice 2.14 Jestliže v gramatice G platí pro řetězce λ a µ relace λ ⇒ + µ nebo<br />

identita λ = µ, pak píšeme λ ⇒ ∗ µ. Relace ⇒ ∗ je tranzitivním a reflexivním<br />

uzávěrem relace přímé derivace ⇒.<br />

Příklad 2.18 Relaci 0A1 ⇒ + 0 n A1 n , n > 1 z příkladu 2.17 lze rozšířit na<br />

relaci<br />

0A1 ⇒ ∗ 0 n A1 n , n > 0<br />

Poznámka 2.1 Dojdeme-li v posloupnosti přímých derivací k řetězci, který obsahuje<br />

pouze terminální symboly, pak již nelze aplikovat žádné přepisovací pravidlo<br />

a proces generování končí. Z této skutečnosti, jež vyplývá z definice pravidla,<br />

je odvozen název množiny Σ jako množiny terminálních symbolů.<br />

Definice 2.15 Nechť G = (N, Σ, P, S) je gramatika. Řetězec α ∈ (N ∪ Σ) ∗<br />

nazýváme větnou formou, jestliže platí S ⇒ ∗ α, tj. řetězec α je generovatelný<br />

z výchozího symbolu S. Větná forma, která obsahuje pouze terminální symboly,<br />

se nazývá věta. Jazyk L(G), generovaný gramatikou G, je definován množinou<br />

všech vět<br />

L(G) = {w | S ⇒ ∗ w ∧ w ∈ Σ ∗ }<br />

Příklad 2.19 Jazyk generovaný gramatikou G z příkladu 2.13 je množina<br />

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

protože platí<br />

S ⇒ 0A1<br />

S ⇒ ∗ 0 n A1 n n > 0 (viz příklad 2.17 a 2.18)<br />

S ⇒ ∗ 0 n 1 n n > 0 (po aplikaci pravidla A → ɛ)

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

Saved successfully!

Ooh no, something went wrong!