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 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY54<br />

4.1 Derivační strom<br />

Důležitým prostředkem pro grafické vyjádření struktury věty (její derivace) je<br />

kořenový, uzlově ohodnocený strom, který se nazývá derivačním nebo syntaktickým<br />

stromem.<br />

Připomeňme, že strom je orientovaný acyklický graf s těmito vlastnostmi:<br />

(1) Existuje jediný uzel, tzv. kořen stromu, do něhož nevstupuje žádná hrana.<br />

(2) Do všech ostatních uzlů grafu vstupuje právě jedna hrana.<br />

Uzly, z nichž žádná hrana nevystupuje, se nazývají koncové uzly stromu (listy).<br />

Při kreslení stromu je obyčejně dodržována tato konvence: kořen leží nejvýše,<br />

všechny hrany jsou orientovány směrem dolů. Budeme-li tuto konvenci dodržovat,<br />

pak můžeme vynechat šipky, které označují orientaci hran. Kořenem stromu na<br />

Obrázek 4.1: Příklad stromu<br />

4.1 je uzel 1, uzly 2, 4, 5, 6 jsou koncovými uzly stromu.<br />

Definice 4.2 Nechť δ je věta nebo větná forma generovaná v gramatice G =<br />

(N, Σ, P, S) a nechť S = ν 0 ⇒ ν 1 ⇒ ν 2 . . . ⇒ ν k = δ její derivace v G. Derivační<br />

strom příslušející této derivaci je strom s těmito vlastnostmi:<br />

(1) Uzly derivačního stromu jsou (ohodnoceny) symboly z množiny N ∪Σ; kořen<br />

stromu je označen výchozím symbolem S.<br />

(2) Přímé derivaci ν i−1 ⇒ ν i , i = 0, 1, . . . , k, kde<br />

ν i−1 = µAλ, µ, λ ∈ (N ∪ Σ) ∗ , A ∈ N<br />

ν i = µαλ a<br />

A → α, α = X 1 . . . X n je pravidlo z P,<br />

odpovídá právě n hran (A, X j ), j = 1, . . . , n vycházejících z uzlu A jež jsou<br />

uspořádány zleva doprava v pořadí (A, X 1 ), (A, X 2 ), . . . (A, X n ).<br />

(3) Označení koncových uzlů derivačního stromu vytváří zleva doprava větnou<br />

formu nebo větu δ (plyne z (1) a (2)).<br />

Příklad 4.2 V Gramatice z příkladu 4.1 můžeme generovat řetězec aabbcd např.<br />

derivací:<br />

S ⇒ AB ⇒ aAbB ⇒ aabbB ⇒ aabbcd<br />

Derivační strom odpovídající této derivaci je na obrázku 4.2. Po stranách jsou<br />

uvedena použitá pravidla.<br />

Poznámka 4.1 Uzel derivačního stromu, který je označen terminálním symbolem,<br />

musí být zřejmě koncovým uzlem derivačního stromu.<br />

Při konstrukci derivačního stromu k dané derivaci opakovaně aplikujeme bod (2)<br />

z definice 4.2. Tuto aplikaci ilustruje obr. 4.3.

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

Saved successfully!

Ooh no, something went wrong!