3.6 Uzávěrové vlastnosti bezkontextových ja- zyků
3.6 Uzávěrové vlastnosti bezkontextových ja- zyků
3.6 Uzávěrové vlastnosti bezkontextových ja- zyků
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>3.6</strong>. <strong>Uzávěrové</strong> <strong>vlastnosti</strong> <strong>bezkontextových</strong> <strong>ja</strong><strong>zyků</strong> [110110-2241 ] 37<br />
<strong>3.6</strong>.4 Tvrzení. Bezkontextové <strong>ja</strong>zyky jsou uzavřeny na reverzi.<br />
To znamená, je-li L bezkontextový <strong>ja</strong>zyk, pak také <strong>ja</strong>zyk L R je bezkontextový.<br />
Zdůvodnění: Jazyk L je bezkontextový, proto existuje bezkontextová gramatika<br />
G = (N, Σ, S, P ), která ho generuje. Gramatika GR, která generuje <strong>ja</strong>zyk<br />
L R je (N, Σ, S, PR), kde<br />
A → α ∈ PR iff A → α R ∈ P.<br />
<strong>3.6</strong>.5 Tvrzení. Bezkontextové <strong>ja</strong>zyky nejsou uzavřeny na průnik.<br />
To znamená, jsou-li L1 a L2 dva bezkontextové <strong>ja</strong>zyky, pak <strong>ja</strong>zyk L1 ∩ L2<br />
nemusí být bezkontextový.<br />
Zdůvodnění: Uvažujme <strong>ja</strong>zyk L1 = {0 k 1 n 2 n | k, n ≥ 1} a <strong>ja</strong>zyk L2 =<br />
= {0 k 1 k 2 n | k, n ≥ 1}. Oba tyto <strong>ja</strong>zyky jsou bezkontextové, ale jejich průnik<br />
je <strong>ja</strong>zyk L = {0 n 1 n 2 n | n ≥ 1}, který bezkontextový není.<br />
<strong>3.6</strong>.6 Tvrzení. Bezkontextové <strong>ja</strong>zyky nejsou uzavřeny na doplněk.<br />
To znamená, je-li L bezkontextový <strong>ja</strong>zyk, pak jeho doplněk ¯ L nemusí být<br />
bezkontextový.<br />
Zdůvodnění: Kdyby třída <strong>bezkontextových</strong> <strong>ja</strong><strong>zyků</strong> byla uzavřena na doplňky,<br />
byla by uzavřena i na průniky, protože<br />
L1 ∩ L2 = L1 ∪ L2.<br />
<strong>3.6</strong>.7 Tvrzení. Třída <strong>bezkontextových</strong> <strong>ja</strong><strong>zyků</strong> je uzavřena na průniky s regulárními<br />
<strong>ja</strong>zyky.<br />
To znamená, je-li L bezkontextový <strong>ja</strong>zyk a R regulární <strong>ja</strong>zyk, pak <strong>ja</strong>zyk L∩R<br />
je bezkontextový.<br />
Nástin důkazu: Jazyk L je bezkontextový, tudíž existuje zásobníkový automat<br />
A = (Q1, Σ, Γ, δ1, q1, Z1, F1) takový, že A přijímá L koncovým stavem.<br />
Jazyk R je regulární, tudíž existuje deterministický konečný automat M =<br />
= (Q2, Σ, δ2, q2, F2), který přijímá <strong>ja</strong>zyk R.<br />
Zkonstruujeme zásobníkový automat B tak, že B přijímá <strong>ja</strong>zyk L ∩ R<br />
koncovým stavem. (Všimněte si, že se v podstatě jedná o součinovou konstrukci).<br />
Zásobnikový automat je B = (Q1 × Q2, Σ, Γ, δ, (q1, q2), Z1, F1 × F2), přechodová<br />
funkce δ je definována takto: pro (q, p) ∈ Q1 × Q2, a ∈ Σ ∪ {ɛ} a Y ∈ Γ<br />
platí<br />
((r, s), γ) ∈ δ((q, p), a, Y ) iff<br />
• buď a ∈ Σ, (r, γ) ∈ δ1(q, a, Y ) a s = δ2(p, a),<br />
• nebo a = ɛ, (r, γ) ∈ δ1(q, ɛ, Y ) a s = p.<br />
Uvědomte si, že v prvé složce se B chová <strong>ja</strong>ko zásobníkový automat A, ve druhé<br />
složce <strong>ja</strong>ko deterministický konečný automat M.<br />
Není těžké nahlédnout, že zásobníkový automat B opravdu přijímá <strong>ja</strong>zyk<br />
L ∩ R.<br />
Marie Demlová: Jazyky, automaty a gramatiky Před. 12: 6/12/2010