Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Reguläre Grammatik

Eine reguläre Grammatik ist in der Informatik eine formale Grammatik vom Typ 3 der Chomsky-Hierarchie. Die von solchen Grammatiken erzeugten Sprachen heißen …

Inhalt6 Abschnitte
  1. 1. Grundidee und Definition
  2. 2. Rechtsreguläre Grammatiken
  3. 3. Linksreguläre Grammatiken
  4. 4. Erweiterte Formen und Regelmuster
  5. 5. Reguläre Sprachen und gleichwertige Modelle
  6. 6. Ableitung und Beispiel

Grundidee und Definition

Eine reguläre Grammatik ist eine formale Grammatik vom Typ 3 der Chomsky-Hierarchie. Die von ihr erzeugten Sprachen heißen reguläre Sprachen. Sie ist eine besondere kontextfreie Grammatik mit zusätzlichen Einschränkungen für die Produktionsregeln.

Eine reguläre Grammatik wird als G = (V, T, P, S) beschrieben. Dabei ist V das Vokabular, T das Terminalalphabet, N := V \ T die Menge der Nichtterminale (Variablen), P die Menge der Produktionsregeln und S ∈ N das Startsymbol. Jede linke Regelseite darf ausschließlich aus einem Nichtterminalsymbol bestehen: Für w₁ → w₂ ∈ P gilt w₁ ∈ N. Deshalb ist jede reguläre Grammatik auch kontextfrei.

Auf der rechten Seite einer Regel dürfen ein oder mehrere Terminalsymbole und höchstens ein Nichtterminalsymbol stehen. Regeln mit zwei Symbolen müssen dabei immer dieselbe Reihenfolge von Terminal- und Nichtterminalsymbol einhalten. Je nach dieser Reihenfolge unterscheidet man rechtsreguläre und linksreguläre Grammatiken. In der Praxis meint „regulär“ häufig verkürzt „rechtsregulär“, obwohl der Begriff grundsätzlich beide Varianten umfasst.

Rechtsreguläre Grammatiken

Bei einer rechtsregulären Grammatik darf die rechte Seite w₂ einer Produktion w₁ → w₂ nur aus dem leeren Wort, aus einem oder mehreren Terminalen oder aus mehreren Terminalen gefolgt von genau einem Nichtterminal bestehen. Die Ableitungen wachsen damit am rechten Ende einer Satzform.

Formal gilt für jede Regel:

∀(w₁ → w₂) ∈ P: (w₁ = S ∧ w₂ = ε) ∨ (w₁ ∈ N ∧ w₂ ∈ T⁺ ∪ T⁺N).

Dabei bezeichnet ε das leere Wort. Gleichbedeutend ist:

P ⊆ {(S, ε)} ∪ N × (T⁺ ∪ T⁺N).

Die scheinbar strengere Einschränkung

P ⊆ {(S, ε)} ∪ N × (T ∪ TN)

ist gleichmächtig. Sie erzeugt also dieselben formalen Sprachen. Mehrere Terminale können durch zusätzliche Nichtterminale schrittweise erzeugt werden. Aus Regeln der Form A → bB entstehen so Ableitungen A ⇝ wB und schließlich A ⇝ w, wobei w ein nichtleeres Wort aus Terminalzeichen ist.

Linksreguläre Grammatiken

Bei einer linksregulären Grammatik ist die Reihenfolge umgekehrt. Die rechte Seite darf nur das leere Wort, ein Terminalsymbol oder ein Nichtterminal gefolgt von einem Terminal sein. Die Satzformen werden somit linksseitig verlängert.

Die formale Bedingung lautet:

∀(w₁ → w₂) ∈ P: (w₁ ∈ N) ∧ (w₂ ∈ {ε} ∪ T* ∪ NT*).

Rechts- und linksreguläre Grammatiken unterscheiden sich daher in der Position des Nichtterminals. Beide Klassen sind jedoch gleich mächtig: Zu jeder linksregulären Grammatik gibt es eine rechtsreguläre Grammatik mit derselben erzeugten Sprache und umgekehrt. Die beiden Regeltypen dürfen in einer regulären Grammatik nicht vermischt werden.

Erweiterte Formen und Regelmuster

Erweiterte rechtsreguläre Grammatiken erlauben folgende Regeltypen:

  • B → a, wobei B ein Nichtterminal aus N und a ein Terminal aus Σ ist.
  • A → B, wobei A und B Nichtterminale aus N sind.
  • A → wB, wobei A und B aus N und w aus Σ* ist.
  • A → ε, wobei A aus N ist und ε das leere Wort bezeichnet.

Erweiterte linksreguläre Grammatiken sind dazu analog. Erweiterte reguläre Grammatiken sind gleichmächtig mit streng regulären Grammatiken und können daher ebenfalls genau alle regulären Sprachen erzeugen.

Die zulässigen Regeln lassen sich kürzer angeben. Im rechtsregulären Fall gilt:

P ⊆ N × ({ε} ∪ T ∪ TN).

Damit sind für X, Y ∈ N und a ∈ T die Muster X → aY, X → a und X → ε erlaubt. Im linksregulären Fall gilt:

P ⊆ N × ({ε} ∪ T ∪ NT).

Dort ersetzt X → aY das Muster X → Ya. Die jeweils erste Form heißt auch rechtslinear beziehungsweise linkslinear.

Reguläre Sprachen und gleichwertige Modelle

Eine von einer regulären Grammatik erzeugte Sprache heißt reguläre Sprache. Für jede reguläre Sprache existiert mindestens eine reguläre Grammatik. Reguläre Sprachen sind abgeschlossen unter Komplementbildung, Konkatenation, Schnitt, Vereinigung und Bildung des Kleeneschen Abschlusses.

Dieselben Sprachen können durch verschiedene Formalismen beschrieben werden. Jede reguläre Sprache wird von einem geeigneten deterministischen endlichen Automaten akzeptiert und damit notwendigerweise auch von einem nichtdeterministischen endlichen Automaten. Außerdem lässt sie sich durch einen geeigneten regulären Ausdruck beschreiben. Umgekehrt erzeugen reguläre Grammatiken genau die Sprachen, die von deterministischen oder nichtdeterministischen endlichen Automaten akzeptiert beziehungsweise von regulären Ausdrücken beschrieben werden. Dass diese vier Formalismen dieselbe Sprachklasse festlegen, erklärt die große Bedeutung regulärer Sprachen.

Ableitung und Beispiel

Bei einer Ableitung in einer rechtsregulären Grammatik bestehen alle Satzformen, die noch ein Nichtterminal enthalten, aus einem vorderen Wort aus Terminalen und genau einem abschließenden Nichtterminal. In jedem Schritt wird ein Terminal angefügt und das letzte Nichtterminal durch ein neues Nichtterminal oder durch das Ende der Ableitung ersetzt.

Die Beispielgrammatik G_doremi = ({S, A, B, C}, T, P, S) mit Tₐ = {d, e, i, m, o, r} erzeugt die Sprache L_doremi = {do, re, mi}*. Ihre Regeln sind:

  • S → dA | rB | mC | ε
  • A → oS
  • B → eS
  • C → iS

Für das Wort domire ∈ L_doremi ergibt sich die Ableitung:

S ⇝ dA ⇝ doS ⇝ domC ⇝ domiS ⇝ domirB ⇝ domireS ⇝ domire.

Die Grammatik arbeitet dabei wie ein endlicher Automat. Die Nichtterminale entsprechen Zuständen. Für jede Regel X → aY gibt es eine Transition (X, a, Y). Das Lesen eines Terminalsymbols führt also vom Zustand X in den Zustand Y; die Regel X → ε entspricht dem erfolgreichen Abschluss der Worterzeugung.

Lernvideos zu Reguläre Grammatik

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Formale Grammatik Formale Grammatiken werden mithilfe von Semi-Thue-Systemen angegeben in der Chomsky-Hierarchie klassifiziert. Chomsky-Hierarchie Sie ist eine Hierarchie von Klassen formaler Grammatiken, die formale Sprachen erzeugen, und wurde 1956 erstmals von Noam Chomsky beschrieben. Die … Reguläre Sprache In der theoretischen Informatik ist eine reguläre Sprache oder reguläre Menge oder erkennbare Sprache eine formale Sprache, die einigen Einschränkungen … Kontextfreie Grammatik In der Theorie der formalen Sprachen ist eine kontextfreie Grammatik (englisch context-free grammar, CFG) eine formale Grammatik, die nur solche … Ableitung (Informatik) Eine formale Grammatik ist ein mathematisches Modell, das eine Menge solcher ableitbaren Wörter festlegt. Diese Menge nennt man eine formale Sprache. Das … Komplement (Mengenlehre) In der Mengenlehre und anderen Teilgebieten der Mathematik sind zwei verschiedene Komplemente definiert: Das relative Komplement und das absolute Komplement. Endlicher Automat Ein endlicher Automat (EA, auch Zustandsmaschine, Zustandsautomat; englisch finite state machine, FSM) ist ein Modell eines Verhaltens, bestehend aus … Regulärer Ausdruck Ein regulärer Ausdruck (englisch regular expression, Abkürzung RegExp oder Regex) ist in der theoretischen Informatik eine Zeichenkette, …