10.02.2019 Views

opora

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY57<br />

větná forma. Podřetězec β se nazývá frází větné formy λ vzhledem k nonterminálu<br />

A z N, jestliže platí:<br />

S ⇒ ∗ αAγ<br />

A ⇒ + β<br />

Podřetězec β je jednoduchou frází větné formy λ, jestliže platí:<br />

S ⇒ ∗ αAγ<br />

A ⇒ β<br />

Příklad 4.4 Máme nalézt všechny fráze a všechny jednoduché větné formy<br />

〈výraz〉 + 〈term〉 ∗ 〈faktor〉 v gramatice, která popisuje aritmetický výraz. Jak již<br />

bylo uvedeno, derivace této větné formy má tvar:<br />

Protože platí<br />

〈výraz〉 ⇒ 〈výraz〉 + 〈term〉 ⇒ 〈výraz〉 + 〈term〉 ∗ 〈faktor〉<br />

〈výraz〉 ⇒ ∗ 〈výraz〉 + 〈term〉 a<br />

〈term〉 ⇒ 〈term〉 ∗ 〈faktor〉<br />

je řetězec 〈term〉∗〈faktor〉 jednoduchou frází větné formy 〈výraz〉+〈term〉∗〈faktor〉<br />

vzhledem k nonterminálu 〈term〉.<br />

Dále je:<br />

〈výraz〉 ⇒ ∗ 〈výraz〉<br />

〈výraz〉 ⇒ + 〈výraz〉 + 〈term〉 ∗ 〈faktor〉<br />

a z toho vyplývá, že větná forma 〈výraz〉 + 〈term〉 ∗ 〈faktor〉 je frází sama k sobě<br />

vzhledem k výchozímu symbolu. Tato skutečnost je důsledkem triviálního případu<br />

v definici fráze, kdy jsou řetězce α a γ prázdné. Jiné fráze větné formy 〈výraz〉 +<br />

〈term〉 ∗ 〈faktor〉 neexistují.<br />

Pojem fráze je stěžejním pojmem pro syntaktickou analýzu. Celá třída syntaktických<br />

analyzátorů je postavena na metodách hledání nejlevější jednoduché<br />

fráze větné formy (věty). Protože dále budeme pojmu nejlevější jednoduchá fráze<br />

často používat, zavedeme pro něj speciální označení, l-fráze.<br />

Ve větné formě 〈výraz〉 + 〈term〉 ∗ 〈faktor〉 je jediná jednoduchá fráze: 〈term〉 ∗<br />

〈faktor〉. Tato fráze je tedy zároveň l-frází.<br />

S pojmem fráze větné formy je velmi úzce svázán pojem podstrom příslušného<br />

derivačního stromu. Podstromem derivačního stromu budeme rozumět tu část<br />

tohoto stromu, která je vymezena jistým uzlem, tzv. kořenem podstromu, spolu<br />

se všemi uzly, které jsou z kořene podstromu dostupné prostřednictvím příslušných<br />

hran, včetně těchto hran.<br />

Příklad 4.5 Podstromy derivačního stromu věty aabbcd z obr. 4.2 jsou stromy<br />

z obr. 4.4.<br />

Předpokládejme nyní, že nonterminál A je kořenem podstromu derivačního<br />

stromu. Je-li β řetězec koncových uzlů tohoto podstromu, pak jistě platí A ⇒ + β.<br />

Nechť α je řetězec koncových uzlů vlevo, γ řetězec koncových uzlů derivačního<br />

stromu vpravo od β. Pak platí S ⇒ ∗ αβγ; S je kořenem derivačního stromu.

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

Saved successfully!

Ooh no, something went wrong!