Chomsky-Hierarchie

Beziehungen zwischen formalen Grammatiken in der Informatik
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. Juni 2003 um 14:02 Uhr durch Zeno Gantner (Diskussion | Beiträge) (weblink zu artikel ueber universalgrammatik entfernt: ist zwar von chomsky, hat aber nicht so viel mit phrasenstrukturgrammatiken zu tun; level -> ebene). Sie kann sich erheblich von der aktuellen Version unterscheiden.


Die Chomsky-Hierarchie ist eine Hierarchie von Klassen formaler Grammatiken die formale Sprachen erzeugen. Sie wurde 1956 von Noam Chomsky beschrieben.

Eine formale Grammatik besteht aus Terminal-Symbolen, Nichtterminal-Symbolen (darunter das Startsymbol) und Produktions-Regeln.
Die Grammatik definiert dann eine formale Sprache, die aus allen Wörtern besteht, die nur aus Terminal-Symbolen bestehen und vom Startsymbol abgeleitet werden können.


Die Hierarchie

Die Chomsky-Hierarchie besteht aus folgenden Ebenen:

  • Typ-0-Grammatiken (auch unbeschränkte Grammatiken genannt) sind alle wie oben definierbaren Grammatiken. Jede Typ-0-Grammatik erzeugt eine Sprache, die von einer Turing-Maschine erkannt werden kann und für jede Sprache die von einer Turing-Maschine erkannte werden kann existiert eine Typ-0-Grammatik, die diese Sprache erzeugt. Eine Sprache, die von einer Turing-Maschine erkannt werden kann ist dabei definiert als eine Sprache, zu der eine Turing-Maschine existiert, die genau bei den Wörtern hält, die zur Sprache gehören. Diese Sprachen sind auch bekannt, als die rekursiv aufzählbaren Sprachen (oft auch semientscheidbare Sprachen genannt). Man beachte, dass sich diese Menge von Sprachen von der Menge der der rekursiven Sprachen (oft auch entscheidbare Sprachen genannt) unterscheidet.
  • Typ-1-Grammatiken (auch kontextsensitive Grammatiken genannt) erzeugen genau die kontextsensitiven Sprachen, d.h. jede Typ-1-Grammatik erzeugt eine kontextsenstive Sprache und zu jeder kontextsensitiven Sprache existiert eine Typ-1-Grammatik, die diese erzeugt. Typ-1-Grammatiken besitzen nur Regeln der Form  , wobei   ein Nichtterminal und   Wörter bestehend aus Terminalen und Nichtterminalen sind. Die Wörter   und   können leer sein, aber   muss mindestens ein Symbol (also ein Terminal oder ein Nichtterminal) enthalten. Die einzige Ausnahme ist, dass die Grammatik die Regel   enthalten darf, wobei   das Startsymbol und   (wie oben erläutert) das leere Wort ist. Diese Regel wird eventuell benötigt, um das leere Wort   ableiten zu können. Die kontextsensitiven Sprachen sind genau die Sprachen, die von einem nichtdeterministischen LBA 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   so dass das Band der Turing-Maschine höchstens   Felder besitzt, wobei   die Länge des Eingabewortes ist).
  • Typ-2-Grammatiken (auch kontextfreie Grammatiken genannt) erzeugen genau die kontextfreien Sprachen, d.h. jede Typ-2-Grammatik erzeugt eine kontextfreie Sprache und zu jeder kontextfreien Sprache existiert eine Typ-2-Grammatik, die diese erzeugt. Typ-2-Grammatiken besitzen nur Regeln der Form  , wobei   ein Nichtterminal und   ein Wort bestehend aus Terminalen und Nichtterminalen ist. Die kontextfreien Sprachen sind genau die Sprachen, die von einem nichtdeterministischen Kellerautomaten erkannt werden können. Eine Teilmenge dieser Sprachen bilden die theoretische Basis für die Syntax der meisten Programmiersprachen.
  • Typ-3-Grammatiken (auch reguläre Grammatiken genannt) erzeugen genau die regulären Sprachen, d.h. jede Typ-3-Grammatik erzeugt eine reguläre Sprache und zu jeder regulären Sprache existiert eine Typ-3-Grammatik, die diese erzeugt. Typ-3-Grammatiken besitzen nur Regeln, die auf der linken Seite aus einem Nichtterminal und auf der rechten Seite aus einem Termial, eventuell gefolgt von einem Nichtterminal bestehen. Aus dem selben Grund wie bei Typ-1-Grammtiken ist auch hier die Regel   als Ausnahme erlaubt, allerdings nur, wenn   nicht auf der rechten Seite einer Regel erscheint. Reguläre Sprachen können alternativ auch durch reguläre Ausdrücke beschrieben werden und die regulären Sprachen sind genau die Sprachen, die von endlichen Automaten erkannt werden können. Sie werden gewöhnlich genutzt, um Suchmuster oder die lexikalische Struktur von Programmiersprachen zu definieren. Eine weitere Anwendung existiert in der Morphologie.

Jede reguläre Sprache ist kontextfrei, jede kontextfreie Sprache ist kontextsensitiv und jede kontextsensitive Sprache ist rekursiv aufzählbar.
Dabei handelt es sich um echte Teilmengenbeziehungen, d.h. es gibt rekursive aufzählbare Sprachen, die nicht kontextsensitiv sind, kontextsensitive Sprachen, die nicht kontextfrei sind und kontextfreie Sprachen, die nicht regulär sind.

Die folgende Tabelle fasst die vier Grammatiktypen, die Form ihrer Regeln, die Sprachen die sie erzeugen und die Automatentypen die sie erkennen zusammen.

Grammatik Regeln Sprachen Automaten
Typ-0 keine Einschränkungen rekursiv aufzählbar Turing-Maschine
Typ-1   kontextsensitiv linear platzbeschränkte nichtdeterministische Turing-Machine
Typ-2   kontextfrei nichtdeterministischer Kellerautomat
Typ-3  
 
regulär endlicher Automat

Literatur

  • Noam Chomsky: Three models for the description of language, IRE Transactions on Information Theory, 2 (1956), pages 113-124
  • Noam Chomsky: On certain formal properties of grammars, Information and Control, 1 (1959), pages 91-112