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 19<br />
(a)<br />
(b)<br />
S → bSS | a<br />
S → 00S1 | ɛ<br />
(c) S → bA A → eB B → gC<br />
C → iD D → n<br />
(d) S → sur A S → in A S → bi A<br />
S → pro A A → jekce<br />
(e) S → SZ 1 Y 1 Z 3 → Y Z 3 ZZ 1 → Z 2 Z 1<br />
S → X 1 Z 1 Y Z 3 → Y Z Z 2 Z 1 → Z 2 Z<br />
X 1 → aY 1 Y 1 Y → Y 1 Z 2 Z 2 Z → Z 1 Z<br />
X 1 → aX 1 Y 1 Y 1 Y 2 → Y Y 2 Y → b<br />
Y 1 Z 1 → Y 1 Z 3 Y Y 2 → Y Y 1 Z → c<br />
(f) S → Y XY ZY → XXY Y X → Y Z<br />
X → a ZX → XXZ Y → ɛ<br />
V gramatikách (a)–(f) vytvořte derivace terminálních řetězců a stanovte jazyky<br />
L(G), které tyto gramatiky specifikují.<br />
Cvičení 2.4.3 Při popisu syntaxe programovacích jazyků se často používají určité<br />
konvence, které zkracují zápisy syntaktických definic. Hranaté závorky označují<br />
volitelnost řetězců, např.<br />
〈statement〉 → if 〈expr〉 then 〈statement〉 else [〈statement〉]<br />
složené závorky pak iteraci řetězce včetně 0 − násobné iterace jako v příkladu<br />
definice složeného příkazu:<br />
〈statement〉 → begin 〈statement〉 {; 〈statement〉} end .<br />
Stanovte ekvivalentní zápisy pravidly bezkontextové gramatiky pro<br />
(1) A → α [β] γ<br />
(2) A → α {β} γ<br />
Cvičení 2.4.4 Vytvořte gramatiku typu 3, která generuje identifikátory jež mohou<br />
mít maximálně 6 znaků a začínají písmenem I, J, K, L, M nebo N(celočíselné<br />
proměnné v jazyce Fortran).<br />
Cvičení 2.4.5 Vytvořte gramatiku typu 3, která generuje čísla jazyka Pascal.<br />
Cvičení 2.4.6 Vytvořte bezkontextovou gramatiku, která generuje všechny řetězce<br />
nul a jedniček takové, že počet nul je v každém řetězci shodný s počtem jedniček.<br />
Cvičení 2.4.7 Ukažte, že neomezená gramatika G = ({S, B, C}, {a, b, c}, P, S),<br />
kde P obsahuje pravidla S → SaBC, Ca → aC, S → aBC, BC → CB, aB →<br />
Ba, CB → BC, Ba → aB, B → b, aC → Ca, C → c generuje věty ve kterých je<br />
počet výskytů symbolů a, b, c navzájem roven.<br />
Cvičení 2.4.8 Nechť je N množina neterminálních symbolů a Σ množina terminálů.<br />
Ukažte, že pravidla tvaru A → r, kde A ∈ N a r je regulární výraz nad<br />
abecedou (N ∪ Σ) lze převést na pravidla bezkontextové gramatiky.<br />
Podle navrženého postupu převeďte na ekvivalentní pravidla bezkontextové<br />
gramatiky pravidlo A → a (C + D), kde symboly ∗ , + , (, ) jsou metasymboly<br />
regulárního výrazu.