Kontextsensitive Grammatik

Aus testwiki
Zur Navigation springen Zur Suche springen

Die kontextsensitiven Grammatiken (kurz CSG, von engl. Vorlage:Lang) sind eine Klasse formaler Grammatiken und identisch mit den Typ-1-Grammatiken der Chomsky-Hierarchie. Sie zeichnen sich dadurch aus, dass einzelne Nichtterminalsymbole nur in einem vorgegebenen Kontext ersetzt werden dürfen.

Definition

Eine kontextsensitive Grammatik ist eine formale Grammatik G=(V,T,P,S) mit

  • einer endlichen Menge V (Vokabular),
  • Terminalsymbolen TV
  • Nichtterminalsymbolen N=VT, darunter das
  • Startsymbol SN
  • Produktionsregeln P der Form αXβαγβ oder der Form Sε, wenn gilt:
    • α,βV*
    • XN
    • γV+
    • S kommt auf keiner rechten Seite einer Produktionsregel vor.

Manche Autoren bezeichnen alternativ das Quadrupel (N,T,P,S) als Grammatik G.

Beschreibung

Bis auf eine Ausnahme hat jede Produktionsregel der Definition nach die Form αXβαγβ und γε.

Das bedeutet, dass das Nichtterminalsymbol X im Kontext der Zeichenketten α und β durch γ ersetzt wird. Aber während γ aus mindestens einem Symbol (Terminal- oder Nichtterminalsymbol) bestehen muss, kann sowohl α als auch β leer sein. Folgende Sonderfälle sind daher gemäß der Definition möglich:

  • αXαγ
  • Xβγβ
  • Xγ

Um das leere Wort ε erzeugen zu können, erlaubt man die Regel Sε, sofern S auf keiner rechten Seite einer Produktionsregel vorhanden ist. Durch das Hinzufügen des leeren Wortes wird erreicht, dass die kontextsensitiven Sprachen eine echte Obermenge der kontextfreien Sprachen sind. Ansonsten hätte man als Resultat die umständlicher zu beschreibende Situation, dass nur die kontextfreien Grammatiken ohne leere-Wort-Produktionen auch kontextsensitive Grammatiken sind.

Kontextsensitive und monotone Grammatiken

Die Produktionsregeln kontextsensitiver Grammatiken verkürzen die linke Seite nicht. Bis auf die Ausnahmeregel Sε erfüllen also alle Regeln w1w2 die Bedingung |w1||w2|. Eine kontextsensitive Grammatik ist deshalb (bis auf die genannte leere-Wort-Produktion) immer auch eine monotone Grammatik. Kontextsensitive und monotone Grammatiken erzeugen aber die gleiche Sprachklasse.

Einige Autoren definieren kontextsensitive Grammatiken im Sinne monotoner Grammatiken[1]. Die Produktionsregeln der Form αXβαγβ werden gelegentlich nur als typische oder kanonische Form kontextsensitiver Regeln betrachtet,[2] im Gegensatz zu Sε.

Normalformen

Zu jeder kontextsensitiven Grammatik existiert eine Grammatik in Kuroda-Normalform mit Produktionsregeln der Form

  • Aa
  • AB
  • ABC
  • ABCD

Eine Grammatik in Kuroda-Normalform ist im Allgemeinen zwar monoton aber nicht mehr kontextsensitiv.

Eine kontextsensitive Normalform ist die einseitige Normalform mit Regeln der Art:

  • Aa
  • ABC
  • ABAC

Zu jeder kontextsensitiven Grammatik gibt es eine Grammatik in einseitiger Normalform[3][4].

Alternative Notation

Im Bereich der Sprachwissenschaften findet man eine alternative Notation der Produktionsregeln[5]. Man gibt die Ersetzungsregeln ähnlich wie bei kontextfreien Regeln an und nennt den Kontext, in dem die Regel angewendet werden darf, am rechten Ende der Regel: Xγ/α____β/

Von kontextsensitiven Grammatiken erzeugte Sprachen

Mit Hilfe kontextsensitiver Grammatiken lassen sich genau die kontextsensitiven Sprachen erzeugen. Das heißt: Jede kontextsensitive Grammatik erzeugt eine kontextsensitive Sprache und zu jeder kontextsensitiven Sprache existiert eine kontextsensitive Grammatik, die diese Sprache erzeugt.

Die kontextsensitiven Sprachen sind genau die Sprachen, die von einer nichtdeterministischen, linear beschränkten Turingmaschine erkannt werden können; d. h., von einer nichtdeterministischen Turing-Maschine, deren Band linear durch die Länge der Eingabe beschränkt ist (d. h., es gibt eine konstante Zahl a so dass das Band der Turing-Maschine höchstens ax Felder besitzt, wobei x die Länge des Eingabewortes ist).

Darum ist auch das Wortproblem (die Frage, ob xL gilt) für kontextsensitive Sprachen L entscheidbar.

Einzelnachweise

  1. zum Beispiel Vorlage:Literatur
  2. Vorlage:Literatur
  3. M. Penttonen, One-Sided and Two-Sided Context in Formal Grammars, Information and Control, 25 (1974), 371–392
  4. siehe auch Rozenberg und Salomaa, Handbook of Formal Languages, S. 190
  5. Vorlage:Literatur

Literatur