Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
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