02.09.2013 Aufrufe

Reguläre Sprachen, reguläre Ausdrücke - Links

Reguläre Sprachen, reguläre Ausdrücke - Links

Reguläre Sprachen, reguläre Ausdrücke - Links

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!