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 27<br />
Příklad 3.6 Gramatiku z příkladu 3.5 převedeme na pravou regulární odstraněním<br />
pravidla W → ɛ (vznikne pravidlo V → c) a pravidla X → ɛ (vznikne pravidlo<br />
Z → b). Protože ɛ ∈ L(G) a X je na pravé straně pravidla Z → bX, musíme zavést<br />
nový výchozí symbol X ′ a odstranit jednoduché pravidlo X ′ → X. Výsledná<br />
gramatika bude mít tvar:<br />
P ′′ obsahuje pravidla:<br />
G ′′ = ({X ′ , X, Y, Z, U, V }, {a, b, c}, P ′′ , X ′ ),<br />
X ′ → ɛ | aY | cZ | aU<br />
Y → aY | cZ<br />
Z → bX | b<br />
X → aY | cZ | aU<br />
U → bV<br />
V → c<br />
Věta 3.4 Každý jazyk typu 3 může být generován levou lineární gramatikou.<br />
Důkaz: Úplný důkaz ponecháme na cvičení. Lze postupovat tak, že nejprve<br />
z definice regulární množiny dokážeme tvrzení: je-li L regulární množina, pak<br />
L R je také regulární množina. Dále ukážeme: je-li G = (N, Σ, P, S) pravá lineární<br />
gramatika, pak levá lineární gramatika G ′ , jejíž množina pravidel má tvar P ′ =<br />
{A → α R | A → α je v P }, generuje jazyk (L(G)) R . ✷<br />
Příklad 3.7 Gramatika G ′ = ({X, Y }, {a, b, c}, P ′ , X), kde P ′ obsahuje pravidla<br />
X → cba | Y | ɛ<br />
Y → Y a | Xbc<br />
je levá lineární gramatika, pro kterou L(G ′ ) = (L(G)) R a G je pravá lineární<br />
gramatika z příkladu 3.5.<br />
Věta 3.5<br />
Každý jazyk typu 3 lze generovat levou regulární gramatikou.<br />
Důkaz: Konstrukce levé regulární gramatiky k dané levé lineární gramatice je<br />
zcela analogická konstrukci pravé regulární gramatiky k dané pravé lineární gramatice,<br />
a je proto ponechána na čtenáři (ilustraci poskytuje následující příklad).<br />
✷<br />
Příklad 3.8 Uvažujme gramatiku z příkladu 3.7, jež má pravidla:<br />
X → cba | Y | ɛ<br />
Y → Y a | Xbc<br />
1. krok zavádí pouze pravidla typu A → Ba nebo A → ɛ:<br />
X → Ua | Y a | Zc | ɛ<br />
Y → Y a | Zc<br />
U → V b<br />
V → W c<br />
W → ɛ<br />
Z → Xb