Reguläre Sprache
aus Wikipedia, der freien Enzyklopädie
Eine reguläre Sprache ist eine formale Sprache, die einer Reihe von relativ strengen Einschränkungen unterliegt. Ob eine Sprache mehr oder weniger eingeschränkt ist, ergibt sich aus ihrer Stellung innerhalb der Chomsky-Hierarchie. Meint man die Menge aller regulären Sprachen, so spricht man auch von der Klasse der regulären Sprachen. Die Klasse der regulären Sprachen gehört innerhalb der Chomsky-Hierarchie den am meisten eingeschränkten Sprachklassen vom sogenannten Typ 3 an. Sie bilden damit eine echte Teilmenge der kontextfreien Sprachen, die weniger eingeschränkt sind. Dennoch handelt es sich um eine sehr natürliche Sprachklasse, die in der Linguistik, der Informatik, sowie auch bei der Konstruktion mechanischer Geräte eine hohe praktische Bedeutung erlangt hat.
Im Unterschied zu einer natürlichen Sprache bezeichnet man im Rahmen der Theorie der formalen Sprachen beliebige Symbolfolgen als Wort. Die Menge der für ein Wort erlaubten Symbole heißt Alphabet. Eine Menge von Wörtern, die aus solchen erlaubten Symbolen bestehen, nennt man eine formale Sprache. Eine Sprache L über einem Alphabet Σ, das heißt eine Menge von Wörtern , heißt dann regulär, wenn sie eine der folgenden äquivalenten Bedingungen erfüllt:
- L wird von einer regulären Grammatik erzeugt. Die regulären Grammatiken sind gerade die rechtslinearen und linkslinearen Grammatiken.
- L wird von einem endlichen Automaten akzeptiert.
- L kann durch einen regulären Ausdruck dargestellt werden.
- Die auf Σ * durch definierte Relation RL hat endlichen Index (Satz von Myhill-Nerode).
Will man für eine gegebene Sprache nachweisen, dass sie regulär ist, so muss man sie demnach auf eine reguläre Grammatik, einen endlichen Automaten oder einen regulären Ausdruck oder auf bereits bekannte reguläre Sprachen zurückführen. Für einen Nachweis, dass eine Sprache L nicht regulär ist, ist es meistens zweckmäßig, das Pumping-Lemma für reguläre Sprachen zu benutzen oder in schwierigeren Fällen nachzuweisen, dass der Index von RL nicht endlich ist.
Inhaltsverzeichnis |
[Bearbeiten] Beispiele
Sei Σ ein Alphabet.
- Alle endlichen Sprachen , sind regulär.
- Alle kontextfreien Sprachen über einem unregulären Alphabet, d.h. , sind regulär.
[Bearbeiten] Abschlusseigenschaften
Die Klasse der regulären Sprachen ist abgeschlossen unter den gewöhnlichen Mengenoperationen Vereinigung, Durchschnitt und Komplement. Darüber hinaus gilt die Abgeschlossenheit auch für die Konkatenation und den sogenannten Kleene-Stern. Im einzelnen gilt also:
- Die Vereinigung zweier regulärer Sprachen L1 und L2 ist regulär.
- Der Durchschnitt zweier regulärer Sprachen L1 und L2 ist regulär.
- Das Komplement einer regulären Sprache L ist regulär.
- Die Konkatenation zweier regulärer Sprachen L1 und L2 ist regulär.
- Der Kleene-Stern L * einer regulären Sprache L, d.h. die beliebig häufige Konkatenation von Wörtern aus der Sprache L vereinigt mit dem leeren Wort, ist regulär.
[Bearbeiten] Typische Entscheidungsprobleme
Seien L, L1 und L2 gegebene reguläre Sprachen über dem Alphabet Σ. Dann ergeben sich folgende typische Problemstellungen:
- Wortproblem: Gehört ein Wort zu L?
- Leerheitsproblem: Ist L die leere Menge?
- Endlichkeitsproblem: Besteht L aus einer endlichen Menge von Wörtern?
- Äquivalenzproblem: Gilt L1 = L2?
Alle diese Probleme sind entscheidbar. Sie gelten — mit einer Ausnahme — auch noch für die analog formulierten Probleme über den kontextfreien Sprachen. Die Ausnahme ist das Äquivalenzproblem, das bereits ab den kontextfreien Sprachen (also der nach der Chomsky-Hierarchie nächst höheren Sprachklasse) nicht mehr entscheidbar ist.
[Bearbeiten] Literatur
- Michael Sipser: Introduction to the Theory of Computation, PWS Publishing (1997) - Chapter 1, Regular Languages
- Uwe Schöning: Theoretische Informatik - kurzgefasst, Spektrum (2001) - Kapitel 1.2, Reguläre Sprachen
- John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie, Pearson Studium (2002)