Chomsky-Hierarchie

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Chomsky-Hierarchie, gelegentlich Chomsky-Schützenberger-Hierarchie (benannt nach dem Linguisten Noam Chomsky und dem Mathematiker Marcel Schützenberger), ist ein Begriff aus der Theoretischen Informatik. Sie ist eine Hierarchie von Klassen formaler Grammatiken, die formale Sprachen erzeugen, und wurde 1956 erstmals von Noam Chomsky beschrieben. Die Hierarchiestufen unterscheiden sich darin, wie rigide die Einschränkungen für die Form zulässiger Produktionsregeln auf der jeweiligen Stufe sind; bei Typ-0-Grammatiken sind sie uneingeschränkt, bei höheren Stufen fortschreitend stärker beschränkt.

Grammatiken niedrigeren Typs sind erzeugungsmächtiger als die höherer Typen. Eine Sprache, die von einer Grammatik des Typs k erzeugt wird, heißt eine Sprache des Typs k. Neben die Chomsky-Hierarchie der Grammatiken tritt in diesem Sinne eine Chomsky-Hierarchie der Sprachen.

Hintergründe[Bearbeiten]

Formale Sprachen haben den Vorzug, mathematisch exakt analysiert werden zu können. Formalen Sprachen liegt ein vorgegebenes Alphabet (ein Zeichensatz) zugrunde, das häufig mit \Sigma bezeichnet wird. Beliebig lange, endliche Folgen von Elementen des Alphabets werden als Wörter über dem Alphabet bezeichnet. Mengen solcher Wörter sind schließlich formale Sprachen. Die umfassendste formale Sprache über einem vorgegebenen Alphabet \Sigma ist unendlich groß; sie enthält sämtliche Wörter, die durch beliebiges Zusammenfügen von Zeichen des Alphabets gebildet werden können. Sie lässt sich durch die Kleenesche Hülle des Alphabets beschreiben, also \Sigma^*. Die kleinste formale Sprache enthält gar keine Wörter. Andere formale Sprachen bestehen nur aus wenigen Wörtern und lassen sich somit als endliche Menge notieren; beispielsweise für das Alphabet \textstyle \Sigma=\{a,b\} die Sprache aller Wörter der Länge zwei: \textstyle L=\{aa,ab,ba,bb\}.

Unendliche Sprachen lassen sich begreiflicherweise nicht durch Aufzählen notieren. Um sie exakt zu beschreiben, ist ein Konzept nötig, das auch unendliche Mengen definieren kann. Hierzu werden im Rahmen der formalen Sprachen vor allem Erzeugungsverfahren benutzt.

Geht man von einem vorhandenen Wort über einem Alphabet aus, lassen sich durch Semi-Thue-Systeme Wortmengen spezifizieren, die sich durch beliebig wiederholtes Anwenden von Ersetzungsregeln ergeben. Ersetzungsregeln der Form \alpha\rightarrow\beta schreiben vor, dass in einem Wort, das ein Segment \alpha enthält, dieses Segment durch \beta ersetzt wird. Semi-Thue-Systeme geben daher eine Ableitungsrelation zwischen Wörtern formaler Sprachen an: Zwei Wörter stehen in Relation, wenn das eine Wort durch eine Ersetzungsregel vom anderen Wort abgeleitet werden kann.

Zur Beschreibung von formalen Sprachen eignen sich formale Grammatiken, ein gegenüber Semi-Thue-Systemen erweitertes und mächtigeres Konzept. Sie unterscheiden sich von Semi-Thue-Systemen darin, dass sie sogenannte Terminalsymbole und Nichtterminalsymbole kennen. Terminalsymbole einer Grammatik sind gerade alle Zeichen ihres Zeichensatzes \Sigma. Die erste anwendbare Regel geht immer von einem nichtterminalen Startsymbol aus, und das Ergebnis eines Ersetzungsvorgangs gilt nur dann als Wort ihrer formalen Sprache, wenn es keine Nichtterminalsymbole enthält.

Das folgende Beispiel beschreibt eine Sprache, mit der sich beliebig lange Summen der Ziffern 1, 2 und 3 ausdrücken lassen. Das dafür angemessene Alphabet ist \Sigma=\{+,1,2,3\}. Die entsprechenden Terminalsymbole sind unterstrichen dargestellt, Nicht-Terminale kursiv. Die folgenden Zeilen stellen die Regeln dar.


\begin{align}
  \mathit{Summe}  & \rightarrow \mathit{Ziffer}\\
  \mathit{Summe}  & \rightarrow \mathit{Summe}\ \underline{+}\ \mathit{Ziffer}\\
  \mathit{Ziffer} & \rightarrow \underline{1}\\
  \mathit{Ziffer} & \rightarrow \underline{2}\\
  \mathit{Ziffer} & \rightarrow \underline{3}\\
\end{align}

Das Startsymbol dieser Sprache ist Summe. Davon ausgehend kann man nun beliebige Regeln nacheinander anwenden, um einen gültigen Ausdruck zu erzeugen:


\begin{align}
  & \mathit{Summe}                                    &\quad& \text{(Startsymbol)}\\
  & \mathit{Summe}\ \underline{+}\ \mathit{Ziffer}    && \text{(mit zweiter Regel)}\\
  & \mathit{Ziffer}\ \underline{+}\ \mathit{Ziffer}   && \text{(mit erster Regel)}\\
  & \underline{1\ +}\ \mathit{Ziffer}                 && \text{(mit 1. Ziffern-Regel)}\\
  & \underline{1 + 2}                                 && \text{(mit 2. Ziffern-Regel)}\\
\end{align}

Nicht alle unendlichen Sprachen lassen sich als formale Sprachen mit diesem Erzeugungsprinzip beschreiben, es ist aber kein tauglicheres Konzept bekannt. Ein anderer gängiger Formalismus zur Beschreibung von Sprachen sind Automatenmodelle, vor allem Turingmaschinen. Uneingeschränkte formale Grammatiken und Turingmaschinen sind bei der Beschreibung von formalen Sprachen gleichmächtig, d.h. zu jeder von einer formalen Grammatik erzeugten Sprache gibt es eine Turingmaschine, die genau diese akzeptiert, und umgekehrt.

Ebenso wie verschiedene Automatenmodelle definiert wurden, definierte Chomsky in seiner Arbeit verschiedene Grammatiktypen. Durch drei fortlaufend schärfere Einschränkungen an die jeweils darin zulässigen Ersetzungsregeln stellte er eine Hierarchie aus vier Klassen von formalen Grammatiken auf, wodurch die weniger eingeschränkten Klassen die stärker regulierten Klassen jeweils echt umfassen. Das Gleiche gilt für die von den jeweiligen Grammatikklassen beschriebenen Sprachklassen: auch sie bilden eine Hierarchie.

Sprachen eingeschränkteren Grammatiktyps sind üblicherweise einfacher algorithmisch zu verarbeiten – um den Preis, weniger ausdrucksmächtig zu sein. Reguläre Ausdrücke, mit denen man etwa Muster für die Suche in Texten definiert, entsprechen zum Beispiel den sehr eingeschränkten Chomsky-Grammatiken des Typs 3 (reguläre Grammatiken) und solche Textsuchen sind effektiv und schnell. Dagegen taugen Grammatiken des Typs 3 wegen ihrer Einfachheit nicht zur Beschreibung von Programmiersprachen, für die man meist weniger eingeschränkte Typ-2-Grammatiken benutzt.

Die Hierarchie[Bearbeiten]

Die Chomsky-Hierarchie umfasst vier Typen formaler Grammatiken, gezählt von 0 bis 3. Typ 0 umfasst alle formalen Grammatiken überhaupt, also ohne Einschränkung an die Gestalt zulässiger Erzeugungsregeln. Grammatiken des Typs 1 bis Typ 3 sind dann zunehmend stärker eingeschränkt. Allein nach Definition ist eine Grammatik vom Typ 1 auch vom Typ 0, eine Grammatik vom Typ 2 auch vom Typ 1, eine Grammatik vom Typ 3 auch vom Typ 2; die Umkehrungen gelten nicht. Deshalb bilden diese Klassen eine echte Hierarchie. Bei den entsprechenden Sprachklassen zeigen Gegenbeispiele, dass ebenfalls die Umkehrungen nicht gelten, weshalb auch sie eine echte Hierarchie bilden.

Chomsky forderte für Typ-1-, Typ-2- und Typ-3-Grammatiken, dass die rechte Seite von Produktionsregeln nicht kürzer als die linke Seite sein darf, was auch das leere Wort auf jeder rechten Seite einer Produktionsregel ausschließt. Heute ist man oft weniger restriktiv; die Definitionen sind oft so gefasst, dass die Hierarchie der Sprachen nicht gestört wird, sie es aber auch Grammatiken des Typs 1 (kontextsensitive Grammatiken) durch eine Ausnahmeregel erlauben, das leere Wort zu erzeugen, und den Typen 2 (kontextfreien Grammatiken) und 3 (regulären Grammatiken) sogar ohne Einschränkung das leere Wort als rechte Seite von Ersetzungsregeln gestatten.

Typ-0-Grammatik (allgemeine Chomsky-Grammatik oder Phrasenstrukturgrammatik)[Bearbeiten]

Hauptartikel: Formale Grammatik

Definition[Bearbeiten]

Typ-0-Grammatiken werden auch unbeschränkte Grammatiken genannt. Es handelt sich dabei um die Klasse aller formalen Grammatiken der Form G = (V, \Sigma,S,P), wobei V = \Sigma \cup N ein Vokabular ist, bestehend aus einem endlichen Alphabet \Sigma und einer Menge von Nichtterminalen N. Das ausgezeichnete Symbol S \in N wird als Startsymbol bezeichnet und P ist eine Menge von Produktionsregeln P \subset (V^*\setminus\Sigma^*) \times V^*, d.h. auf der linken Seite jeder Produktionsregel steht wenigstens ein Nicht-Terminalsymbol. Für einzelne Regeln schreibt man anstelle von (\alpha,\beta)\in P meistens \alpha\rightarrow\beta.

Um die Zugehörigkeit zur Klasse der Typ-0-Grammatiken auszudrücken, schreibt man G \in \mbox{Typ}_0.

Von Typ-0-Grammatiken erzeugte Sprachen[Bearbeiten]

Jede Typ-0-Grammatik erzeugt eine Sprache, die von einer Turingmaschine akzeptiert werden kann, und umgekehrt existiert für jede Sprache, die von einer Turingmaschine akzeptiert werden kann, eine Typ-0-Grammatik, die diese Sprache erzeugt. Diese Sprachen sind auch bekannt als die rekursiv aufzählbaren Sprachen (oft auch semi-entscheidbare Sprachen genannt), d. h. die zugehörige Turingmaschine hält bei jedem Wort, das in der Sprache liegt, und liefert das Ergebnis 1. Es ist allerdings nicht gefordert, dass die Turingmaschine für ein Wort, das nicht in der Sprache liegt, mit dem Ergebnis 0 hält (die Maschine muss also nicht terminieren).

Man beachte, dass sich diese Menge von Sprachen von der Menge der rekursiven Sprachen (oft auch entscheidbare Sprachen genannt) unterscheidet, welche durch Turingmaschinen entschieden werden können.

Typ-1-Grammatik (kontextsensitive Grammatik)[Bearbeiten]

Hauptartikel: Kontextsensitive Grammatik

Definition[Bearbeiten]

Typ-1-Grammatiken werden auch kontextsensitive Grammatiken genannt. Es handelt sich dabei um Typ-0-Grammatiken, bei denen alle Produktionsregeln die Form \alpha A \beta \rightarrow \alpha \gamma \beta oder S \rightarrow \varepsilon haben, wobei A ein Nichtterminal und \alpha, \gamma, \beta Wörter bestehend aus Terminalen (\Sigma) und Nichtterminalen (N) sind. Die Wörter \alpha und \beta können leer sein, aber \gamma muss mindestens ein Symbol (also ein Terminal oder ein Nichtterminal) enthalten. Diese Eigenschaft wird Längenbeschränktheit genannt.

Als einzige Ausnahme von dieser Forderung lässt man S \rightarrow \varepsilon zu, wenn das Startsymbol nirgends auf der rechten Seite einer Produktion auftritt. Damit erreicht man, dass die kontextsensitiven Sprachen auch das oft erwünschte leere Wort enthalten können, das dann aber immer nur in einer einschrittigen Ableitung aus dem Startsymbol selbst entsteht, und ohne für alle anderen Ableitungen die Eigenschaft zu stören, dass in jedem Teilschritt die Satzform länger wird oder gleich lang bleibt.

Ist eine Grammatik G kontextsensitiv, so schreibt man G \in \mbox{Typ}_1.

Anders als bei kontextfreien Grammatiken können auf der linken Seite der Produktionen kontextsensitiver Grammatiken durchaus statt einzelner Symbole ganze Symbolfolgen stehen, sofern sie mindestens ein Nichtterminalsymbol enthalten.

Von Typ-1-Grammatiken erzeugte Sprachen[Bearbeiten]

Die kontextsensitiven Grammatiken erzeugen genau die kontextsensitiven Sprachen, das heißt jede Typ-1-Grammatik erzeugt eine kontextsensitive Sprache und zu jeder kontextsensitiven Sprache existiert eine Typ-1-Grammatik, die diese erzeugt.

Die kontextsensitiven Sprachen sind genau die Sprachen, die von einer nichtdeterministischen, linear beschränkten Turingmaschine erkannt werden können; das heißt von einer nichtdeterministischen Turingmaschine, deren Band linear durch die Länge der Eingabe beschränkt ist (das heißt es gibt eine konstante Zahl a, sodass das Band der Turingmaschine höchstens a \cdot x Felder besitzt, wobei x die Länge des Eingabewortes ist).

Monotone Grammatiken[Bearbeiten]

Einige Autoren bezeichnen eine Grammatik schon dann als kontextsensitiv, wenn bis auf die Ausnahme S\rightarrow\varepsilon (s.o.) alle Produktionsregeln w_1 \rightarrow w_2 nur die Bedingung \left|w_1\right| \leq \left|w_2\right| erfüllen, d.h. dass die rechte Seite einer solchen Produktion nicht kürzer als deren linke Seite ist. Häufiger findet man dafür jedoch den Begriff der monotonen Grammatik oder der nichtverkürzenden Grammatik.

Es erweist sich, dass die monotonen Grammatiken genau wieder die kontextsensitiven Sprachen erzeugen, weshalb die beiden Klassen von Grammatiken als äquivalent betrachtet werden und manche Autoren nur die eine oder die andere Grammatikklasse überhaupt behandeln. Aber nicht jede monotone Ersetzungsregel ist auch eine kontextsensitive, deshalb ist auch nicht jede monotone Grammatik eine kontextsensitive.

Typ-2-Grammatik (kontextfreie Grammatik)[Bearbeiten]

Hauptartikel: Kontextfreie Grammatik

Definition[Bearbeiten]

Typ-2-Grammatiken werden auch kontextfreie Grammatiken genannt. Es sind Typ-1-Grammatiken, für die gelten muss: \forall (w_1 \rightarrow w_2) \in P: ( w_1 \in N) \and \left(w_2 \in (N \cup \Sigma)^+\right). In jeder Regel der Grammatik muss also auf der linken Seite genau ein nicht-terminales Symbol stehen und auf der rechten Seite kann eine beliebige nicht-leere Folge von terminalen und nichtterminalen Symbolen stehen.

Außerdem kann wie bei Typ-1-Grammatiken die Ausnahmeregel S\rightarrow\varepsilon zugelassen werden, wenn S auf keiner rechten Seite einer Regel vorkommt.

Kontextfreie Grammatiken werden oft so definiert, dass die rechte Seite auch leer sein darf, also (w_1 \rightarrow \varepsilon) \in P. Solche Grammatiken erfüllen nicht mehr alle Eigenschaften von Typ-2-Grammatiken und stünden nicht mehr in der von Chomsky definierten Hierarchie. Sie erfüllen aber die Bedingungen von monotonen Grammatiken.

Man schreibt G \in \mbox{Typ}_2.

Von Typ-2-Grammatiken erzeugte Sprachen[Bearbeiten]

Kontextfreie Grammatiken (mit \varepsilon-Ausnahmeregel) erzeugen genau die kontextfreien Sprachen, jede Typ-2-Grammatik erzeugt also eine kontextfreie Sprache und zu jeder kontextfreien Sprache existiert eine Typ-2-Grammatik, die diese erzeugt.

Die kontextfreien Sprachen sind genau die Sprachen, die von einem nichtdeterministischen Kellerautomaten (NPDA) erkannt werden können. Eine Teilmenge dieser Sprachen bildet die theoretische Basis für die Syntax der meisten Programmiersprachen.

Siehe auch: Backus-Naur-Form.

Typ-3-Grammatik (reguläre Grammatik)[Bearbeiten]

Hauptartikel: Reguläre Grammatik

Definition[Bearbeiten]

Typ-3-Grammatiken werden auch reguläre Grammatiken genannt. Es handelt sich um Typ-2-Grammatiken, bei denen auf der rechten Seite von Produktionen genau ein Terminalsymbol auftreten darf und maximal ein weiteres Nichtterminalsymbol. Die erlaubte Stellung solcher Nichtterminalsymbole muss außerdem über alle Produktionen hinweg einheitlich immer vor oder immer hinter dem Terminalsymbol sein, je nachdem spricht man auch genauer von linksregulären und rechtsregulären Grammatiken. Sie stimmen mit den links- beziehungsweise rechts-linearen Grammatiken überein, wohingegen lineare Grammatiken nicht den regulären Grammatiken entsprechen.

Für linksreguläre Typ-3-Grammatiken muss also die Bedingung erfüllt sein, dass

\forall (w_1 \rightarrow w_2) \in P: (w_1 \in N) \and (w_2 \in \Sigma \cup N \Sigma).

Sie dürfen also nur linksreguläre Produktionen (Nichtterminalsymbol auf der rechten Seite in Vorder stellung) enthalten.

Üblicherweise gestattet man für reguläre Grammatiken, wie auch für kontextfreie Grammatiken Regeln mit leerer rechter Seite, also (w_1\rightarrow\varepsilon) \in P.

Rechtsreguläre Grammatiken erfüllen dagegen die analoge Bedingung

\forall (w_1 \rightarrow w_2) \in P: (w_1 \in N) \and (w_2 \in \Sigma \cup \Sigma N \cup \{ \varepsilon \}).

Diese enthalten also nur rechtsreguläre Produktionen (Nichtterminalsymbol auf der rechten Seite allenfalls in Hinterstellung). Diese Bedingung drückt auch schon die Erlaubnis leerer rechter Seiten aus.

Linksreguläre und rechtsreguläre Grammatiken erzeugen genau dieselbe Sprachklasse, es gibt also zu jeder linksregulären Grammatik auch eine rechtsreguläre, die dieselbe Sprache erzeugt, und umgekehrt.

Man beachte, dass beim Auftreten von linksregulären und rechtsregulären Produktionen in ein und derselben Chomsky-Grammatik diese nicht regulär genannt wird. Die Grammatiken mit sowohl linksregulären als auch rechtsregulären Produktionen erzeugen nämlich eine echt größere Sprachklasse.

Manche Autoren erlauben in den Definitionen für reguläre / linksreguläre / rechtsreguläre Grammatiken überall dort, wo hier in Produktionen nur ein einzelnes Nichtterminalzeichen stehen darf, auch eine beliebige nichtleere terminale Zeichenkette. An der Erzeugungsmächtigkeit der Klassen ändert sich dadurch nichts.

Man schreibt G \in \mbox{Typ}_3 für reguläre Grammatiken G.

Von Typ-3-Grammatiken erzeugte Sprachen[Bearbeiten]

Reguläre Grammatiken erzeugen genau die regulären Sprachen, das heißt, jede Typ-3-Grammatik erzeugt eine reguläre Sprache und zu jeder regulären Sprache existiert eine Typ-3-Grammatik, die diese erzeugt.

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 häufig genutzt, um Suchmuster oder die lexikalische Struktur von Programmiersprachen zu definieren.

Übersicht[Bearbeiten]

Die folgende Tabelle führt für die vier Grammatiktypen auf, welche Form ihre Regeln haben, welchen Namen die erzeugten Sprachen haben und welche Automatentypen diese Sprachen erkennen, also das Wortproblem zumindest semi-entscheiden (Wort in Sprache: Maschine hält in akzeptierenden Endzustand, Wort nicht in Sprache: Maschine hält nie oder hält in nicht akzeptierenden Zustand → sicher hält die Maschine also nur, wenn das Wort in der Sprache ist). Da in der Chomsky-Hierarchie für die Sprachmengen aber eine echte Teilmengenbeziehung gilt (siehe nächster Abschnitt) entscheiden z.B. Turingmaschinen selbstverständlich ebenfalls das Wortproblem für Sprachen vom Typ 1 bis 3. (entscheiden heißt: Wort in Sprache: Maschine hält in akzeptierenden Endzustand, Wort nicht in Sprache: Maschine hält in nicht akzeptierenden Zustand → irgendwann hält die Maschine und das Problem (Wort in Sprache?) ist entschieden) Außerdem wird vermerkt, gegenüber welchen Operationen die erzeugten Sprachen abgeschlossen sind.

Grammatik Regeln Sprachen Entscheidbarkeit Automaten Abgeschlossenheit[1] Zeitabschätzung
Typ-0
Beliebige formale Grammatik
\alpha \rightarrow \beta
\alpha \in (\Sigma \cup N)^\ast \setminus \Sigma^\ast, \beta \in (\Sigma \cup N)^\ast
rekursiv aufzählbar (nicht "nur" rekursiv, die wären entscheidbar!) Turingmaschine (egal ob deterministisch oder nicht-deterministisch) \circ, \cap, \cup, \ast n.m.
Typ-1
Kontextsensitive Grammatik
\alpha A \beta \rightarrow \alpha \gamma \beta

A \in N, \alpha, \beta \in (\Sigma \cup N)^\ast, \gamma \in (\Sigma \cup N)^+\;
S \rightarrow \varepsilon ist erlaubt, wenn es keine Regel \alpha \rightarrow \beta S\gamma in P gibt.

kontextsensitiv Wortproblem linear platzbeschränkte nichtdeterministische Turingmaschine \complement, \circ, \cap, \cup, \ast 2^{O(n)}
Typ-2
Kontextfreie Grammatik
A \rightarrow \gamma
A \in N, \gamma \in (\Sigma \cup N)^\ast
kontextfrei Wortproblem,

Leerheitsproblem, Endlichkeitsproblem

nichtdeterministischer Kellerautomat \circ, \cup, \ast O(n^3)
Typ-3
Reguläre Grammatik
A \rightarrow aB (rechtsregulär) oder
A \rightarrow Ba (linksregulär)
A \rightarrow a
A \rightarrow \varepsilon
A,B \in N, a \in \Sigma

Nur links- oder nur rechtsreguläre Produktionen

regulär Wortproblem,

Leerheitsproblem, Endlichkeitsproblem, Äquivalenzproblem

Endlicher Automat (egal ob deterministisch oder nicht-deterministisch) \complement, \circ, \cap, \cup, \ast O(n)
Legende für die Spalte Regeln
  • \Sigma endliches Alphabet (Menge der Terminalsymbolen)
  • N Menge der Nichtterminalsymbolen
  • S \in N Startsymbol
  •  \varepsilon leeres Wort
  • P Menge von Produktionsregeln
  •  \setminus … Mengen-Differenzbildung
  • \astKleenescher Abschluss
  •  \gamma \in (\Sigma \cup N)^\ast\gamma muss mindestens ein Symbol (also ein Terminal oder ein Nichtterminal) enthalten

In der obigen Tabelle werden somit mit deutschen/lateinischen Großbuchstaben Nichtterminalsymbole dargestellt, A,B \in N mit deutschen/lateinischen Kleinbuchstaben Terminalsymbole a \in \Sigma und griechische Kleinbuchstaben werden verwendet, wenn es sich sowohl um Nichtterminal als auch um Terminalsymbole handeln kann. (Achtung: \ast und ^+: ein griechischer Kleinbuchstaben kann somit für mehrere Terminal- oder Nichtterminalsymbole stehen!)

Legende für die Spalte Abgeschlossenheit

Chomsky-Hierarchie für formale Sprachen[Bearbeiten]

Teilmengenbeziehung der Sprachklassen in der Chomsky-Hierarchie

Eine formale Sprache ist vom Typ i entsprechend der Hierarchie für Grammatiken, wenn es von einer Typ-i-Grammatik erzeugt wird. Formal ausgedrückt heißt das: L ist vom Typ i \in \{ 0, \ldots, 3 \}, falls es eine Grammatik G \in \mbox{Typ}_i mit L = L \left( G \right) gibt. Man schreibt dann L \in \mathcal{L}_i.

In der Chomsky-Hierarchie für formale Sprachen besteht zwischen den Sprachmengen benachbarter Ebenen eine echte Teilmengenbeziehung. Jede kontextsensitive Sprache ist rekursiv aufzählbar, aber es gibt rekursiv aufzählbare Sprachen, die nicht kontextsensitiv sind. Ebenso ist jede kontextfreie Sprache auch kontextsensitiv, aber nicht umgekehrt, und jede reguläre Sprache ist kontextfrei, aber nicht jede kontextfreie Sprache ist regulär.

Formal ausgedrückt bedeutet dies für die Klassen der durch die obigen Grammatiken erzeugten Sprachen: \mathcal{L}_3 \subset \mathcal{L}_2 \subset \mathcal{L}_1 \subset \mathcal{L}_0, wobei gelegentlich auch folgende Symbole verwendet werden: \mathrm{REG} \subset \mathrm{CF} \subset \mathrm{CS} \subset \mathrm{RE.}

Beispiele für Sprachen in den jeweiligen Differenzmengen sind:

  • L_1 = \left\{a^n b^n c^n \,|\, n \ge 1\right\} ist vom Typ 1, aber nicht vom Typ 2
  • L_2 = \left\{a^n b^n \,|\, n \ge 1\right\} ist vom Typ 2, aber nicht vom Typ 3

Beweise für die Nichtzugehörigkeit bestimmter Sprachen zu den Sprachklassen \mathcal{L}_2 und \mathcal{L}_3 wie hier werden oft mit dem Schleifensatz geführt.

Natürliche Sprachen[Bearbeiten]

Hauptartikel: Computerlinguistik

Obwohl Chomsky seine Forschungen mit dem Ziel verfolgte, eine mathematische Beschreibung der natürlichen Sprachen zu finden, ist bis heute für keine natürliche Sprache der Nachweis einer korrekten und vollständigen formalen Grammatik gelungen. Das Problem besteht u.a. im Zusammenspiel der verschiedenen Grammatikteile, die jeweils einzelne sprachliche Phänomene modellieren. Beim praktischen Einsatz formaler Grammatiken in der Computerlinguistik kommen Mehrdeutigkeiten auf verschiedenen Ebenen der Sprachbetrachtung hinzu; diese müssen (z.B. in der maschinellen Übersetzung) anhand des Kontextes aufgelöst werden.

Literatur[Bearbeiten]

  •  Noam Chomsky: Three models for the description of language. In: IRE Transactions on Information Theory. Vol.2, 1956, S. 113–124 (PDF).
  •  Noam Chomsky: On certain formal properties of grammars. In: Information and Control. Vol.2, 1959, S. 137–167 (PDF).
  •  Noam Chomsky, Marcel P. Schützenberger, P. Braffort, D. Hirschberg (Hrsg.): The algebraic theory of context free languages, Computer Programming and Formal Languages. North Holland, Amsterdam 1963, S. 118–161.
  •  Peter Sander, Wolffried Stucky, Rudolf Herschel: Automaten, Sprachen, Berechenbarkeit. Teubner, Stuttgart 1992, ISBN 3-519-02937-5.

Einzelnachweise[Bearbeiten]

  1.  Uwe Schöning: Theoretische Informatik- kurz gefasst. 5. Auflage. Spektrum Akademischer Verlag, Heidelberg 2008, ISBN 978-3-8274-1824-1, S. 81, DNB 986529222.