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É AUTOMATY56<br />
Po znázornění druhé přímé derivace obdržíme výsledný derivační strom.<br />
〈výraz〉<br />
✉<br />
✥✥✥✥✥✥❵❵❵❵❵❵<br />
✉ ✉ ✉<br />
〈výraz〉 + 〈term〉<br />
✏ ✏✏✏ <br />
✉ ✉ <br />
✉<br />
〈term〉<br />
∗<br />
〈faktor〉<br />
Je-li tedy dána derivace větné formy, pak této derivaci přísluší právě jeden<br />
derivační strom. Důkaz vyplývá z konstrukce derivačního stromu. Podívejme se<br />
nyní, zda uvedené tvrzení platí také obráceně: K derivačnímu stromu větné formy<br />
přísluší pouze jedna derivace. Uvažujme gramatiku G z příkladu 4.1.<br />
S → A B<br />
A → aAb | ab<br />
B → cBd | cd<br />
Na obr. 4.2 jsme znázornili derivační strom k derivaci<br />
S ⇒ AB ⇒ aAbB ⇒ aabbB ⇒ aabbcd<br />
Ukážeme nyní, že existují i jiné derivace věty aabbcd.<br />
nebo<br />
S ⇒ AB ⇒ Acd ⇒ aAbcd ⇒ aabbcd<br />
S ⇒ AB ⇒ aAbB ⇒ aAbcd ⇒ aabbcd<br />
Uvedené derivace věty aabbcd se liší v pořadí, v němž byly vybírány nonterminály<br />
pro přímé derivace. Toto pořadí však ve výsledném derivačním stromě není<br />
postiženo, a proto budou derivační stromy příslušející k 2. a 3. z uvedených derivací<br />
věty aabbcd totožné s derivačním stromem na obr. 4.2. Neplatí tedy tvrzení, že<br />
k derivačnímu stromu přísluší pouze jedna derivace.<br />
Poznamenejme, že jiné derivace věty aabbcd v gramatice z příkladu 4.2 neexistují.<br />
V první a druhé z uvedených derivací byla přepisovací pravidla aplikována<br />
určitým kanonickým způsobem, který je charakteristický pro nejužívanější syntaktické<br />
analyzátory překladačů programovacích jazyků. Zavedeme si pro tyto<br />
speciální derivace vlastní označení.<br />
Definice 4.3 Nechť S = α 1 ⇒ α 2 ⇒ . . . ⇒ α n = α je derivace větné formy α.<br />
Jestliže byl v každém řetězci α i , i = 1, . . . , n − 1 přepsán nejlevější (nejpravější)<br />
nonterminál, pak tuto derivaci nazýváme levou (pravou) derivací větné formy α.<br />
První derivace věty aabbcd je tedy derivací levou, druhá je derivací pravou.<br />
Je-li S = α 0 ⇒ α 1 ⇒ . . . ⇒ α n = w levá derivace věty w, pak je každé<br />
α i , i = 0, 1, . . . , n − 1 tvaru x i A i β i , kde x i ∈ Σ ∗ , A i ∈ N a β i ∈ (N ∪ Σ ∗ ).<br />
K získání větné formy α i+1 bude přepsán nonterminál A i . Obrácená situace platí<br />
pro pravou derivaci.<br />
4.2 Fráze větné formy<br />
Definice 4.4 Nechť G = (N, Σ, P, S) je gramatika a nechť řetězec λ = αβγ je