opora

frantisek.plesicek
from frantisek.plesicek More from this publisher
10.02.2019 Views

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY77 Cvičení 4.8.5 Nechť G = (N, Σ, P, S) je gramatika a α 1 , α 2 řetězce α 1 , α 2 ∈ (N ∪ Σ) ∗ . Navrhněte algoritmus, který zjišťuje, zda platí α 1 ⇒ G ∗ α 2 . Cvičení 4.8.6 Je dána gramatika G = ({S, A, B}, {a, b}, P, S), která má pravidla S → bA | aB A → a | aS | bAA B → b | bS | aBB Ukažte, že tato gramatika je víceznačná (uvažujte např. větu aabbab). Pokuste se nalézt ekvivalentní jednoznačnou gramatiku. Cvičení 4.8.7 Gramatiku s pravidly S → A | B A → aB | bS | b B → AB | Ba C → AS | b transformujte na ekvivalentní gramatiku bez zbytečných symbolů. Cvičení 4.8.8 Nalezněte gramatiku bez ɛ-pravidel, jež je ekvivalencí s gramatikou Cvičení 4.8.9 Ke gramatice S → ABC A → BB | ɛ B → CC | a C → AA | b S → A | B A → C | D B → D | E C → S | a | ɛ D → S | b E → S | c | ɛ nalezněte ekvivalentní vlastní gramatiku. Cvičení 4.8.10 Formulujte algoritmus, který testuje, zda gramatika G je a nebo není gramatikou bez cyklu. Cvičení 4.8.11 V gramatice odstraňte levou rekurzi. S → AB A → BS | b B → SA | a

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY78 Cvičení 4.8.12 Do Chomského normální formy převeďte gramatiku kde P obsahuje pravidla G = ({S, T, L}, {a, b, +, −, ∗, /, [, ]}, P, S) S → T + S | T − S | T T → L ∗ T | L/T | L L → [S] | a | b Cvičení 4.8.13 Gramatiku G = ({S, A, B}, {a, b}, P, S) s pravidly S → Ba | Ab A → Sa | AAb | a B → Sb | BBa | b převeďte do Greibachové normální formy. 4.9 Základní definice zásobníkového automatu Zásobníkový automat je jednocestný nedeterministický automat, jenž je opatřen zásobníkem reprezentujícím nekonečnou paměť. Schéma zásobníkového automatu je uvedeno na obr. 4.14. a 1 . . . a 2 Z 1 a n Vstupní páska Čtecí hlava ✻ Řídicí jednotka Z 2 . Zásobník Z m Obrázek 4.14: Schéma zásobníkového automatu Vstupní páska je rozdělena na jednotkové záznamy, každý záznam obsahuje právě jeden vstupní symbol. Obsah jednotkového záznamu může být čten čtecí hlavou, nemůže však být přepsán (read only input tape). V určitém časovém okamžiku může čtecí hlava zůstat na daném záznamu, nebo se posune o jeden záznam doprava (jednocestný automat). Konečná řídící jednotka realizuje operace posuvu čtecí hlavy a ukládání informace do zásobníku prostřednictvím funkce přechodů definované nad vstupní abecedou, množinou stavů řídící jednotky a vrcholem zásobníku. Definice 4.16 Zásobníkový automat P je sedmice P = (Q, Σ, Γ, δ, q 0 , Z 0 , F ), kde

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY77<br />

Cvičení 4.8.5 Nechť G = (N, Σ, P, S) je gramatika a α 1 , α 2 řetězce α 1 , α 2 ∈<br />

(N ∪ Σ) ∗ . Navrhněte algoritmus, který zjišťuje, zda platí α 1 ⇒<br />

G ∗ α 2 .<br />

Cvičení 4.8.6 Je dána gramatika G = ({S, A, B}, {a, b}, P, S), která má pravidla<br />

S → bA | aB<br />

A → a | aS | bAA<br />

B → b | bS | aBB<br />

Ukažte, že tato gramatika je víceznačná (uvažujte např. větu aabbab). Pokuste se<br />

nalézt ekvivalentní jednoznačnou gramatiku.<br />

Cvičení 4.8.7 Gramatiku s pravidly<br />

S → A | B<br />

A → aB | bS | b<br />

B → AB | Ba<br />

C → AS | b<br />

transformujte na ekvivalentní gramatiku bez zbytečných symbolů.<br />

Cvičení 4.8.8 Nalezněte gramatiku bez ɛ-pravidel, jež je ekvivalencí s gramatikou<br />

Cvičení 4.8.9 Ke gramatice<br />

S → ABC<br />

A → BB | ɛ<br />

B → CC | a<br />

C → AA | b<br />

S → A | B<br />

A → C | D<br />

B → D | E<br />

C → S | a | ɛ<br />

D → S | b<br />

E → S | c | ɛ<br />

nalezněte ekvivalentní vlastní gramatiku.<br />

Cvičení 4.8.10 Formulujte algoritmus, který testuje, zda gramatika G je a nebo<br />

není gramatikou bez cyklu.<br />

Cvičení 4.8.11 V gramatice<br />

odstraňte levou rekurzi.<br />

S → AB<br />

A → BS | b<br />

B → SA | a

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

Saved successfully!

Ooh no, something went wrong!