Eigenschaften regulärer Sprachen

Ähnliche Dokumente
Grenzen der Regularität

Theorie der Informatik

Das Pumping-Lemma Formulierung

1 Eliminieren von ɛ-übergängen

Endliche Automaten Jörg Roth 101

Die mathematische Seite

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Diskrete Mathematik. Anna-Lena Rädler Christina Kohl Georg Moser Christian Sternagel Vincent van Oostrom

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Reguläre Sprachen und endliche Automaten

Automaten und Formale Sprachen ε-automaten und Minimierung

Formale Sprachen und endliche Automaten

Diskrete Mathematik. Arne Dür Kurt Girstmair Simon Legner Georg Moser Harald Zankl

Induktive Definition

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

Theoretische Informatik I

Homomorphismen. Defnition: Σ und Γ seien zwei endliche Alphabete, und h sei eine Abbildung h : Σ Γ. Wir definieren die folgenden Sprachen:

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

Vorlesungsmitschrift zur Vorlesung Theoretische Informatik I vom 23. Juni Christian Franz

Automaten und Formale Sprachen SoSe 2013 in Trier

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

Abschlusseigenschaften

Ogden s Lemma: Der Beweis (1/5)

Grundlagen der Theoretischen Informatik

Kontextfreie Sprachen werden von PDAs akzeptiert

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Software Engineering Ergänzung zur Vorlesung

4. Übung zur Vorlesung Informatik III am

Automaten und Formale Sprachen SoSe 2013 in Trier

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK

5.2 Endliche Automaten

Grundlagen der Theoretischen Informatik

Berechenbarkeitstheorie 1. Vorlesung

DisMod-Repetitorium Tag 4

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Automaten und Formale Sprachen SoSe 2013 in Trier

2.3 Abschlusseigenschaften

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Einführung in die Theoretische Informatik

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Normalformen für kontextfreie Grammatiken. Noam CHOMSKY, Sheila GREIBACH. Bäume. Ableitungen in kontextfreien Grammatiken. Grammatik G = (N,T,P,S)

Informatik III - WS07/08

Noam CHOMSKY, Sheila GREIBACH

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Das Pumping Lemma: Ein Anwendungsbeispiel

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

4.2.4 Reguläre Grammatiken

Operationen auf endlichen Automaten und Transduktoren

Grundlagen der theoretischen Informatik

2.2 Reguläre Sprachen Endliche Automaten

FORMALE SYSTEME. Der Satz von Myhill und Nerode. Automaten verkleinern mit Quotientenbildung. Verschiedene Äquivalenzrelationen

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Übungsblatt 1. Lorenz Leutgeb. 30. März 2015

Die Nerode-Relation und der Index einer Sprache L

Musterlösung Informatik-III-Nachklausur

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Grundlagen der theoretischen Informatik

Das Halteproblem für Turingmaschinen

Theoretische Grundlagen der Informatik

Schnitt- und Äquivalenzproblem

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Reguläre Grammatiken/Sprachen und endliche Automaten

Formale Sprachen. Reguläre Sprachen. Rudolf FREUND, Marian KOGLER

Operationen auf endlichen Akzeptoren und Transduktoren

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 12

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

2.2 Nichtdeterministische endliche Automaten

Theoretische Grundlagen der Informatik

11.1 Kontextsensitive und allgemeine Grammatiken

Theorie der Informatik

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

WS07/08 Automaten und Formale Sprachen 5. Vorlesung

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

1 Lokale Sprachen. 2 Verallgemeinerung

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 19.

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Transkript:

= {} {0} {0} {} = {0} {} Für L(A) benötigen wir gemäß Gleichung.3 die Mengen R 3 und R3 3. R 3 = R R3 (R33) R3 = {0} {00} {0} {} ({ε} {0, } {0} {}) {0, } {00} = {0} {00} {0} {} ({0, } {0} {}) {0, } {00} R3 3 = R3 R 3 (R 33 ) R33 = {0} {} {0} {} ({ε} {0, } {0} {}) ({ε} {0, } {0} {}) = {0} {} ({0, } {0} {}) Die von A akzeptierte Sprache lässt sich somit durch den handlichen Ausdruck L(A) = R 3 R3 3 = {0} {00} {0} {} ({0, } {0} {}) ({ε} {0, } {00} ) beschreiben..4.7. Eigenschaften regulärer Sprachen Die breite Verwendung regulärer Sprachen im Informatik-Alltag hängt einerseits mit ihrer Ausdrucksstärke zusammen, die die Beschreibung relevanter Sprachen erlaubt, andererseits besitzen reguläre Sprachen viele nützliche Eigenschaften, von denen wir im Folgenden einige diskutieren werden. Abschlusseigenschaften Per Definition sind reguläre Sprachen abgeschlossen hinsichtlich Vereinigung, Verkettung und dem Stern-Operator (siehe Definition.0). Das heißt, die Vereinigung oder die Verkettung zweier regulärer Sprachen ist wieder regulär, ebenso wie die Sprache, die man erhält, wenn man Wörter einer Sprache in allen Varianten aneinanderhängt. Darüberhinaus sind reguläre Sprachen aber auch bezüglich den anderen üblichen Mengenoperation abgeschlossen..3 Satz Reguläre Sprachen sind abgeschlossen gegenüber Komplementbildung, Durchschnitt und Differenz. Das Komplement einer Sprache L über einem Alphabet Σ ist die Sprache L, die alle Wörter in Σ enthält, die nicht in L sind: L = Σ L = {w Σ w / L}. Der Beweis der Abgeschlossenheit bzgl. Komplementbildung lässt sich leicht mit Hilfe endlicher Automaten führen. Da L regulär ist, gibt es einen DEA A zu L, d.h., der Automat A erreicht mit einem Eingabewort w vom Startzustand aus einen Endzustand (δ (q 0, w) F A ), wenn w in der Sprache liegt, und er erreicht einen Nicht-Endzustand (δ (q 0, w) / F A ), wenn w nicht in der Sprache liegt. Betrachten wir nun den Automaten A, der genauso 3

digit q 0 digit q. q 6 digit ε ε digit +, ε, - q q 3 q E 4 digit q 5 Abbildung.6.: Endlicher Automat für die gespiegelten Realzahlen (Beispiel.34) definiert ist wie A, nur dass seine Endzustände genau den Nicht-Endzuständen von A entsprechen (F A = Q F A ). Offensichtlich akzeptiert A genau jene Worte in Σ, die A nicht akzeptiert, d.h., die von A akzeptierte Sprache ist Σ L. Da wir aber in Abschnitt.4.6 festgestellt haben, dass jede von einem endlichen Automaten akzeptierte Sprache regulär ist, haben wir gezeigt, dass das Komplement einer regulären Sprache wieder regulär ist. Die Abgeschlossenheit bezüglich Durchschnitt und Differenzbildung lässt sich über die normalen Mengengesetze auf Komplement und Vereinigung zurückführen: L L = L L L L = L L.33 Satz Reguläre Sprachen sind abgeschlossen gegenüber Spiegelung. Die gespiegelte Sprache L r zu einer Sprache L erhält man, indem man jedes Wort spiegelt (umdreht): 6 L r = {w r w L} (s s n ) r = s n s für s,..., s n Σ Um einzusehen, dass L r regulär ist, wenn L es ist, gehen wir von einem beliebigen endlichen Automaten A aus, der L akzeptiert. Ohne Beschränkung der Allgemeinheit können wir annehmen, dass A nur einen Endzustand besitzt. Falls nicht, fügen wir einen neuen Zustand hinzu, der mit ε-übergängen von den ursprünglichen Endzuständen aus erreichbar ist, und machen ihn zum neuen und einzigen Endzustand. Einen Automaten für die gespiegelte Sprache erhalten wir nun, indem wir Start- und Endzustand vertauschen und alle Zustandsübergänge umkehren..34 Beispiel Der nicht-deterministische Automat für die Realzahlen in Abb..6 besitzt zwei Endzustände. Wir führen einen neuen Endzustand q 6 samt ε-übergängen von q und q 5 ein. Anschließend vertauschen wir die Rollen von Start- und Endzustand und kehren alle Kantenrichtungen um. Der so erhaltene Automat (Abb..6) akzeptiert die Sprache der gespiegelten Realzahlen..35 Satz Reguläre Sprachen sind abgeschlossen unter Homomorphismen. 6 Das hochgestellte r steht für reverse. 3

q 0 X X Y q Y q Y X ε q 4 Z X X X 3 5 Abbildung.7.: Endlicher Automat für die Sprache h(real) (Beispiel.36) Seien Σ und Γ zwei Alphabete. Ein Homomorphismus ist eine Funktion h: Σ Γ, d.h., ein Homomorphismus bildet einzelne Symbole aus Σ auf Wörter über Γ ab. Ein Homomorphismus lässt sich in naheliegender Weise auf Wörter über Σ erweitern: h(s s n ) = h(s ) h(s n ) wobei s,..., s n Symbole aus Σ sind. Das homomorphe Bild einer Sprache L erhält man durch Anwenden des Homomorphismus auf jedes Wort der Sprache: h(l) = {h(w) w L} Satz.35 sagt nun aus, dass für jede reguläre Sprache L und jeden Homomorphismus h auch h(l) regulär ist. Am direktesten lässt sich das an der graphischen Darstellung eines deterministischen Automaten für L einsehen. Jedes Wort s s n in L entspricht einem Pfad vom Startknoten zum Endknoten, dessen Kanten der Reihe nach mit s, s,..., s n beschriftet sind. Um den Automaten für h(l) zu erhalten, ersetzen wir jede Kantenbeschriftung s durch h(s). Das Ergebnis ist im Allgemeinen noch kein Automat nach unserer Definition, da nun einige Kanten mit Worten beschriftet sind, die länger als ein Symbol sind. In diesen Fällen ersetzen wir die Einzelkanten durch eine Kantenfolge mit Hilfszuständen, sodass jede Kante wieder nur mit einem Symbol beschriftet ist. Gilt etwa h(s) = a a a k, wird ein Übergang p s im ursprünglichen Automaten ersetzt durch die Kantenfolge p a p a p a k q im neuen Automaten, wobei die Zustände p,..., p k neue Hilfszustände sind. Offenbar akzeptiert der so entstandene Automat die Sprache h(l), letztere ist also regulär..36 Beispiel Sei real die in Beispiel. definierte Sprache der Realzahlen, und sei h ein Homomorphismus definiert durch h(d) = X für d {0,..., 9}, h(e) = ε, h(.) = YYY und h(+) = h(-) = Z. Aus dem Automaten in Abb..5 für die Sprache real erhalten wir mit dem oben beschriebenen Verfahren den Automaten in Abbildung.7 für die Sprache h(real ). 33

Elementare Entscheidungsprobleme Unter einem Entscheidungsproblem versteht man eine Ja/Nein-Frage. Wichtige Entscheidungsprobleme im Zusammenhang mit formalen Sprachen sind Fragen wie etwa, ob ein Wort in einer Sprache liegt (Parsing-Problem), ob zwei Ausdrücke dieselbe Sprache beschreiben (Äquivalenzproblem) oder ob die durch einen Ausdruck beschriebene Sprache leer, endlich oder unendlich ist. Für reguläre Sprachen sind all diese Fragen entscheidbar, d.h., man kann Algorithmen angeben, die diese Fragen immer eindeutig beantworten..37 Satz Sei L eine reguläre Sprache, die durch einen der beschriebenen Formalismen spezifiziert ist, und sei w ein Wort. Es gibt einen Algorithmus, der feststellt, ob w in L liegt oder nicht. Ein Entscheidungsverfahren besteht darin, einen Automaten für die Sprache L zu konstruieren und zu überprüfen, ob er das Wort w akzeptiert oder nicht..38 Satz Es gibt einen Algorithmus, der von einer regulären Sprache, die durch einen der beschriebenen Formalismen spezifiziert ist, feststellt, ob sie leer, endlich oder unendlich ist. Diese Fragen können einfach beantortet werden, wenn die Sprache durch einen minimalen deterministischen Automaten spezifiziert wird; wie wir gesehen haben, existiert eine derartige Darstellung immer. Die reguläre Sprache ist leer genau dann, wenn der minimale Automat keinen Endknoten enthält. Enthält der Graph der Übergangsfunktion einen Zyklus, ist die Sprache unendlich, andernfalls endlich..39 Satz Es gibt einen Algorithmus, der für je zwei reguläre Sprachen, die durch einen der beschriebenen Formalismen spezifiziert sind, feststellt, ob sie identisch sind oder nicht. Eine Methode zum Testen der Äquivalenz besteht darin, jeden der beiden regulären Ausdrücke oder Automaten, durch die die Sprachen spezifiziert sind, zu determinisieren und minimieren und anschließend zu überprüfen, ob diese Minimalautomaten identisch bis auf Umbenennung der Zustände sind (Satz.8). Eine andere Methode besteht darin, je einen Automaten für die wechselseitigen Differenzen der beiden Sprachen (L L und L L ) zu konstruieren und zu überprüfen, ob diese die leere Sprache akzeptieren. (Sätze.3 und.38). Grenzen regulärer Sprachen Praktisch alle Programmiersprachen enthalten geschachtelte Strukturen wie Schleifen oder Klammerausdrücke, bei denen es darauf ankommt, dass die Anfangsmarkierungen der Strukturen (for, while, if, öffnende Klammer) immer gepaart mit den Endmarkierungen (end, endif, schließende Klammer) auftreten. Außerdem dürfen sich derartige Strukturen nicht durchdringen, innere Strukturen müssen vor den äusseren beendet werden. Einfachstes Beispiel für derartige Schachtelungen ist die Sprache {a n b n n 0}, 34

wobei a den Anfangs- und b den Endmarkierungen entspricht. Es zeigt sich, dass derartige Sprachen nicht regulär sind, d.h., reguläre Ausdrücke und Automaten sind zu ausdrucksschwach um sie spezifizieren zu können. Wir zeigen mit Hilfe eines indirekten Argumentes, dass L = {a n b n n 0} nicht regulär sein kann: wir nehmen an, L wäre regulär, und führen diese Annahme auf einen Widerspruch. Ist L regulär, gibt es einen DEA A = Q, Σ, δ, q 0, F mit L(A) = L. Wir betrachten die Zustände, die vom Startzustand aus mit den Worten a i erreichbar sind, also die Zustände δ (q 0, a i ) für i. Da ein endlicher Automat nur über endlich viele verschiedene Zustände verfügt, muss es nach dem Schubfachprinzip 7 zwei voneinander verschiedene Zahlen m und n geben, sodass die Zustände δ (q 0, a m ) und δ (q 0, a n ) identisch sind; sei q dieser Zustand. Da a n b n zu L gehört, muss man von q aus mit dem Wort b n in einen Endzustand gelangen können: δ (q, b n ) = q f F. Für das Wort a m b n erhalten wir: δ (q 0, a m b n ) = δ (δ (q 0, a m ), b n ) = δ (q, b n ) = q f d.h., a m b n wird ebenfalls von A akzeptiert, obwohl m n gilt, das Wort a m b n also nicht zu L gehört. Daraus folgt, dass unsere Annahme, dass es für L einen endlichen Automaten gibt, falsch war. Die Sprache L ist daher nicht regulär. Diese Argumentation lässt sich verallgemeinern und als allgemeine Eigenschaft regulärer Sprachen formulieren: alle hinreichend großen Worte einer regulären Sprache lassen sich zerlegen als xyz, sodass xy i z für beliebiges i ebenfalls in der Sprache liegt..40 Satz (Pumping-Lemma für reguläre Sprachen) Sei L eine unendliche reguläre Sprache. Es gibt eine Schranke m > 0, sodass jedes Wort w in L mit w m geschrieben werden kann als w = xyz mit xy m und y ε sodass w i = xy i z ebenfalls in L liegt für alle i 0. Dieser Satz folgt im Wesentlichen aus der Endlichkeit der Zustandsmenge endlicher Automaten unter Zuhilfenahme des Schubfachprinzips. Da L laut Voraussetzung eine reguläre Sprache ist, gibt es einen endlichen Automaten A, der L akzeptiert; wir nehmen an, der Automat habe m Zustände. Da L (wieder laut Voraussetzung) eine unendliche Sprache ist, gibt es Worte in L, die aus m Zeichen oder mehr bestehen, d.h., w = a a n mit n m, wobei a,..., a n Si. Betrachten wir die Zustandsfolge, die vom Startzustand q 0 bis zu einem Endzustand q n beim Akzeptieren von w durchlaufen werden: q 0 a a a n q n Da die Zahl der durchlaufenen Zustände, n +, größer als die Zahl der vorhandenen Zustände, m, ist, sind (mindestens) zwei der durchlaufenen Zustände, sagen wir q i und q j, 7 Das Schubfachprinzip (engl. pigeonhole principle) besagt, dass bei Verteilung von n + Gegenständen auf n Schubfächer mindestens in einem zwei Gegenstände landen müssen. 35

identisch. Die Zustandsfolge ist also keine lineare Kette, sondern mindestens einmal zu einem Zyklus gefaltet, der innerhalb der ersten m Zeichen auftreten muss: q j a j q i+ q a a j 0 i ai+ a n q n q i, q j Sei x das Teilwort a a i bis zum Zyklus, y das Teilwort a i+ a j im Zyklus und z das restliche Wort a j+ a n. Es gilt also w = xyz, wobei xy m (der Zyklus tritt innerhalb der ersten m Zeichen auf) und y ε (der Zyklus besteht aus mindestens einem Zeichen). Klarerweise liegt nicht nur w in L, sondern auch das Wort, das man ohne Durchlaufen des Zyklus erhält, sowie jenes, das durch zweimaliges Durchlaufen entsteht, usw. Mit anderen Worten: w i = xy i z gehört zur Sprache für beliebiges i. Die Hauptanwendung des Pumping-Lemmas besteht darin zu zeigen, dass eine gegebene unendliche Sprache L nicht regulär ist. Zu diesem Zweck muss man beweisen, dass sich zu jeder beliebigen Schranke m ein Wort in L finden lässt, sodass zu jeder beliebigen Zerlegung xyz des Wortes unter den Bedingungen xy m und y ε ein i existiert, sodass xy i z nicht in L liegt. Diese Argumentation lässt sich übersichtlicher als Spiel zwischen zwei Personen präsentieren: der Proponent versucht, einen Widerspruch zum Pumping-Lemma herbeizuführen, der Opponent versucht dies zu verhindern. Das Spiel besteht aus vier Schritten:. Der Opponent gibt eine Schranke m vor.. Der Proponent wählt ein Wort w aus der unendlichen Sprache L, das nicht kürzer als m sein darf ( w m). 3. Der Opponent zerlegt w in drei Teile, xyz, wobei xy m und y ε gelten muss. 4. Der Proponent versucht ein i 0 zu finden, sodass xy i z nicht in L liegt. Gelingt ihm das, hat der Proponent gewonnen, andernfalls der Opponent. Falls der Proponent eine Gewinnstrategie besitzt, d.h., falls er im zweiten Schritt immer ein Wort finden kann, sodass er unabhängig von der Zerlegung durch den Opponenten im vierten Schritt ein geeignetes i angeben kann, dann ist L nicht regulär..4 Beispiel Wir zeigen mit Hilfe der Spiel-Variante des Pumping-Lemmas, dass L = {a n b n n 0} nicht regulär ist.. Der Opponent gibt eine Schranke m vor. Da wir für alle möglichen Spielverläufe eine Gewinnstrategie angeben müssen, wählen wir keine konkrete Zahl, sondern verwenden m als Parameter in den weiteren Spielschritten.. Das Wort w sollte so gewählt werden, dass die Zerlegungsmöglichkeiten im nächsten Schritt eingeschränkt werden. Wir lassen daher den Proponenten das Wort w = a m b m wählen. Es liegt in L und hat die erforderliche Länge, da w = m m gilt. 36

3. Egal wie der Opponent nun w zerlegt, können die Teilworte x und y wegen der Einschränkung xy m nur aus a s bestehen: w = a i x a j y 4. Der Proponent wählt i = 0. Wir erhalten w 0 = a k b m, i + j + k = m, j > 0 z a i x (a j ) 0 y 0 a k b m z = a i+k b m Da i+k=m j < m gilt, enthält w 0 weniger a s als b s, liegt also nicht in der Sprache L. Somit kann der Proponent immer gewinnen, L ist daher nicht regulär..4 Beispiel Wir zeigen mit Hilfe der Abschlusseigenschaften regulärer Sprachen, dass die Sprache L = {a n b k c n+k n, k 0} nicht regulär ist. Sei h der folgende Homomorphismus: h(a) = a, h(b) = a, h(c) = b. Angewendet auf L erhalten wir: h(l) = {h(a n b k c n+k ) n, k 0} = {h(a) n h(b) k h(c) n+k n, k 0} = {a n a k b n+k n, k 0} = {a n+k b n+k n, k 0} = {a n b n n 0} Da reguläre Sprachen abgeschlossen unter Homomorphismen sind (Satz.35), ist h(l) eine reguläre Sprache, falls L eine ist. Allerdings ist h(l) identisch mit der Sprache aus Beispiel.4, von der wir gezeigt haben, dass sie nicht regulär ist. Also kann per Umkehrschluss auch L nicht regulär sein..43 Beispiel Wir zeigen mit Hilfe des Pumping-Spiels, dass die Sprache L = {w {a, b} na(w) < n b (w)} nicht regulär ist. Der Ausdruck n x (w) bezeichnet die Anzahl der Vorkommnisse des Symbols x im Wort w. Die Sprache L besteht also aus allen Worten, die weniger a s als b s enthalten.. Der Opponent gibt eine Schranke m vor.. Der Proponent wählt w = a m b m+. Dieses Wort liegt in L und erfüllt die Längenbedingung: w = m + m. 3. Jede zulässige Zerlegung von w durch den Opponenten hat die Form w = a i x a j y a k b m+, i + j + k = m, j > 0 z 37

4. Der Proponent wählt i =. Wir erhalten w = a i x (a j ) y a k b m+ z Wegen j erhalten wir für die Anzahl der a s und b s: = a i+j+k b m+ na(w )=i + j + k=m + j m + =n b (w ). Daher gehört w nicht zur Sprache L, sie kann also keine reguläre Sprache sein..44 Beispiel Wir zeigen mit Hilfe der Abschlusseigenschaften regulärer Sprachen, dass L = {a m b n m n} nicht regulär ist. Wäre L regulär, müsste auch die Sprache L = L {a} {b} regulär sein: Gemäß Satz.3 liefert sowohl das Komplement einer regulären Sprache als auch der Schnitt zweier regulärer Sprachen wieder eine reguläre Sprache. L ist aber nichts anderes als die Sprache {a n b n n 0}, die laut Beispiel.4 nicht regulär ist. Also kann auch L nicht regulär sein..5. Grammatiken Praktisch alle Programmiersprachen enthalten geschachtelte Strukturen wie Schleifen oder Klammerausdrücke, bei denen es darauf ankommt, dass die Anfangsmarkierungen der Strukturen (for, while, if, öffnende Klammer) immer gepaart mit den Endmarkierungen (end, endif, schließende Klammer) auftreten. Außerdem dürfen sich derartige Strukturen nicht durchdringen, innere Strukturen müssen vor den äusseren beendet werden. Einfachstes Beispiel für derartige Schachtelungen ist die Sprache {a n b n n 0}, wobei a den Anfangs- und b den Endmarkierungen entspricht. Man kann zeigen, dass derartige Sprachen nicht regulär sind. Die in früheren Abschnitten behandelten Methoden zur Sprachspezifikation (reguläre Mengen, Automaten) erweisen sich als zu schwach. Andererseits möchte man die eingesetzten Methoden nicht zu mächtig machen, da sie dann nicht mehr für die automatische Verarbeitung geeignet sind. Es soll etwa möglich sein, aus einer Sprachspezifikation automatisch einen Parser zu generieren, wie er in jedem Compiler zur syntaktischen Analyse des Programmaufbaues benötigt wird. Eine Klasse von Sprachen, die diese beiden Bedingungen ausreichende Ausdrucksstärke und Automatisierbarkeit erfüllt, ist die Klasse der kontextfreien Sprachen. Eine Sprache heißt kontextfrei, wenn es eine kontextfreie Grammatik gibt, die diese Sprache erzeugt. 8 8 Die bekanntesten Parsergeneratoren unter Unix heißen yacc und bison. Sie akzeptieren gewisse Formen kontextfreier Grammatiken als Eingabe und erzeugen Programmteile (sogenannte Parser), die genau die durch die Grammatik beschriebene Sprache analysieren können. 38