Informatik

Chomsky-Hierarchie: Grammatiktypen verstehen

Chomsky-Hierarchie: Grammatiktypen verstehen
Chomsky-Hierarchie: Grammatiktypen verstehen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Die Chomsky-Hierarchie ordnet formale Grammatiken nach ihren Produktionsregeln. Typ 0 erlaubt am meisten, Typ 3 ist am stärksten eingeschränkt. Je stärker die Regeln eingeschränkt sind, desto kleiner ist die zugehörige Sprachklasse.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Wie erzeugt eine Grammatik Wörter?

Eine formale Grammatik beschreibt mit endlich vielen Regeln möglicherweise unendlich viele Wörter.

Definition

Formale Grammatik

Eine Grammatik ist ein Vier-Tupel $G=(V,\Sigma,P,S)$:

  • $V$ ist die Menge der Nichtterminale. Diese Symbole können ersetzt werden.
  • $\Sigma$ ist das Alphabet der Terminale. Aus ihnen bestehen die fertigen Wörter.
  • $P$ ist die Menge der Produktionsregeln.
  • $S$ ist das Startsymbol.

Eine Regel wie $S\to aS$ ersetzt ein vorkommendes $S$ durch $aS$. Ein Wort gehört erst dann zur erzeugten Sprache, wenn nur noch Terminale vorkommen.

Beispiel

Die Grammatik mit den Regeln

$$S\to aS\mid b$$

erzeugt Wörter der Form $a^n b$ für $n\geq 0$.

Für $aab$ lautet eine vollständige Ableitung:

$$S\Rightarrow aS\Rightarrow aaS\Rightarrow aab$$

Die Folge $aaS$ ist noch kein Wort der Sprache, weil sie das Nichtterminal $S$ enthält.

Teste dich
Frage 1 von 1LeichtWann ist eine Ableitung erfolgreich abgeschlossen?
Lösung: Wenn die Satzform nur noch Terminale enthält. — Ein erzeugtes Sprachwort darf keine Nichtterminale mehr enthalten.
Woran erkennst du die vier Typen?

Für die folgende Übersicht verwenden wir eine strenge, gut vergleichbare Konvention. Dabei ist die linke Regelseite nicht leer und enthält mindestens ein Nichtterminal.

Typ 0: unbeschränkt

Bei Typ 0 gibt es keine zusätzliche Einschränkung der Regelform. Eine Regel darf eine Satzform auch verkürzen.

Typ-0-Grammatiken erzeugen die rekursiv aufzählbaren Sprachen. Das passende Modell ist die Turingmaschine.

Typ 1: nichtverkürzend oder kontextsensitiv

Für jede Regel $u\to v$ gilt:

$$|u|\leq |v|$$

Die rechte Seite ist also mindestens so lang wie die linke. Solche Regeln heißen nichtverkürzend, monoton oder expansiv.

Eine syntaktisch kontextsensitive Regel hat genauer die Form

$$\alpha A\beta\to\alpha\gamma\beta$$

Dabei wird $A$ nur in der Umgebung $\alpha\_\beta$ ersetzt. Nichtverkürzende und syntaktisch kontextsensitive Grammatiken erzeugen dieselbe Sprachklasse, obwohl ihre einzelnen Regelformen nicht identisch sein müssen.

Typ 1 entspricht den kontextsensitiven Sprachen und linear beschränkten Turingmaschinen.

Typ 2: kontextfrei

Links steht genau ein Nichtterminal:

$$A\to w$$

In der strengen Form ist $w$ nicht leer. Weil nur $A$ ersetzt wird, hängt die Regelanwendung nicht von seinen Nachbarsymbolen ab.

Typ 2 entspricht den kontextfreien Sprachen und den nichtdeterministischen Kellerautomaten.

Typ 3: regulär

Eine rechtsreguläre Grammatik verwendet Regeln der Form

$$A\to aB\quad\text{oder}\quad A\to a$$

Dabei sind $A$ und $B$ Nichtterminale und $a$ ist ein Terminal. Linksreguläre Grammatiken setzen das optionale Nichtterminal entsprechend vor das Terminal. Innerhalb einer regulären Grammatik wird die Orientierung nicht gemischt.

Typ 3 entspricht den regulären Sprachen und den endlichen Automaten.

Gut zu wissen

Beim leeren Wort $\varepsilon$ gibt es verschiedene Konventionen. Häufig wird $S\to\varepsilon$ als Ausnahme zugelassen, wenn das Startsymbol $S$ auf keiner rechten Regelseite vorkommt. Manche Definitionen erlauben weitere $\varepsilon$-Regeln oder terminale Zeichenketten in regulären Regeln. Die erzeugten Sprachklassen bleiben bei geeigneten Umformungen gleich. Bei einer konkreten Aufgabe musst du deshalb zuerst die verwendete Konvention prüfen.

Merke

Von Typ 0 zu Typ 3 werden die Regeln strenger: beliebig – nichtverkürzend – ein Nichtterminal links – linear.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Bei Typ 2 steht links genau . Bei Typ 1 darf eine gewöhnliche Regel die Satzform . Typ 3 gehört zu den Grammatiken.

Lösungen: Lücke 1: ein Nichtterminal; Lücke 2: nicht verkürzen; Lücke 3: regulären. Prüfe zuerst die linke Regelseite und danach die Form und Länge der rechten Seite.
Wie liest du die Hierarchie?

Die Sprachklassen sind echt ineinander enthalten:

$$L_3\subsetneq L_2\subsetneq L_1\subsetneq L_0$$

Das bedeutet zum Beispiel:

  • Jede reguläre Sprache ist auch kontextfrei.
  • Es gibt kontextfreie Sprachen, die nicht regulär sind.
  • Jede kontextfreie Sprache ist auch kontextsensitiv.
  • Typ 0 umfasst alle drei stärker eingeschränkten Klassen.

Eine Sprache wie

$$\{a^n b^n\mid n\geq 1\}$$

ist kontextfrei, aber nicht regulär. Ein endlicher Automat besitzt nur endlich viele Zustände und kann deshalb nicht beliebig große Anzahlen von $a$ speichern, um sie später mit der Anzahl der $b$ zu vergleichen. Diese anschauliche Begründung erklärt die Modellgrenze; ein formaler Nicht-Regularitätsbeweis benötigt ein eigenes Beweisverfahren.

Die Sprache

$$\{a^n b^n c^n\mid n\geq 1\}$$

ist kontextsensitiv, aber nicht kontextfrei. Hier müssen sogar drei beliebig große Anzahlen übereinstimmen.

Teste dich
Frage 1 von 2MittelWelche Aussage folgt aus $L_3\subsetneq L_2$?
Lösung: Jede reguläre Sprache ist kontextfrei, aber nicht jede kontextfreie Sprache ist regulär. — Das Zeichen $\subsetneq$ bezeichnet eine echte Teilmenge: Die kleinere Klasse ist enthalten, aber nicht gleich der größeren.
Frage 2 von 2SchwerWarum reicht ein endlicher Automat nicht für $\{a^n b^n\mid n\geq 1\}$?
Lösung: Er müsste eine unbegrenzt große Anzahl von $a$ für den späteren Vergleich speichern. — Die Wortlänge ist nicht das Problem. Entscheidend ist die unbeschränkte Abhängigkeit zwischen den beiden Anzahlen.
Wie ordnest du Regeln und Grammatiken ein?

Prüfe eine Grammatik von der stärksten Einschränkung aus:

  1. Steht links genau ein Nichtterminal?
  2. Ist die rechte Seite durchgehend links- oder rechtslinear? Dann ist die Grammatik Typ 3.
  3. Ist sie nicht linear, steht links aber immer genau ein Nichtterminal? Dann ist sie Typ 2.
  4. Gibt es mehrsymbolige linke Seiten, aber keine verkürzende Regel? Dann kommt Typ 1 infrage.
  5. Verletzt mindestens eine Regel die höheren Bedingungen, bleibt Typ 0.
Beispiel

Betrachte drei Regeln getrennt:

  • $A\to aB$ erfüllt die rechtsreguläre Form und ist als Regel mit Typ 3 vereinbar.
  • $A\to aAb$ besitzt genau ein Nichtterminal links, ist aber nicht linear. Sie ist mit Typ 2 vereinbar.
  • $AB\to A$ verkürzt von zwei Symbolen auf eines. Nach der strengen Konvention ist sie nur mit Typ 0 vereinbar.

Für den Typ einer ganzen Grammatik müssen alle Regeln die jeweilige Bedingung erfüllen.

Definition

Grammatiktyp und Sprachtyp

Der Typ einer Grammatik hängt von ihren konkreten Regeln ab. Der Typ einer Sprache hängt davon ab, ob irgendeine Grammatik des betreffenden Typs diese Sprache erzeugt.

Aus einer ungeschickt formulierten Typ-2-Grammatik folgt daher nicht automatisch, dass ihre Sprache nicht regulär ist. Vielleicht gibt es für dieselbe Sprache noch eine Typ-3-Grammatik.

Teste dich
Frage 1 von 3LeichtWelche stärkste Einschränkung erfüllt die Grammatik $S\to aS\mid b$?
Lösung: Typ 3 — Die Regeln sind rechtsregulär. Damit ist die Grammatik zugleich in den weniger eingeschränkten Typen enthalten, wird aber als Typ 3 eingeordnet.
Frage 2 von 3MittelWie ist die Regel $A\to aAb$ nach der strengen Konvention einzuordnen?
Lösung: Sie ist kontextfrei, aber nicht regulär. — Links steht genau ein Nichtterminal. Das genügt für Typ 2, aber die rechte Seite verletzt die lineare Form von Typ 3.
Frage 3 von 3SchwerEine vorgelegte Grammatik ist nicht regulär. Was darfst du über ihre Sprache sicher folgern?
Lösung: Noch nicht, dass die Sprache nicht regulär ist. — Regelbeschränkungen klassifizieren zunächst die Grammatik. Für den Sprachtyp zählt die Existenz einer passenden Grammatik.
Welche Automaten passen zu den Typen?

Grammatiken erzeugen Wörter; Automaten erkennen Wörter. Für jede Stufe gehören Grammatikklasse, Sprachklasse und Automatenmodell zusammen.

TypSprachklasseAutomatenmodell
0rekursiv aufzählbarTuringmaschine
1kontextsensitivlinear beschränkte Turingmaschine
2kontextfreinichtdeterministischer Kellerautomat
3regulärendlicher Automat

Ein Kellerautomat erweitert den endlichen Automaten um einen Stapelspeicher. Damit kann er beispielsweise die gelesenen $a$ zählen und beim Lesen der $b$ wieder abbauen. Eine linear beschränkte Turingmaschine besitzt mehr Arbeitsmöglichkeiten, darf aber nur einen durch die Eingabelänge beschränkten Bandbereich nutzen.

Bei einer Typ-0-Sprache akzeptiert eine passende Turingmaschine jedes enthaltene Wort. Für ein nicht enthaltenes Wort muss sie jedoch nicht anhalten. Erkennen ist daher schwächer als Entscheiden, bei dem die Maschine für jede Eingabe anhält.

Teste dich
Frage 1 von 1MittelWelches Modell passt zu einer kontextfreien Sprache?
Lösung: Ein nichtdeterministischer Kellerautomat — Der Kellerautomat ist das charakteristische Automatenmodell für Typ 2. Mächtigere Modelle können ihn zwar simulieren, kennzeichnen aber nicht die engste passende Stufe.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Chomsky-Hierarchie
    • Typ 0: unbeschränkt und Turingmaschine
    • Typ 1: nichtverkürzend und linear beschränkte Turingmaschine
    • Typ 2: kontextfrei und Kellerautomat
    • Typ 3: regulär und endlicher Automat
    • Regelbeschränkung: von Typ 0 zu Typ 3 zunehmend
    • Sprachklassen: echte Teilmengen
    • Einordnung: Grammatiktyp und Sprachtyp getrennt prüfen
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Reihenfolge geht von der kleinsten zur größten Sprachklasse?
Lösung: regulär – kontextfrei – kontextsensitiv – rekursiv aufzählbar — Typ 3 ist am stärksten eingeschränkt und bildet die kleinste Klasse; Typ 0 bildet die größte.
Frage 2 von 3MittelEine Grammatik enthält $S\to aSb\mid ab$. Welche stärkste Regelform erfüllt sie?
Lösung: Typ 2, weil links jeweils ein Nichtterminal steht, die Regeln aber nicht linear sind. — Die mögliche Wortlänge entscheidet nicht über den Grammatiktyp. Entscheidend ist die Form sämtlicher Produktionsregeln.
Frage 3 von 3SchwerEine Sprache wird durch eine Typ-2-Grammatik erzeugt. Später wird auch eine Typ-3-Grammatik für dieselbe Sprache gefunden. Wie ordnest du die Sprache ein?
Lösung: Als reguläre Sprache vom Typ 3 — Die neue Typ-3-Grammatik zeigt, dass die Sprache zur kleineren regulären Klasse gehört. Wegen der Hierarchie gehört sie damit ebenfalls zu allen größeren Klassen.

Du kannst die Hierarchie sicher anwenden, wenn du zuerst die Regeln einer Grammatik prüfst, anschließend Grammatik- und Sprachtyp unterscheidest und zuletzt das passende Automatenmodell zuordnest.

Passend dazu