Zum Inhalt springen

Informatik · Klasse 12–13 · aktualisiert

Chomsky-Hierarchie: Grammatiktypen verstehen

Du lernst die vier Chomsky-Typen, ihre Sprachklassen und Automaten kennen und siehst, warum Grammatiktyp und Sprachtyp nicht dasselbe sind.

0 von 11 Aufgaben gelöst

Chomsky-Hierarchie: Grammatiktypen verstehen

Kurz gesagt

Die Chomsky-Hierarchie ordnet Grammatiken in vier Typen (0 bis 3) nach der Strenge ihrer Regeln. Typ 3 gehört zu regulären, Typ 2 zu kontextfreien, Typ 1 zu kontextsensitiven und Typ 0 zu rekursiv aufzählbaren Sprachen. Eine Sprache ist vom Typ i, wenn es irgendeine Typ-i-Grammatik für sie gibt.

Mit Regeln kann man Wörter einer Sprache erzeugen, auch die einer Programmiersprache. Je strenger die Regeln sind, desto einfacher lässt sich eine Sprache üblicherweise verarbeiten, aber desto weniger kann sie ausdrücken. Die Chomsky-Hierarchie sortiert die Regelarten in vier Stufen. Du lernst, was jede Stufe kann und warum Grammatik und Sprache jeweils einen eigenen Typ haben.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

3 Abschnitte

Eine formale Grammatik hat Regeln, mit denen man Wörter erzeugt. Man startet beim Startsymbol und ersetzt Symbole nach den Regeln. Ein Ergebnis gilt nur dann als Wort der Sprache, wenn es keine Nichtterminalsymbole mehr enthält.

Die Chomsky-Hierarchie umfasst vier Typen von Grammatiken, gezählt von 0 bis 3. Die Typen unterscheiden sich darin, wie streng die Regeln eingeschränkt sind. Typ 0 hat keine Einschränkung an die Gestalt der Regeln. Es muss nur links in jeder Regel wenigstens ein Nichtterminalsymbol stehen. Typ 1 bis Typ 3 sind dann zunehmend stärker eingeschränkt.

Typ 1 heißt kontextsensitiv. Nach der Definition αAβ → αγβ haben die Regeln diese Form (oder S → ε). Dabei ist A ein Nichtterminal. α, β und γ sind Wörter aus Terminalen und Nichtterminalen. α und β können leer sein, γ muss aber mindestens ein Symbol enthalten. Die Regel S → ε erlaubt man nur als Ausnahme, wenn das Startsymbol S nirgends auf einer rechten Seite vorkommt.

Typ 2 heißt kontextfrei. In Chomskys ursprünglicher Definition steht links in jeder Regel genau ein Nichtterminalsymbol und rechts eine beliebige nichtleere Folge von Symbolen.

Typ 3 heißt regulär. In Chomskys ursprünglicher Definition (ohne ε auf rechten Seiten) steht rechts genau ein Terminalsymbol und höchstens ein weiteres Nichtterminalsymbol. Dieses Nichtterminal steht in allen Regeln entweder immer vor oder immer hinter dem Terminal. Kommen beide Stellungen in einer Grammatik vor, ist sie nicht regulär.

Nach der Definition ist eine Grammatik vom Typ 3 auch vom Typ 2, eine vom Typ 2 auch vom Typ 1 und eine vom Typ 1 auch vom Typ 0. Die Umkehrungen gelten nicht. Chomsky verlangte für Typ 1, 2 und 3, dass die rechte Seite nicht kürzer als die linke ist. Heute lässt man oft das leere Wort auf rechten Seiten zu. Hier bleiben wir bei der strengen Form.

Definition

Terminal und Nichtterminal

Terminalsymbole sind alle Zeichen des Alphabets. Nichtterminalsymbole gehören nicht dazu. Ein Ergebnis gilt nur dann als Wort der Sprache, wenn es keine Nichtterminalsymbole enthält.

TypNameForm der Regeln
0unbeschränktLinks wenigstens ein Nichtterminal, sonst keine Einschränkung
1kontextsensitivNach der Definition αAβ → αγβ: γ nicht leer (Ausnahme S → ε)
2kontextfreiLinks genau ein Nichtterminal, rechts eine nichtleere Folge
3regulärRechts genau ein Terminal und höchstens ein Nichtterminal, immer auf derselben Seite

Beispiel: Eine Grammatik für Summen der Ziffern 1, 2 und 3

  1. 1Startsymbol: Summe. Terminale: +, 1, 2, 3.
  2. 2Regeln: Summe → Ziffer · Summe → Summe + Ziffer · Ziffer → 1 · Ziffer → 2 · Ziffer → 3
  3. 3In jeder Regel steht links genau ein Nichtterminal, rechts eine nichtleere Folge. Die Grammatik ist also vom Typ 2.
  4. 4Summe → Ziffer hat rechts kein Terminal. Das ist keine Typ-3-Regel in der strengen Form.
  5. 5Ableitung von 1+2: Summe ⇒ Summe + Ziffer ⇒ Ziffer + Ziffer ⇒ 1 + Ziffer ⇒ 1+2

Teste dich

LeichtWelche Bedingung stellt Typ 0 an die Regeln?
LeichtWelcher Typ heißt auch kontextfreie Grammatik?

Alles auf einen Blick

Chomsky-Hierarchie

  • Vier Typen

    Die Chomsky-Hierarchie zählt die Grammatiktypen von 0 bis 3. Die Regeln werden von Typ 0 bis Typ 3 zunehmend strenger.

  • Typ 1 nach der Definition

    Regeln der Form αAβ → αγβ, γ nicht leer, Ausnahme S → ε nur, wenn S nirgends rechts steht.

  • Typ 3 streng

    Rechts steht genau ein Terminal und höchstens ein Nichtterminal, immer auf derselben Seite.

  • Zuordnung

    Typ 0 rekursiv aufzählbar (Turingmaschine), Typ 1 kontextsensitiv, Typ 2 kontextfrei (Kellerautomat), Typ 3 regulär (endlicher Automat).

  • Sprachtyp

    Eine Sprache ist vom Typ i, wenn es eine Typ-i-Grammatik für sie gibt. Der Typ der Grammatik legt das nicht fest.

Musteraufgabe · Schritt für Schritt

Eine Grammatik einordnen (ausgedachtes Beispiel)

  1. 1Gegeben: Startsymbol S, Terminale a und b, Regeln S → aSb und S → ab.
  2. 2Linke Seiten: In beiden Regeln steht links genau ein Nichtterminal, nämlich S.
  3. 3Rechte Seiten: aSb und ab sind nichtleer. Die Grammatik ist also vom Typ 2.
  4. 4Typ 3? Beide rechten Seiten enthalten zwei Terminale, Typ 3 erlaubt genau ein Terminal. Die Grammatik ist nicht vom Typ 3.
  5. 5Ableitung: S ⇒ aSb ⇒ aabb. Allgemein entstehen so die Wörter aⁿbⁿ mit n ≥ 1.
  6. 6Die Sprache {aⁿbⁿ | n ≥ 1} ist vom Typ 2, aber nicht vom Typ 3. Passender Automat: ein nichtdeterministischer Kellerautomat.

Fehler finden

Prüfe die Aussagen zu monotonen Grammatiken In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Bei Typ gibt es keine Einschränkung der Regelgestalt, außer dass links wenigstens ein Nichtterminal steht. Genau die regulären Sprachen erkennt ein . Eine Sprache ist vom Typ i, wenn es Typ-i-Grammatik gibt, die sie erzeugt.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Chomsky-Hierarchie

LeichtWie viele Chomsky-Typen gibt es und wie sind sie gezählt?
MittelWelche Sprachklasse und welcher Automat gehören zu Typ 2?
SchwerDie Sprache {aⁿbⁿcⁿ | n ≥ 1} ist vom Typ 1, aber nicht vom Typ 2. Was folgt daraus?

Weiterlesen in Informatik