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 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY86<br />

Řešení:<br />

kde δ je zobrazení<br />

P = ({q}, {+, ∗, (, ), i}, {+, ∗, (, ), i, E, T, F }, δ, q, E, ∅)<br />

δ(q, ɛ, E) = {(q, E + T ), (q, T )}<br />

δ(q, ɛ, T ) = {(q, T ∗ F ), (q, F )}<br />

δ(q, ɛ, F ) = {(q, (E)), (q, i)}<br />

δ(q, a, a) = {(q, ɛ)} pro všechna a ∈ {+, ∗, (, ), i}<br />

Pro vstupní řetězec i + i ∗ i může zásobníkový automat P realizovat tuto posloupnost<br />

přechodů:<br />

(q, i + i ∗ i, E) ⊢ (q, i + i ∗ i, E + T )<br />

⊢ (q, i + i ∗ i, T + T )<br />

⊢ (q, i + i ∗ i, F + T )<br />

⊢ (q, i + i ∗ i, i + T )<br />

⊢ (q, +i ∗ i, +T )<br />

⊢ (q, i ∗ i, T )<br />

⊢ (q, i ∗ i, T ∗ F )<br />

⊢ (q, i ∗ i, F ∗ F )<br />

⊢ (q, i ∗ i, i ∗ F )<br />

⊢ (q, ∗i, ∗F )<br />

⊢ (q, i, F )<br />

⊢ (q, i, i)<br />

⊢ (q, ɛ, ɛ)<br />

Nyní ukážeme, jakým způsobem lze k bezkontextové gramatice G definovat rozšířený<br />

zásobníkový automat reprezentující syntaktický analyzátor zdola–nahoru.<br />

Věta 4.15 Nechť G = (N, Σ, P, S) je bezkontextová gramatika. Rozšířený zásobníkový<br />

automat R = ({q, r}, Σ, N ∪ Σ ∪ {/S}, δ, q, /S, {r}), kde zobrazení δ je<br />

definováno takto:<br />

(1) δ(q, a, ɛ) = {(q, a)} pro všechna a ∈ Σ.<br />

(2) Je-li A → α pravidlo z P , pak δ(q, ɛ, α) obsahuje (q, A).<br />

(3) δ(q, ɛ, S /S) = {(r, ɛ)},<br />

přijímá jazyk L(G), tj. L(R) = L(G).<br />

Důkaz: Ukážeme, že automat R pracuje tak, že vytváří pravou derivaci postupnými<br />

redukcemi l-fráze počínaje terminálním řetězcem (umístěným na vstupní<br />

pásce) a konče výchozím symbolem S. Jinými slovy automat R realizuje syntaktickou<br />

analýzu zdola–nahoru.<br />

Změna konvence: Vrchol zásobníku budeme nyní uvádět vpravo. Induktivní<br />

hypotéza, kterou dokážeme indukcí pro n má tvar:<br />

S ⇒<br />

rm ∗ αAy ⇒<br />

rm n xy implikuje (q, xy, /S) ∗ ⊢(q, y, /SαA), ⇒<br />

rm<br />

značí pravou derivaci.<br />

Pro n = 0 tato hypotéza platí, protože αA = x a tudíž automat R provádí<br />

přechody podle δ(q, a, ɛ) = {(q, a)}, a ∈ Σ, přesouvající řetězec x do zásobníku.

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

Saved successfully!

Ooh no, something went wrong!