Toto je starší verze dokumentu!
Bc. Jan Kaláb <[email protected]>
Uvažte jazyk L1 = {wci | w ∈ {a, b}* ∧ (#a(w) = i ∨ #b(w) = i)}.
Sestavte gramatiku G1 takovou, že L(G1) = L1.
G1 = ({S, A, B}, {a, b, c}, P, S)
P:
Algoritmickým postupem převeďte gramatiku G1 na zásobníkový automat provádějící syntaktickou analýzu zdola nahoru.
M = ({q, r}, {a, b, c}, {S, A, B, a, b, c, #}, δ, q, #, {r})
Reduce:
Shift:
Accept:
Lze jazyk L1 přijmout deterministickým zásobníkovým automatem (DZA)? Zdůvodněte své tvrzení (formální důkaz se nepožaduje).
Nelze. Kvůli ∨ v zadání nevíme, zda použít podmínku #a(w) nebo #b(w), a nevíme tedy, zda na zasobníku počítat b nebo a.
Mějme jazyky L1 = {aibjcidj | i, j ∈ ℕ} a L2 = {aibicjdj | i, j ∈ ℕ}.1) Pro každý z jazyků L1 a L2 dokažte, nebo vyvraťte, zda je bezkontextový.
Důkaz sporem.
Předpokládejme, že jazyk L1 je bezkontextový. Pak podle pumping lemmatu pro bezkontextové jazyky existuje konstanta k taková, že je-li z ∈ L1 a |z| ≥ k, pak lze z napsat ve tvaru: z = uvwxy, vx ≠ ε, |vwx| ≤ k a pro všechna i ≥ 0 je uviwxiy ∈ L1.
Zvolíme si z = ukvkwkxkyk, |z| > k, pak může dojít k následujícímu rozdělení:
Ukázali jsme, že nelze najít takové rozdělení, které by splňovalo podmínky pumping lemmatu pro bezkontextový jazyk, což je spor, a jazyk tedy není bezkontextový.
G = ({A, S, T}, {a, b, c, d}, P, A)
K jazyku L2 lze sestavit bezkontextovou gramatiku, tudíž je bezkontextový.
Mějme jazyky L3 ∈ ℒ3 a L2 ∈ ℒ2. Dokažte, že problém L2 ⊆? L3 je (eventuelně není) rozhodnutelný? K důkazu použijte uzávěrové vlastnosti bezkontextový a regulárních jazyků.
Uvažujte jazyk L4, který je generován gramatikou
G4 = ({E, T, F}, {(, ), true, or, and, not}, P, E), kde
P:
Sestrojte deterministický zásobníkový automat přijímající jazyk L4 a demonstrujte jeho funkci na přijetí řetězce (true or not(true)) and true.
Mějme gramatiku G₅ = ({S, A, B, C}, {a, b, c}, P, S), kde
P:
Převeďte gramatiku G5 algoritmicky do Chomského normální formy.
Bez ε přechodů:
Bez jednoduchých pravidel:
Vlastní gramatika (odstranění zbytečných a nedostupných symbolů):
Chomského normální forma:
G = ({S, <ACa>, <Aa>, <Ca>, A, C}, {a, b, c}, P, S)
P:
Převeďte gramatiku G5 algoritmicky do Greibachové normální formy.
Vlastní gramatika:
Odstranění levé rekurze (S < A < C):
Greibachové normální forma:
G = ({S, A, C, C′, a′, c′}, {a, b, c}, P, S)
P: