Reguläre Grammatik

Reguläre Grammatik

Eine reguläre Grammatik ist eine formale Grammatik vom Typ 3 der Chomsky-Hierarchie. Die von solchen Grammatiken erzeugte Sprachen heißen reguläre Sprachen.[1]

Inhaltsverzeichnis

Definition

Eine reguläre Grammatik G = \left(N,\Sigma,P,S\right) ist eine kontextfreie Grammatik, deren Produktionsregeln bestimmten weiteren Einschränkungen genügen. Es gibt zwei verschiedene Arten von Einschränkungen, die dann spezifisch rechtsreguläre bzw. linksreguläre Grammatiken definieren. Da man sich aus praktischen Gründen bei Anwendungen meist an die rechtsregulären Grammatiken hält, sagt man oft auch kurz „regulär“, wo man eigentlich „rechtsregulär“ meint.[2]

Für Produktionsregeln w_1\to w_2 \in P regulärer Grammatiken darf die linke Seite immer nur ein Nichtterminalsymbol sein, w_1\in N. Damit ist jede reguläre Grammatik auch kontextfrei. Außerdem darf die rechte Seite jeder Regel höchstens ein Terminal- und ein Nichtterminalsymbol enthalten. Alle Regeln mit zwei Symbolen auf ihrer rechten Seite müssen die gleiche Reihenfolge von Terminal- und Nichtterminalsymbol einhalten.

Rechtsreguläre Grammatiken

Bei rechtsregulären Grammatiken darf die rechte Seite w2 einer Produktion w_1 \to w_2 nur das leere Wort, ein Terminalsymbol oder ein Terminal gefolgt von einem einzigen Nichtterminal sein. Ableitungen in solchen Grammatiken wachsen also am rechten Ende einer Satzform.

Formal kann man die Bedingung an die Produktionsmenge P einer rechtsregulären Grammatik G so ausdrücken:

\forall \left(w_1 \to w_2\right) \in P : \left(w_1 \in N\right) \and \left(w_2 \in \{\varepsilon\} \cup \Sigma \cup \Sigma N\right)

ε steht dabei für das leere Wort.

Linksreguläre Grammatiken

Bei linksregulären Grammatiken darf umgekehrt die rechte Seite w2 einer Produktion nur das leere Wort, ein Terminalsymbol oder ein Nichtterminal gefolgt von einem Terminal sein. Hier verlängern also die Ableitungen die Satzformen linksseitig.

Formal sehen die Bedingungen folgendermaßen aus:

\forall \left(w_1 \to w_2\right) \in P : \left(w_1 \in N\right) \and \left(w_2 \in \{\epsilon\} \cup N \Sigma \cup \Sigma\right)

Weitere Schreibweisen

Die Bedingung für reguläre Grammatiken lässt sich auch kürzer notieren, indem man die Menge der gültigen Produktionsregeln definiert:

P \subseteq N \times (\{\varepsilon\}\cup \Sigma \cup \Sigma N) (rechtsregulärer Fall)
P \subseteq N \times (\{\varepsilon\} \cup \Sigma \cup N\Sigma) (linksregulärer Fall)

Für beliebige X, Y\in N und a \in \Sigma sind also im rechtsregulären Fall nur folgende Muster von Regeln erlaubt:

  1. X \to aY
  2. X \to a
  3. X \to \varepsilon

Für linksreguläre Grammatiken tritt anstelle des erstgenannten Musters das folgende ein:

  1. X \to Ya

Die jeweils erste Produktion ist rechts- beziehungsweise linksregulär (auch rechts- und linkslinear genannt). Eine reguläre Grammatik darf nicht Regeln nach beiden Mustern für 1. mischen.

Reguläre Sprachen

Eine von einer regulären Grammatik erzeugte Sprache nennt man reguläre Sprache. Für jede reguläre Sprache existiert auch immer mindestens eine reguläre Grammatik.

Die regulären Sprachen erweisen sich als abgeschlossen unter Komplementbildung, Konkatenation, Schnitt, Vereinigung und Bildung des Kleeneschen Abschlusses.

Jede reguläre Sprache wird auch von einem geeigneten deterministischen – und dann notwendigerweise auch von einem nichtdeterministischen – endlichen Automaten akzeptiert und von einem geeigneten regulären Ausdruck beschrieben. Umgekehrt werden die Sprachen, die ein deterministischer oder nichtdeterministischer endlicher Automat akzeptiert bzw. die ein regulärer Ausdruck beschreibt, auch von einer geeigneten regulären Grammatik erzeugt. Dass in den regulären Sprachen die durch vier verschiedene Formalismen definierten Sprachklassen in einer Klasse zusammenfallen, bringt ihnen ihre große Bedeutung ein.

Auch die Klassen der rechtsregulären und der linksregulären Grammatiken fallen zusammen: Zu jeder linksregulären Grammatik gibt es eine rechtsreguläre Grammatik, die dieselbe Sprache erzeugt, und umgekehrt.

Beschreibung des Ableitungsvorgangs

Verfolgt man den Verlauf einer Ableitung in einer linksregulären Grammatik, so bestehen alle Satzformen, die überhaupt noch ein Nichtterminalsymbol besitzen, aus einem Wort aus Terminalen vorneweg, gefolgt von einem einzigen Nichtterminal. Das abgeleitete Wort entsteht also schrittweise durch Anfügen eines Terminalsymbols auf der rechten Seite des initialen Terminalworts und gleichzeitiger Änderung des finalen Nichtterminals.

Ein deterministischer Automat, der Ldoremi erkennt

Die folgende rechtsreguläre Beispielgrammatik mit Σ = {d,e,i,m,o,r} beschreibt die Sprache Ldoremi = {do,re,mi} * .

Gdoremi = ({S,A,B,C},Σ,P,S) mit folgenden Regeln in P:

S \to dA | rB | mC | \varepsilon
A \to oS
B \to eS
C \to iS

Das Wort domire \in L_{doremi} hat folgende Ableitung:

S\Rightarrow dA \Rightarrow doS \Rightarrow domC \Rightarrow domiS \Rightarrow domirB \Rightarrow domireS \Rightarrow domire

Dieser Prozess entspricht dem Einlesen des Wortes in einem endlichen Automaten. Es gibt einen entsprechenden Automaten, dessen Nichtterminalsymbole den Zuständen entsprechen und in dem es für jede Regel X \to aY eine Transition (X,a,Y) im Automaten gibt. Der Automat zur Beispielgrammatik ist im Bild dargestellt.

Quellen

  1. Lutz Engelmann (Hrsg.): Kleiner Leitfaden Informatik und ihre Anwendung. paetec, Berlin 2000, ISBN 3-89517-615-X.
  2. Peter Rechenberg, Gustav Pomberg (Hrsg.): Informatik-Handbuch. Hanser, München/Wien 2006, ISBN 978-3-446-40185-3.

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Reguläre Sprache — In der theoretischen Informatik ist eine reguläre Sprache eine formale Sprache, die einigen Einschränkungen unterliegt. Reguläre Sprachen können von endlichen Automaten erkannt werden und von regulären Ausdrücken beschrieben werden.… …   Deutsch Wikipedia

  • Kontext-sensitive Grammatik — 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 und bezeichnet eine Hierarchie von Klassen… …   Deutsch Wikipedia

  • Typ-0-Grammatik — 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 und bezeichnet eine Hierarchie von Klassen… …   Deutsch Wikipedia

  • Linkslineare Grammatik — In der theoretischen Informatik werden formale Grammatiken vom Typ 3 der Chomsky Hierarchie auch reguläre Grammatiken genannt. Die von diesen Grammatiken erzeugbaren Sprachen heißen dementsprechend reguläre Sprachen.[1] Definition Eine reguläre… …   Deutsch Wikipedia

  • Rechtslineare Grammatik — In der theoretischen Informatik werden formale Grammatiken vom Typ 3 der Chomsky Hierarchie auch reguläre Grammatiken genannt. Die von diesen Grammatiken erzeugbaren Sprachen heißen dementsprechend reguläre Sprachen.[1] Definition Eine reguläre… …   Deutsch Wikipedia

  • Kommunizierende Grammatik-Systeme — bestehen aus mehreren formalen Grammatiken, die über eine Möglichkeit verfügen, miteinander zu kommunizieren. Die Art der Kommunikation ist vom jeweiligen System abhängig und kann die generative Mächtigkeit der einzelnen Grammatiken erweitern.… …   Deutsch Wikipedia

  • Kommunizierendes Grammatik-System — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Generative Grammatik — ist der Oberbegriff für Grammatik Modelle, mit deren Regelsystem sich die Sätze einer Sprache – im Gegensatz zu den ausschließlich die Phänomene beschreibenden Sprachlehren – generieren lassen (gebildet aus lat. generare = erzeugen und griech.… …   Deutsch Wikipedia

  • Formale Grammatik — Formale Grammatiken sind mathematische Modelle von Grammatiken, die mit Hilfe des Semi Thue Systems angegeben werden und durch die formale Sprachen beschrieben und erzeugt werden können. Sie werden in der theoretischen Informatik, insbesondere in …   Deutsch Wikipedia

  • Chomsky-Hierarchie — 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… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”