• Nie Znaleziono Wyników

Gramatyki rekursywne

N/A
N/A
Protected

Academic year: 2021

Share "Gramatyki rekursywne"

Copied!
5
0
0

Pełen tekst

(1)

Gramatyki bezkontekstowe, rozbiór gramatyczny

Teoria automatów i języków formalnych

Dr inŜ. Janusz Majewski Katedra Informatyki

Gramatyki rekursywne

Niech będzie dana gramatyka bezkontekstowa G = <V, Σ, P, S>.

Gramatyki rekursywne

Gramatykę nazywamy rekursywną, jeŜeli w gramatyce tej moŜliwe jest wyprowadzenie A⇒+αAβ dla pewnego nieterminala A∈V, przy czym α, β∈(V∪Σ)*.

Gramatykę nazywamy lewostronnie rekursywną, jeŜeli w gramatyce tej moŜliwe jest wyprowadzenie A⇒+Aβ dla pewnego

nieterminala A∈V, przy czym β∈(V∪Σ)*.

Gramatykę nazywamy prawostronnie rekursywną, jeŜeli w gramatyce tej moŜliwe jest wyprowadzenie A⇒+αA dla pewnego

nieterminala A∈V, przy czym α∈(V∪Σ)*.

JeŜeli język L(G) jest zbiorem nieskończonym, to jego gramatyka G musi być gramatyką rekursywną.

(2)

Frazy

Frazy

Łańcuch δ nazywamy frazą formy zdaniowej ω=αδβ dla symbolu nieterminalnego A∈V, wtedy i tylko wtedy, gdy:

S ⇒* αAβ A ⇒+ δ

przy czym α, δ, β ∈ (V∪Σ)*.

Łańcuch δ nazywamy frazą prostą formy zdaniowej ω=αδβ dla symbolu nieterminalnego A∈V, wtedy i tylko wtedy, gdy:

S ⇒* αAβ A ⇒ δ

przy czym α, δ, β ∈ (V∪Σ)*.

Osnową formy zdaniowej jest najbardziej na lewo połoŜona fraza prosta (to ostatnie, określenie ma sens w przypadku gramatyk jednoznacznych – patrz dalej).

Wyprowadzenia lewostronne i prawostronne (1)

Wyprowadzenia lewostronne i prawostronne

Forma zdaniowa ψ jest wyprowadzalna bezpośrednio lewostronnie z formy zdaniowej ω w gramatyce G, co zapisujemy

ω ⇒GLψ jeŜeli:

ω ⇒Gψ ω = γαδ ψ = γβδ (α → β) ∈ P γ ∈ Σ*

α, β, δ, ψ, ω ∈ (V∪Σ)*

PowyŜsza definicja nie jest ukierunkowana jedynie na gramatyki bezkontekstowe, ale w wyprowadzeniu lewostronnym w gramatyce bezkontekstowej zawsze skrajny lewy nieterminal jest zastępowany prawą stroną pewnej produkcji.

(3)

Wyprowadzenia lewostronne i prawostronne (2)

Forma zdaniowa ψ jest wyprowadzalna bezpośrednio prawostronnie z formy zdaniowej ω w gramatyce G, co zapisujemy

ωGPψ jeŜeli:

ωGψ ω = γαδ ψ = γβδ (α → β) ∈ P δ ∈ Σ*

α, β, γ, ψ, ω ∈ (V∪Σ)*

Podobnie jak poprzednio, powyŜsza definicja nie jest ukierunkowana jedynie na gramatyki bezkontekstowe, ale w wyprowadzeniu prawostronnym w gramatyce bezkontekstowej zawsze skrajny prawy nieterminal jest zastępowany prawą stroną pewnej produkcji.

Podobnie jak poprzednio, definiuje się relacje ⇒GL+, ⇒GL*, ⇒GP+, ⇒GP*, które są odpowiednio przechodnim oraz przechodnim i zwrotnym domknięciem relacji bezpośredniej wyprowadzalności lewostronnej ⇒GL i prawostronnej ⇒GP. JeŜeli wiadomo, o jaką gramatykę chodzi, pomijamy dolny indeks „G” w oznaczeniu tych relacji pisząc po prostu: ⇒L+, ⇒L*, ⇒P+, ⇒P*, ⇒L oraz ⇒P.

Przykład (1)

Przykład:

Niech będzie dana gramatyka bezkontekstowa G = <V, Σ, P, S>, gdzie:

V = {E, T, F}

Σ = {a, +, *, (, )}

P = { E → E+T | T T → T*F | F F → (E) | a }

S = E

Formą zdaniową w tej gramatyce jest np. łańcuch:

a+F*T gdyŜ:

E ⇒ E+T ⇒ T+T ⇒ F+T ⇒ a+T ⇒ a+T*F

(4)

Przykład (2)

E ⇒ E+T ⇒ T+T ⇒ F+T ⇒ a+T ⇒ a+T*F

PowyŜsze wyprowadzenie polegało na kaŜdorazowym zastępowaniu skrajnego lewego nieterminala prawą stroną jakiejś odpowiedniej produkcji, więc kaŜdy krok tego wyprowadzenia jest

wyprowadzeniem lewostronnym. MoŜemy więc powiedzieć, Ŝe rozpatrywany łańcuch jest formą zdaniową wyprowadzalną lewostronnie.

E ⇒L E+T ⇒L T+T ⇒LF+T ⇒La+T ⇒L a+T*F

Spróbujmy wyprowadzić badany łańcuch prawostronnie:

E ⇒P E+T ⇒PE+T*F

Dalsze wyprowadzenie prawostronne wymagałoby zastąpienia nieterminala F prawą stroną jakiejś produkcji, ale z uwagi na to, Ŝe wyprowadzany łańcuch musi się kończyć właśnie wyprowadzoną sekwencją +T*F, nie jest to moŜliwe, więc a+F*T nie jest formą zdaniową wyprowadzalną prawostronnie.

Przykład (3)

Znajdziemy teraz wszystkie frazy, frazy proste i osnowę analizowanej formy zdaniowej. RozwaŜymy

wyprowadzenia:

E ⇒* F+T*F ⇒ a+T*F E ⇒* a+T ⇒ a+T*F

Porównując te wyprowadzenia z odpowiednią definicją widzimy, Ŝe a jest frazą prostą naszej formy zdaniowej dla nieterminala F oraz T*F jest frazą prostą naszej formy zdaniowej dla nieterminala T. Poza tym a jest osnową. Innych fraz prostych rozwaŜana forma zdaniowa nie posiada.

T

F

a

E

E

*

T F

T +

(5)

Przykład (4)

RozwaŜymy teraz wyprowadzenia:

E ⇒* T+T*F ⇒+a+T*F E ⇒* E+T*F ⇒+a+T*F

Widać, Ŝe a jest frazą (ale juŜ nie frazą prostą) dla nieterminali T oraz E. Badając dalej mamy:

E ⇒* E ⇒+a+T*F

Cały łańcuch a+T*F jest frazą naszej formy zdaniowej a+T*F dla nieterminala E stojącego w korzeniu drzewa rozbioru.

T

F

a

E

E

*

T F

T +

Cytaty

Powiązane dokumenty

Rozważmy punkt P na osi ramki, leżący w odległości z od jej płaszczyzny i zastosujmy prawo Biota–Savarta do elementu ds ramki, położonego po jej lewej stronie.. Wektorowy

Wychodzimy od równania (37.30), które podaje położenie linii w obrazie wy- twarzanym przez siatkę dyfrakcyjną i które zostało wyprowadzone z równania (37.22).. Tutaj 1λ

Pow ołując się n a wagę owych wydarzeń, stwierdza: „(...) kryzysy te oraz sposoby ich rozwiązywania stanow ią zasadnicze m om enty zwrotne w historii

Praca własna: Wykonaj trzy przykłady (jeden wiersz)

tym zaś jest pewien teoriotwórczy przełom, który faktycznie dokonany został przez tych właśnie myślicieli, ale który swym rzeczywistym znaczeniem i zasię- giem wykracza daleko

Sztywność giętna jest zwiększana przez siłę rozciągającą, a zmniejszana przez

Specjalne badania związane z warunkami życia pracowników pewnej firmy wykazały, że czas dojazdu do pracy jej pracowników ma rozkład jednostajny w przedziale od 3000 do 4800

Przewiduje się, że w la- tach 2009/2010 cena kukurydzy wzrośnie, jednakże w latach następnych ce- na będzie ustabilizowana wskutek zmniejszenia ekspansji produkcji etanolu..