You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
KAPITOLA 3. REGULÁRNÍ JAZYKY 52<br />
Cvičení 3.6.3 K pravé lineární gramatice, která obsahuje pravidla<br />
A → B | C<br />
B → 0B | 1B | 011<br />
C → 0D | 1C | ɛ<br />
D → 0C | 1D<br />
vytvořte pravou lineární gramatiku, jež generuje stejný jazyk. Nonterminál A je<br />
výchozím symbolem gramatiky.<br />
Cvičení 3.6.4 Vytvořte pravou regulární gramatiku, která generuje jazyk přijímaný<br />
automatem M ze cvičení 3.6.1.<br />
Cvičení 3.6.5 Vytvořte konečný automat, který přijímá jazyk generovaný gramatikou<br />
ze cvičení 3.6.3.<br />
Cvičení 3.6.6 Na základě algoritmu, jenž je „inverzní“ k algoritmu 3.3, sestrojte<br />
levou regulární gramatiku pro jazyk reálných čísel pro programovací jazyky.<br />
Automat přijímající tento jazyk je uveden v příkladě 3.1.<br />
Cvičení 3.6.7 Na základě gramatiky ze cvičení 2.4.5 vytvořte konečný deterministický<br />
automat, který přijímá jazyk čísel programovacího jazyka Pascal.<br />
Cvičení 3.6.8 Gramatika G = ({S, A n , A n−1 , . . . , A 0 }, {a, b}, P, S) s pravidly<br />
S → A n<br />
A n → A n−1 A n−1<br />
A n−1 → A n−2 A n−2<br />
.<br />
A 2 → A 1 A 1<br />
A 1 → A 0 A 0<br />
A 0 → a | b<br />
popisuje pro n ≥ 0 regulární jazyk nad abecedou {a, b}.<br />
(a) Specifikujte jazyk L(G) gramatikou typu 3.<br />
(b) Převeďte tuto gramatiku na pravou regulární gramatiku.<br />
(c) Převeďte tuto gramatiku na ekvivalentní NKA a DKA.<br />
(d) Popište jazyk specifikovaný gramatikou G ve tvaru regulárního výrazu.<br />
(e) K získanému regulárnímu výrazu vytvořte ekvivalentní rozšířený konečný<br />
automat a deterministický konečný automat.<br />
(f) Srovnejte DKA, které jste získali v (c) a (e). Ukažte, že automat přijímající<br />
jazyk L(G) nepotřebuje více než 2 n + 1 stavů.