Kontextová gramatika

Kontextová gramatika je formální gramatika G = (N, Σ, P, S), ve které jsou pravidla v P tvaru

αAβ → αγβ

kde AN (to znamená, že A je jeden neterminál) a α, β ∈ (N ∪ Σ)* (to znamená, že α a β jsou řetězce neterminálů a terminálů) a γ ∈ (N ∪ Σ)+ (to znamená, že γ je neprázdný řetězec terminálů a neterminálů). Pokud se S nevyskytuje na pravé straně žádného pravidla, může gramatika obsahovat i pravidlo

S → ε

kde ε značí prázdný řetězec.

Název kontextová je odvozen od faktu, že α a β tvoří kontext, který určuje, zda A lze přepsat na γ. Speciálním případem kontextové gramatiky je gramatika, u které kontext nehraje roli (α i β jsou ve všech pravidlech prázdné). Taková gramatika se označuje jako bezkontextová, bezkontextové gramatiky jsou tedy podmnožinou kontextových gramatik. Formální jazyk popsaný kontextovou gramatikou se nazývá kontextový jazyk.

S myšlenkou kontextových gramatik přišel Noam Chomsky ve snaze popsat syntax přirozeného jazyka, ve kterém lze určité slovo použít právě v závislosti na okolním kontextu.

Příklad

Následující kontextová gramatika generuje jazyk { a n b n c n : n 1 } {\displaystyle \{a^{n}b^{n}c^{n}:n\geq 1\}} , o němž lze pomocí pumping lemmatu pro bezkontextové jazyky dokázat, že není bezkontextový:

S → abC
S → aSBC
CB → XB
XB → XY
XY → XC
XC → BC
bB → bb
bC → bc
cC → cc

Gramatiku lze snáze zapsat jako monotonní (vyjadřovací síla monotonních gramatik je stejná jako bezkontextových):

S → abc
S → aSBc
cB → Bc
bB → bb

Vlastnosti

Problém, zda daný řetězec s náleží do jazyka generovaného danou kontextovou gramatikou G, je PSPACE úplný.

Odkazy

Související články

Teorie automatů: formální jazyky a formální gramatiky

Chomského hierarchie
typ 0
typ 1
typ 2
typ 3

gramatika
bez zvláštního názvu
kontextová, monotonní
indexovaná
stromová apod.
bez zvláštního názvu

jazyk
indexovaný
částečně kontextový
viditelný zásobník, vkládané slovo
bezhvězdičkový, neiterativní

nejjednodušší možný automat
rozhodovač, zaručeně skončí pro libovolný vstup
vnořený zásobník
vložený zásobník
zásobníkový automat, nedeterministický
viditelný zásobník, pro vkládané slovo
neperiodický konečný automat
Každá úroveň jazyků je podmnožinou své nadřazené úrovně.Každý automat a každá gramatika má svůj ekvivalent v nadřazené úrovni.