Reguläre Sprachen, reguläre Ausdrücke - Links
Reguläre Sprachen, reguläre Ausdrücke - Links
Reguläre Sprachen, reguläre Ausdrücke - Links
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Die vorkommenden Zeichen (genauer: die <strong>Sprachen</strong>, die nur ein Wort der Länge 1 enthalten)<br />
werden nach Regel 2 durch <strong>reguläre</strong> <strong>Ausdrücke</strong> beschrieben, die einfach aus dem jeweiligen<br />
Zeichen bestehen.<br />
Die <strong>Sprachen</strong>, die aus lauter einzelnen Zeichen (genauer: aus lauter Wörtern der Länge 1)<br />
bestehen, werden mit Regel 5 daraus gebildet. Das sind hier:<br />
die Vorzeichen: +|-<br />
die Ziffern: 0|1|2|3|4|5|6|7|8|9<br />
Ketten beliebiger Länge können daraus nach Regel 4 mit Hilfe des Kleene’schen Abschlusses<br />
gebildet werden:<br />
Ziffernketten, evtl. auch leer: (0|1|2|3|4|5|6|7|8|9)*<br />
Daraus mit Regel 3 die Ziffernketten der Mindestlänge 1:<br />
(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*<br />
der leere String, der für optionale Teile gebraucht wird, ebenfalls nach Regel 4: Ø*<br />
Das erschließt sich zugegebenermaßen erst beim Nachdenken; in der Praxis erweitert man oft<br />
deswegen die Definition der <strong>reguläre</strong>n <strong>Ausdrücke</strong> um ein Zeichen für den leeren String, meist das<br />
kleine griechische Epsilon, oder man erlaubt in bestimmten Zusammenhängen, den leeren String<br />
einfach durch sich selbst zu bezeichnen.<br />
ein optionales Vorzeichen, nach dem Voranstehenden: Ø*|+|-<br />
oder mit der eben vorgeschlagenen Erweiterung: |+|-<br />
und das ganze Ding, vor allem mittels Regel 3 gebildet:<br />
(Ø*|+|-)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(Ø*|,(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*)<br />
Wie man sieht, stört es kein bisschen, dass die Definition den zu definierenden Begriff selbst enthält,<br />
schließlich wird ja ein <strong>reguläre</strong>r Ausdruck höchstens unter Berufung auf einen bereits gebildeten<br />
anderen, nie aber auf sich selbst konstruiert. Manchmal wird übrigens bei einer rekursiven Definition<br />
explizit dazugeschrieben, dass nur das damit definiert ist, was sich durch endlich viele Anwendungen<br />
der Regeln bilden lässt; aber auch wenn es wie hier nicht dabeisteht, ist es immer so gemeint.<br />
Der <strong>reguläre</strong> Ausdruck ist viel länger geworden als in der Einleitung [S.2] . In der praktischen<br />
Anwendung bevorzugt man nämlich abkürzende, übersichtliche Notierungen, während in der Theorie<br />
möglichst wenige verschiedene Operatoren eingesetzt werden, um die Herleitung von Sätzen einfacher<br />
zu gestalten.<br />
Diesem Ziel dient auch die folgende Festlegung: Wir nennen den <strong>reguläre</strong>n Ausdruck einfach, wenn er<br />
die Operatoren Durchschnitt und Mengendifferenz nicht enthält; ein verallgemeinerter <strong>reguläre</strong>r<br />
Ausdruck ist einer, der diese beiden Operatoren auch enthalten darf. Es wird sich herausstellen, dass<br />
man mit verallgemeinerten <strong>reguläre</strong>n <strong>Ausdrücke</strong>n keine <strong>Sprachen</strong> beschreiben kann, die man nicht<br />
auch mit einfachen <strong>reguläre</strong>n <strong>Ausdrücke</strong>n beschreiben kann. Die mit <strong>reguläre</strong>n <strong>Ausdrücke</strong>n<br />
beschreibbaren <strong>Sprachen</strong> heißen <strong>reguläre</strong> <strong>Sprachen</strong>. Das sind gerade diejenigen <strong>Sprachen</strong>, die von<br />
deterministischen endlichen Automaten akzeptiert werden, womit der Zusammenhang des<br />
vorangegangenen Abschnittes zum Thema des gesamten Artikels endlich hergestellt wäre.<br />
32