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 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.

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

Saved successfully!

Ooh no, something went wrong!