Zum Inhalt springen

Informatik · Klasse 11–13 · aktualisiert

Formale Grammatik: Regeln, Ableitung und Sprache

Du lernst die vier Teile einer Grammatik, leitest Wörter Schritt für Schritt ab und ordnest Grammatiken in die vier Typen der Hierarchie ein.

0 von 15 Aufgaben gelöst

Formale Grammatik: Regeln, Ableitung und Sprache

Kurz gesagt

Eine formale Grammatik besteht aus Terminalen, Nichtterminalen, Produktionsregeln und einem Startsymbol. Du leitest ein Wort ab, indem du vom Startsymbol aus Regeln anwendest. Gibt es so eine Ableitung, gehört das Wort zur Sprache.

Wenn dein Programm einen Syntaxfehler hat, prüft der Parser deinen Quelltext anhand von Grammatikregeln. Der Parser ist der Syntaxanalyseteil eines Compilers, also eines Programms, das Quelltext verarbeitet. Hier lernst du, wie solche Regeln aufgebaut sind und wie man mit ihnen Wörter erzeugt und prüft.

Deine Lernziele

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

5 Abschnitte

Eine formale Grammatik ist ein mathematisches Modell. Sie legt eine Menge von Wörtern fest. Ein Wort ist dabei eine endliche Folge von Zeichen. Die Menge der Wörter, die sich mit der Grammatik erzeugen lassen, heißt formale Sprache.

Eine bloße Liste von Ersetzungsregeln ist noch keine Grammatik. Man schreibt eine Grammatik als 4-Tupel, also als Liste aus vier Teilen:

Terminale: Das sind die Zeichen, aus denen die fertigen Wörter bestehen. Sie werden nicht weiter abgeleitet. Normalerweise sind es Kleinbuchstaben oder Ziffern.

Nichtterminale (auch Variablen genannt): Das sind Zeichen, die noch durch andere Zeichen ersetzt werden müssen. Man schreibt sie als Großbuchstaben.

Produktionsregeln: Sie beschreiben, wie Nichtterminale ersetzt werden dürfen. Eine Regel schreibt man mit Pfeil, zum Beispiel α → β. Auf der linken Seite muss mindestens ein Nichtterminal stehen.

Startsymbol: Das ist ein bestimmtes Nichtterminal, bei dem jede Ableitung beginnt. Man nennt es normalerweise S.

Ein Zeichen kann nicht gleichzeitig Terminal und Nichtterminal sein. Manche Bücher fassen Terminale und Nichtterminale auch zu einem gemeinsamen Vokabular zusammen.

Definition

Nichtterminal

Ein Nichtterminal ist ein Zeichen, das noch zu Terminalen umgewandelt werden muss. Deshalb nennt man es gelegentlich auch Variable. Das Startsymbol ist immer ein Nichtterminal.

Beispiel: Eine Mini-Grammatik für Sätze

  1. 1Startsymbol: S
  2. 2Nichtterminale: S, P, V, O (P für Pronomen, V für Verb, O für Objekt)
  3. 3Terminale: Kleinbuchstaben, der Bindestrich (steht für ein Leerzeichen) und der Punkt
  4. 4Regeln: S → PVO
  5. 5Regeln: P → er- | sie- | es-
  6. 6Regeln: V → angelt- | baut- | näht-
  7. 7Regeln: O → blumen. | zierfische. | honig.

Merke: Eine Grammatik hat vier Teile: Terminale, Nichtterminale, Produktionsregeln und ein Startsymbol.

Teste dich

LeichtWas sind Terminale?
MittelWas legen die Produktionsregeln fest?

Alles auf einen Blick

Grammatik

  • Bestandteile

    Terminale, Nichtterminale, Produktionsregeln und Startsymbol bilden eine Grammatik.

  • Ableitung

    Sie beginnt mit dem Startsymbol, nutzt pro Schritt genau eine Regel und endet bei einem Wort.

  • Satzform

    Zwischenergebnis mit Terminalen und Nichtterminalen; ein Wort besteht nur aus Terminalen.

  • Wortproblem

    Ein Wort gehört zur Sprache, wenn eine Ableitung existiert.

  • Rechtsregulär

    Das Wort wächst am rechten Ende, die Nichtterminale entsprechen Zuständen.

  • Hierarchie

    Typ 0 bis 3 mit zunehmend strengeren Regeln.

Musteraufgabe · Schritt für Schritt

Palindrom abcacba ableiten (Palindrome aus a, b, c)

  1. 1Gegeben: Startsymbol S, Terminale a, b, c und die Regeln S → aSa | bSb | cSc | a | b | c | ε
  2. 2Gesucht: eine Ableitung für abcacba. Wir bauen das Wort von außen nach innen.
  3. 3S ⇒ aSa (Regel S → aSa)
  4. 4aSa ⇒ abSba (Regel S → bSb)
  5. 5abSba ⇒ abcScba (Regel S → cSc)
  6. 6abcScba ⇒ abcacba (Regel S → a)
  7. 7Satzformen dazwischen: aSa, abSba, abcScba. Die letzte Zeichenfolge hat kein S mehr, sie ist ein Wort.
  8. 8Antwort zum Wortproblem: Es gibt eine Ableitung, also gehört abcacba zur Sprache.

Fehler finden

Prüfe die Schritte mit der Regelmenge X → + | - 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.

Jede Ableitung beginnt beim Startsymbol, und das ist ein , denn es muss noch ersetzt werden. Ob ein Wort zur Sprache gehört, hängt daran, ob eine des Wortes existiert. Von den vier Typen 0 bis 3 sind die Regeln bei Typ am stärksten eingeschränkt.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Grammatik

LeichtZu welcher Art von Symbolen gehört das Startsymbol einer Grammatik?
MittelDie Do-Re-Mi-Grammatik hat die Regeln S → dA | rB | mC | ε, A → oS, B → eS, C → iS. Welches Wort lässt sich ableiten?
SchwerDie Sprache aus n-mal a, dann n-mal b (n ≥ 1) gehört in die Hierarchie. Welche Aussage stimmt?

Weiterlesen in Informatik