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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!