Reguläre Sprachen, reguläre Ausdrücke - Links
Reguläre Sprachen, reguläre Ausdrücke - Links
Reguläre Sprachen, reguläre Ausdrücke - Links
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Was bisher geliefert wurde, entspricht sehr wenig diesem Bild. Das in der voranstehenden Einführung<br />
enthaltene Beispiel [S.2] eines <strong>reguläre</strong>n Ausdrucks wirkt einerseits kryptisch und damit hässlich,<br />
andererseits in gewisser Weise zufällig: warum hat man sich gerade für diesen Satz von Notationen<br />
entschieden, mit dem man manche <strong>Sprachen</strong> darstellen kann, andere aber nicht? In diesem Kapitel<br />
wird sich herausstellen, dass es darauf nur in geringem Maße ankommt. Auch andere Sätze von<br />
Notationen hätten vielleicht zum selben Ergebnis geführt. Es gibt nämlich eine ganze Reihe von<br />
Eigenschaften, die die <strong>reguläre</strong>n, also die durch <strong>reguläre</strong> <strong>Ausdrücke</strong> definierbaren <strong>Sprachen</strong> haben und<br />
andere <strong>Sprachen</strong> eben nicht. Viele Notationen, die man hinzufügen könnte, würden am beschreibbaren<br />
Sprachumfang nichts ändern, und man könnte umgekehrt manches auch weglassen und damit zwar<br />
Einbußen bei der Bequemlichkeit der Notation hinnehmen, nicht aber bei dem, was überhaupt<br />
darstellbar ist.<br />
Der Begriff der <strong>reguläre</strong>n Sprache lässt sich durchaus auch ganz anders definieren als dadurch, dass es<br />
eben die <strong>Sprachen</strong> sind, die sich mit einem Satz mehr oder weniger willkürlich ausgewählter<br />
Operatoren beschreiben lassen. In diesem Kapitel werden ganz verschiedene Begriffsbildungen<br />
vorgestellt, von denen sich dann herausstellen wird, dass sie in ganz verschiedener Weise dasselbe<br />
aussagen. In der Mathematik ist so eine Situation, nämlich dass sich mehrere sehr verschieden<br />
aussehende Begriffswelten als äquivalent erweisen, oft ein Indiz dafür, dass der zugrunde liegende<br />
Begriff ein wichtiger Grundbegriff der Theorie ist. So ist auch hier: die Menge der <strong>reguläre</strong>n <strong>Sprachen</strong><br />
weist eine so hohe Anzahl von Gesetzmäßigkeiten auf wie kaum eine andere Klasse formaler<br />
<strong>Sprachen</strong>.<br />
Die Lektüre dieses Kapitels dient hauptsächlich der Bildung und nicht so sehr der Ausbildung des<br />
Lesers. Für die meisten praktischen Anwendungen kommt man ohne diese Kenntnisse aus. Höchstens<br />
bei der Konstruktion sehr verzwickter <strong>reguläre</strong>r <strong>Ausdrücke</strong> können sie von Nutzen sein, wie die<br />
anschließenden Beispiele [S.35] belegen, besonders das erste.<br />
Endliche Automaten<br />
Wir stellen uns zunächst eine Frage, die mit <strong>reguläre</strong>n <strong>Ausdrücke</strong>n nicht zu tun hat - oder wenigstens<br />
nicht zu tun zu haben scheint. Bei manchen <strong>Sprachen</strong>, zum Beispiel der deutschen, kann man sich<br />
beliebig tief in Nebensätze verschachteln, und man braucht ein unbegrenzt großes Gedächtnis, um sich<br />
für jeden angefangenen Satz merken zu können, wie er potenziell weitergeht. In der Praxis gibt es<br />
natürlich nur endlich viele Fortsetzungen: jeder Redner wird schon aufgrund seiner beschränkten<br />
Redegeschwindigkeit und ebenfalls beschränkten Lebenszeit Sätze nur beschränkt tief verschachteln<br />
können - sogar nur endlich viele verschiedene Sätze sagen können -, aber von der Sprache her könnte<br />
man unbeschränkt viele Satzanfänge konstruieren, die alle nach unterschiedlichen<br />
Vervollständigungen verlangen. Ein viel einfacheres Beispiel sind mathematische Formeln: es müssen<br />
rechts von einer beliebigen Stelle in der Formel so viele Klammern geschlossen werden, wie links<br />
davon geöffnet wurden, was eine unendliche Anzahl von Möglichkeiten bedeutet. Wohlgemerkt: es<br />
geht nicht nur darum, dass auf ein gegebenes Anfangsstück unendlich viele Enden möglich sind (das<br />
ist immer erreichbar, wenn die Sprache selbst unendlich viele Wörter enthält), sondern dass man<br />
unendlich viele Anfangsstücke präsentieren kann, die alle verschiedene Mengen von Ergänzungen zu<br />
korrekten Wörtern der Sprache haben. Mit dem nächsten Beispiel wird das hoffentlich viel klarer. Nun<br />
ergibt sich die Frage, ob es nicht besonders einfache <strong>Sprachen</strong> gibt, bei denen das nicht vorkommt.<br />
Endliche <strong>Sprachen</strong>, also <strong>Sprachen</strong> mit endlich vielen Wörtern, haben offensichtlich diese Eigenschaft.<br />
Aber auch die Sprache aus dem Beispiel [S.2] in der Einführung gehört dazu, obwohl sie unendlich ist.<br />
An jeder Stelle des Lesens ist man nämlich entweder:<br />
22