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.