19.11.2014 Aufrufe

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

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.

Es gibt nichtreguläre <strong>Sprachen</strong>, deren Nicht-Regularität sich nicht mit dem Pumping-<br />

Lemma beweisen lässt. Zum Beipiel hat die Sprache<br />

L = {z ∈ {0, 1} ∗ | z = 1 k für ein k ≥ 0 oder z = 0 j 1 k2 für j ≥ 1 <strong>und</strong> k ≥ 0<br />

diese Eigenschaft. (Vgl. Buch von Wegener, S. 102, Bsp. 4.3.3.) Wir geben noch eine<br />

allgemeinere Version an, die für manche solche Fälle doch noch eine Handhabe liefert. Die<br />

Verwendung dieses Lemmas folgt demselben Schema wie oben formuliert.<br />

1.4.3 Satz (Verallgemeinertes Pumping-Lemma für reguläre <strong>Sprachen</strong>) Ist<br />

L regulär, so gibt es eine Zahl n ≥ 1, für die folgendes gilt: Ist x ∈ L, <strong>und</strong> ist x =<br />

y 0 y 1 · · · y n y n+1 für y 0 , . . . , y n+1 ∈ Σ ∗ , wo |y 1 | , . . . , |y n | ≥ 1, so gibt es Zahlen 0 ≤ k < l ≤ n<br />

derart dass für u := y 0 · · · y k , v := y k+1 · · · y l , w := y l+1 · · · y n+1 gilt: uv i w ∈ L für alle<br />

i ≥ 0.<br />

Beweis Analog zum Beweis von 1.4.1. □<br />

1.5 Abschlusseigenschaften für reguläre <strong>Sprachen</strong><br />

Dieses kurze Kapitel behandelt Operationen, die aus regulären <strong>Sprachen</strong> wieder reguläre<br />

<strong>Sprachen</strong> erzeugen. Wir fassen zusammen, was wir schon wissen.<br />

1.5.1 Satz L reg , die Klasse der regulären <strong>Sprachen</strong>, enthält alle endlichen <strong>Sprachen</strong> <strong>und</strong><br />

ist abgeschlossen unter Durchschnitt, Vereinigung, Komplementbildung, Konkatenation<br />

<strong>und</strong> Kleene-Abschluss.<br />

Beweis Für Abgeschlossenheit unter Konkatenation (sind L 1 , L 2 regulär, so auch L 1 L 2 )<br />

<strong>und</strong> Kleene-Abschluss (ist L regulär, so auch L ∗ ), siehe 1.3.7. Die anderen Eigenschaften<br />

wurden in 1.1.8 bewiesen.<br />

□<br />

Mitunter ist es günstig, reguläre <strong>Sprachen</strong> hierarchisch zu definieren. Ein primitives Beispiel<br />

ist folgendes: Die Sprache aller Bezeichner kann man erhalten, indem man die Sprache<br />

L 1 = L(B(B + Z) ∗ ) über dem Alphabet {B, Z} betrachtet, <strong>und</strong> dann in Wörter<br />

dieser Sprache für jedes vorkommende B einen beliebigen Buchstaben <strong>und</strong> für jedes vorkommende<br />

Z eine beliebige Ziffer einsetzt. Wir formalisieren <strong>und</strong> verallgemeinern diese<br />

Konstruktion.<br />

1.5.2 Definition Sei Σ = {a 1 , . . . , a n } <strong>und</strong> sei ∆ ein Alphabet. Eine Substitution ist<br />

eine Funktion f : Σ → P(∆ ∗ ), d. h. f(a i ) ist eine Sprache über ∆, für 1 ≤ i ≤ n.<br />

40

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!