Definition: Sei G = (V, T, P, S) eine Grammatik, wobei V die Menge der Variablen ist, T die Menge der Terminalzeichen, P die Menge der Produktionen und S das Startsymbol, ferner A = V ∪ T das Gesamtalphabet.
Die Grammatik G heißt kontextsensitiv, wenn jede Produktion von der Form
uXvuyv
mit X ∈ V, y ∈ 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 kontextsensitiv, wenn es eine kontextsensitive Grammatik gibt, die sie erzeugt.
Die Bezeichnung kontextsensitiv (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.
Definition: Eine kontextsensitive Grammatik ist in Kuroda-Normalform, wenn jede Produktion von der Form
X | a | , | |
X | Y | , | |
X | YZ | oder | |
WX | YZ |
mit a ∈ T und W, X, Y, Z ∈ V ist.
Als Ausnahme ist die Produktion Sε erlaubt, um das leere Wort ε zu erzeugen; dann darf S aber nicht auf der rechten Seite einer Produktion vorkommen.
Satz: Zu jeder kontextsensitiven Sprache gibt es eine kontextsensitive Grammatik in Kuroda-Normalform.
Eine kontextfreie Grammatik in Chomsky-Normalform ist offensichtlich in Kuroda-Normalform.
Definition: Eine Grammatik heißt monoton oder expansiv, wenn für alle Produktionen uv 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 Sε erlaubt; dann darf S aber nicht auf der rechten Seite einer Produktion vorkommen.
Satz: Zu jeder kontextsensitiven Sprache gibt es eine monotone Grammatik.
Eine kontextsensitive Grammatik in Kuroda-Normalform ist offensichtlich monoton. Kontextfreie Grammatiken in Chomsky- und in Greibach-Normalform sowie rechtslineare Grammatiken sind ebenfalls monoton.
Die Sprache L = { anbncn | n ∈ ℕ } ist nicht kontextfrei. Dies lässt sich mit dem Pumping-Lemma für kontextfreie Sprachen zeigen. L ist aber kontextsensitiv.
Eine monotone Grammatik für L ist die folgende:
S | aSBc | abc | |
cB | Bc | |
bB | bb |
Eine Grammatik in Kuroda-Normalform für L ist folgende:
S | AX | AY | |
X | SY | |
Y | ZC | |
AZ | AB | |
BZ | BB | |
CZ | ZC | |
A | a | |
B | b | |
C | c |
Weiter mit: [up]