Theoretische Informatik

Kontextsensitive Grammatik

Definition:  Sei G = (V, T, P, S) eine Grammatik, wobei V die Menge der Variablen ist, T die Menge der Terminal­zeichen, P die Menge der Produktionen und S das Startsymbol, ferner A = V ∪ T das Gesamt­alphabet.

Die Grammatik G heißt kontext­sensitiv, wenn jede Produktion von der Form

uXvgeht über nachuyv

mit X ∈ Vy ∈ A+ und u, v ∈ A* ist.

Als Ausnahme ist die Produktion S → ε erlaubt, wobei dann S nicht auf der rechten Seite einer Produktion vorkommen darf.

Eine Sprache heißt kontext­sensitiv, wenn es eine kontext­sensitive Grammatik gibt, die sie erzeugt.

Die Bezeichnung kontext­sensitiv (im Gegensatz zu kontextfrei) rührt daher, dass die Ersetzung X → y nur im Kontext u...v zulässig ist; d.h. wenn X irgendwo in einem Wort w vorkommt, darf es nur dann durch y ersetzt werden, wenn direkt links von X das Teilwort u und direkt rechts von X das Teilwort v steht.

 

Kuroda-Normalform

Definition:  Eine kontext­sensitive Grammatik ist in Kuroda-Normalform, wenn jede Produktion von der Form

Xgeht über nacha    ,
Xgeht über nachY    ,
Xgeht über nachYZ    oder
WXgeht über nachYZ

mit a ∈ T und W, X, Y, Z ∈ V ist.

Als Ausnahme ist die Produktion Sgeht über nachε erlaubt, um das leere Wort ε zu erzeugen; dann darf S aber nicht auf der rechten Seite einer Produktion vorkommen.

 

Satz:  Zu jeder kontext­sensitiven Sprache gibt es eine kontext­sensitive Grammatik in Kuroda-Normalform.

Eine kontextfreie Grammatik in Chomsky-Normalform ist offensichtlich in Kuroda-Normalform.

Monotone Grammatik

Definition:  Eine Grammatik heißt monoton oder expansiv, wenn für alle Produktionen ugeht über nachv gilt

|u| ≤ |v|

Bei einer Ersetzung von u durch v in einem Wort w wird also w niemals kürzer.

Als Ausnahme ist die Produktion Sgeht über nachε erlaubt; dann darf S aber nicht auf der rechten Seite einer Produktion vorkommen.

Satz:  Zu jeder kontext­sensitiven Sprache gibt es eine monotone Grammatik.

Eine kontext­sensitive Grammatik in Kuroda-Normalform ist offensichtlich monoton. Kontextfreie Grammatiken in Chomsky- und in Greibach-Normalform sowie rechts­lineare Grammatiken sind ebenfalls monoton.

Beispiele

Die Sprache L = { anbncn  |  n ∈ ℕ } ist nicht kontextfrei. Dies lässt sich mit dem Pumping-Lemma für kontextfreie Sprachen zeigen. L ist aber kontext­sensitiv.

Eine monotone Grammatik für L ist die folgende:

Sgeht über nachaSBc  |  abc
cBgeht über nachBc
bBgeht über nachbb

Eine Grammatik in Kuroda-Normalform für L ist folgende:

Sgeht über nachAX  |  AY
Xgeht über nachSY
Ygeht über nachZC
AZgeht über nachAB
BZgeht über nachBB
CZgeht über nachZC
Ageht über nacha
Bgeht über nachb
Cgeht über nachc

 

Weiter mit:  [up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Created: 22.01.2010   Updated: 16.02.2023
Diese Webseiten sind während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden