Formale Sprachen. Script, Kapitel 4. Grammatiken



Ähnliche Dokumente
Kontextfreie Sprachen

Kontextfreie Sprachen

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

Formale Sprachen. Script, Kapitel 4. Grammatiken

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

Theoretische Grundlagen der Informatik

Wortproblem für kontextfreie Grammatiken

Programmiersprachen und Übersetzer

Theoretische Informatik I

Grammatiken. Einführung

Theorie der Informatik

Vorlesung Theoretische Informatik

Formale Sprachen und Grammatiken

Grundlagen der Theoretischen Informatik

Zusammenfassung Grundzüge der Informatik 4

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Grundbegriffe der Informatik

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Mathematische Grundlagen der Informatik 2

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

2.11 Kontextfreie Grammatiken und Parsebäume

10 Kellerautomaten. Kellerautomaten

Informatik III - WS07/08

Grammatiken und die Chomsky-Hierarchie

... = für δ(z, a i ) = z. Abbildung 4.4: Interpretation der Arbeitsweise eines endlichen Automaten

Informatik IC2. Balazs Simon

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Sprachen/Grammatiken eine Wiederholung

1 Mathematische Grundlagen

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Theoretischen Informatik, SoSe 2008

8. Turingmaschinen und kontextsensitive Sprachen

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Theoretische Informatik I

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Primzahlen und RSA-Verschlüsselung

Die Komplexitätsklassen P und NP

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

7. Formale Sprachen und Grammatiken

TheGI 1: Grundlagen und algebraische Strukturen Prof. Dr.-Ing. Uwe Nestmann Februar Schriftliche Leistungskontrolle (EK)

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

Was bisher geschah: Formale Sprachen

Einführung in die Computerlinguistik

REG versus CF. Theorem REG ist echt in CF enthalten.

Grundbegriffe der Informatik

Reguläre Sprachen Endliche Automaten

Grundbegriffe der Informatik

Theoretische Informatik

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Grundlagen der Theoretischen Informatik

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Informationsblatt Induktionsbeweis

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

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

Theoretische Informatik SS 04 Übung 1

Mächtigkeit von WHILE-Programmen

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

2.2 Reguläre Sprachen Endliche Automaten

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Einführung in die Algebra

Der Zwei-Quadrate-Satz von Fermat

A : z z A : z z : ( z, x, z ) δ

Automatentheorie und formale Sprachen

Erstellen von x-y-diagrammen in OpenOffice.calc

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Sprachen und Grammatiken

Lineare Gleichungssysteme

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Theorie der Informatik

WS 2009/10. Diskrete Strukturen

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Ogden s Lemma: Der Beweis (1/5)

Grundlagen der Theoretischen Informatik

Theorie der Informatik

Theoretische Informatik

Einfache kryptographische Verfahren

Die mathematische Seite

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Transkript:

Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprachen bedeutend für die Syntaxdefinition von Programmiersprachen (Compilerbau) Automaten akzeptieren Sprachen enge Beziehungen zu Grammatiken B Reichel, R Stiebe: Theoretische Informatik für Lehrer 117

Beispiel für eine Grammatik <Satz> <Subjekt><Prädikat><Objekt> <Subjekt> <Artikel><Attribut><Substantiv> <Prädikat> jagt <Objekt> <Artikel><Attribut><Substantiv> <Artikel> ε der die das <Attribut> ε <Adjektiv> <Adjektiv><Attribut> <Adjektiv> kleine bissige große <Substantiv> Hund Katze B Reichel, R Stiebe: Theoretische Informatik für Lehrer 118

Syntaxbaum für den Satz der kleine bissige Hund jagt die große Katze! " #$! %&! ' () 0 " 1-!% & '+ (# *+ (, - 0 (2 /+ (, "' &!&3 4 ' / 3 3!5 6 7 * B Reichel, R Stiebe: Theoretische Informatik für Lehrer 119

Definition Grammatik Eine Grammatik ist ein 4-Tupel G = (V, Σ, P, S), wobei V ein Alphabet ist (Nichtterminalalphabet oder Alphabet der Variablen), Σ ein Alphabet ist (Terminalalphabet), V Σ = gilt, P eine endliche Teilmenge von ((V Σ) \ Σ ) (V Σ) ist (Menge der Regeln), S V ist (die Startvariable oder Axiom) Zur besseren Lesbarkeit werden wir u v P für (u, v) P schreiben B Reichel, R Stiebe: Theoretische Informatik für Lehrer 120

Definitionen direkte Ableitung einer Grammatik Sei G = (V, Σ, P, S) eine Grammatik und u, v (V Σ) Wörter Dann gilt u = G v (in Worten: u erzeugt bezüglich G direkt v) genau dann, wenn (i) u = γ 1 αγ 2 mit γ 1, γ 2 (V Σ), (ii) v = γ 1 βγ 2 und (iii) α β P ist Wenn keine Verwechslungsgefahr besteht, schreiben wir statt = G einfach = B Reichel, R Stiebe: Theoretische Informatik für Lehrer 121

Definitionen Ableitung und erzeugte Sprache Sei G = (V, Σ, P, S) eine Grammatik und u, v (V Σ) Wörter Dann gilt u = G v (in Worten: u erzeugt bezüglich G in endlich vielen Schritten v) genau dann, wenn u = v gilt oder es ein n N und Wörter w 0, w 1,, w n gibt, so dass gilt u = w 0 = G w 1 = G w 2 = G = G w n = v Sei G = (V, Σ, P, S) eine Grammatik Die von G erzeugte Sprache L(G) wird definiert als L(G) = {w Σ S = G w} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 122

Beispiel einer Grammatik Es sei G = ({S}, {a, b}, {S asb, S ab}, S) eine Grammatik, dann gilt L(G) = {a n b n n 1} Eine Ableitung für das Wort a 4 b 4 sieht dann so aus: S = asb = aasbb = aaasbbb = aaaabbbb B Reichel, R Stiebe: Theoretische Informatik für Lehrer 123

Weiteres Beispiel einer Grammatik Es sei G = ({S}, {a}, {S aas, S a}, S) eine Grammatik, dann gilt L(G) = {a 2n+1 n 0} Eine Ableitung für das Wort a 7 sieht dann so aus: S = aas = aaaas = aaaaaas = aaaaaaa B Reichel, R Stiebe: Theoretische Informatik für Lehrer 124

Weiteres Beispiel einer Grammatik Es sei G = ({S}, {a, b}, {S as, S bs, S a, S b}, S) eine Grammatik, dann gilt L(G) = {a, b} + = {w {a, b} w ε} Eine Ableitung für das Wort aaba sieht dann so aus: S = as = aas = aabs = aaba B Reichel, R Stiebe: Theoretische Informatik für Lehrer 125

Komplexeres Beispiel einer Grammatik Es sei die Grammatik G = ({S, B, C}, {a, b, c}, P, S) mit P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc} gegeben Wir können zum Beispiel die Ableitung S = asbc = aasbcbc = aaabcbcbc = aaabbccbc = aaabbcbcc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc aufstellen, also gehört das Wort aaabbbccc = a 3 b 3 c 3 zur erzeugten Sprache L(G), es gilt also a 3 b 3 c 3 L(G) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 126

Komplexeres Beispiel einer Grammatik Erzeugte Sprache Teil 1 Vermutung: L(G) = {a n b n c n n 1} Zunächst wird L(G) {a n b n c n n 1} gezeigt, dh S = a n b n c n für jedes n 1 Wende (n 1)-mal Regel S asbc und dann einmal S abc an, dh: S = a n (BC) n Solange wie möglich wende CB BC an, dh: a n (BC) n = a n B n C n Wende einmal ab ab und (n 1)-mal bb bb an, dh: a n B n C n = a n b n C n Wende einmal bc bc und (n 1)-mal cc cc an, dh: a n b n C n = a n b n c n B Reichel, R Stiebe: Theoretische Informatik für Lehrer 127

Komplexeres Beispiel einer Grammatik Erzeugte Sprache Teil 2 Schwieriger zu zeigen ist die Behauptung L(G) {a n b n c n n 1} Für jedes erzeugbare Wort α gilt: α a = α b + α B = α c + α C In jedem erzeugbaren Wort stehen die a s am Anfang Ein Symbol B kann nur dann in ein b umgewandelt werden, wenn unmittelbar links vor ihm ein a oder ein b steht, dh kein c steht vor einem b Mathematisch exakter Beweis erfolgt durch vollständige Induktion B Reichel, R Stiebe: Theoretische Informatik für Lehrer 128

Chomsky-Hierarchie Definition: Eine Grammatik G = (V, Σ, P, S) heißt vom Typ 0, wenn sie keinen Beschränkungen unterliegt, Typ 1 oder kontextabhängig, falls für jede Regel α β gilt: α β, mit der Ausnahme S ε, falls S nicht auf der rechten Seite einer Regel vorkommt Typ 2 oder kontextfrei, wenn jede Regel von der Form A β mit A V und β (V Σ) ist Typ 3 oder regulär, wenn jede Regel von der Form A wb oder A w mit A, B V und w Σ ist B Reichel, R Stiebe: Theoretische Informatik für Lehrer 129

Chomsky-Hierarchie Fortsetzung Definition: Eine Sprache L Σ heißt vom Typ 0 (Typ 1, Typ 2, Typ 3), falls es eine Grammatik G = (V, Σ, P, S) vom Typ 0 (Typ 1, Typ 2, Typ 3) gibt, so dass L = L(G) gilt Notation: Typ i: Familie der Sprachen vom Typ i {0, 1, 2, 3} Satz (Chomsky-Hierarchie) Es gilt: Typ 3 Typ 2 Typ 1 Typ 0 Der Beweis des Satzes wird in den folgenden Kapiteln erbracht B Reichel, R Stiebe: Theoretische Informatik für Lehrer 130

Typ-0-Grammatiken und Turingmaschinen Satz Eine Sprache ist genau dann eine Typ-0-Sprache, wenn sie von einer NTM akzeptiert werden kann, dh wenn sie rekursiv aufzählbar ist Beweisidee Ableitung einer Grammatik wird in umgekehrter Reihenfolge durch eine NTM simuliert Konfigurationenfolge eines akzeptierenden Laufs einer NTM wird in umgekehrter Reihenfolge durch eine Grammatik erzeugt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 131

Simulation einer Grammatik durch eine NTM gegeben: Grammatik G = (V, Σ, P, S) Konstruiere NTM M = (Z, Σ, V Σ { }, δ, z 0,, {q}) Arbeitsweise von M in einer Phase: Rate eine Regel α β und ersetze ein Vorkommen von β durch α, dh Konfigurationsänderung: z 0 w 1 βw 2 z 0 w 1 αw 2 M akzeptiert, wenn nur noch S auf dem Band steht B Reichel, R Stiebe: Theoretische Informatik für Lehrer 132

Linear beschränkte Automaten Definition Eine nichtdeterministische Turingmaschine M heißt linear beschränkter Automat (LBA), wenn bei jedem Lauf von M nur die Speicherzellen der Eingabe benutzt werden Offenes Problem (LBA-Problem): Sind deterministische LBA so mächtig wie nichtdeterministische LBA? B Reichel, R Stiebe: Theoretische Informatik für Lehrer 133

Typ-1-Grammatiken und LBA Satz Eine Sprache ist genau dann eine Typ-1-Sprache, wenn sie von einem linear beschränkten Automaten akzeptiert werden kann Beweisidee Gleiche Konstruktionen wie für Typ-0-Grammatiken und NTM Nichtverkürzende Regeln erlauben den beschränkten Platzbedarf B Reichel, R Stiebe: Theoretische Informatik für Lehrer 134

Das Wortproblem Definition (Wortproblem) Gegeben: Grammatik G = (V, Σ, P, S) vom Typ i, i {0, 1, 2, 3}, und Wort w Σ, Frage: Gilt w L(G)? Folgerung Das Wortproblem für Typ-0-Grammatiken ist semi-entscheidbar, aber nicht entscheidbar Satz Das Wortproblem für Typ-1-Grammatiken ist entscheidbar B Reichel, R Stiebe: Theoretische Informatik für Lehrer 135

Weitere Entscheidungsprobleme Leerheitsproblem: Gegeben: Grammatik G Frage: Gilt L(G) =? Endlichkeitsproblem: Gegeben: Grammatik G Frage: Ist L(G) endlich? Schnittproblem: Gegeben: Zwei Grammatiken G 1, G 2 Frage: Gilt L(G 1 ) L(G 2 ) =? Äquivalenzproblem: Gegeben: Zwei Grammatiken G 1, G 2 Frage: Gilt L(G 1 ) = L(G 2 )? Satz: Das Leerheitsproblem, das Endlichkeitsproblem, das Äquivalenzproblem und das Schnittproblem sind unentscheidbar für Typ-1-Grammatiken B Reichel, R Stiebe: Theoretische Informatik für Lehrer 136

Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (zb lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen Äquivalenz zu endlichen Automaten Äquivalenz zu regulären Ausdrücken Grenzen der regulären Sprachen (Pumping-Lemma) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 137

Endliche Automaten Definition Ein deterministischer endlicher Automat (DEA) A ist ein 5-Tupel A = (Z, Σ, δ, z 0, E) Dabei sind Z das Zustandsalphabet, Σ das Eingabealphabet mit Z Σ =, δ : Z Σ Z die Zustandsüberführungsfunktion, z 0 Z der Anfangszustand und E Z die Menge der Endzustände B Reichel, R Stiebe: Theoretische Informatik für Lehrer 138

Interpretation der Arbeitsweise des Endlichen Automaten a 1 a 2 a i a i+1 a n a 1 a 2 a i a i+1 a n z = für δ(z, a i ) = z z Turingmaschine, die die Eingabe einmal von links nach rechts liest B Reichel, R Stiebe: Theoretische Informatik für Lehrer 139

Akzeptierte Sprache des Endlichen Automaten Definition Sei A ein deterministischer endlicher Automat A = (Z, Σ, δ, z 0, E); die erweiterte Zustandsüberführungsfunktion ˆδ : Z Σ Z wird definiert durch (i) ˆδ(z, ε) = z für alle z Z, (ii) ˆδ(z, wa) = δ(ˆδ(z, w), a) für alle z Z, a Σ, w Σ Definition Für einen DEA A = (Z, Σ, δ, z 0, E) ist die von ihm akzeptierte Sprache T (A) definiert durch T (A) = {w Σ ˆδ(z 0, w) E} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 140

Überführungsgraphen! " $#"% & ' )(*+-,/0 1 / B Reichel, R Stiebe: Theoretische Informatik für Lehrer 141

Endliche Automaten Beispiel Es sei A der deterministische endliche Automat A = ({z 0, z 1, z 2, z 3 }, {0, 1}, δ, z 0, {z 2, z 3 }), mit der Überführungsfunktion δ, gegeben durch folgende Tabelle δ z 0 z 1 z 2 z 3 0 z 0 z 3 z 3 z 0 1 z 1 z 2 z 2 z 1 B Reichel, R Stiebe: Theoretische Informatik für Lehrer 142

DEA Beispiel (Fortsetzung) Der dazugehörige Graph lautet B Reichel, R Stiebe: Theoretische Informatik für Lehrer 143

Nichtdeterministische endliche Automaten Definition Ein nichtdeterministischer endlicher Automat (NEA) A ist ein 5-Tupel A = (Z, Σ, δ, z 0, E) Dabei sind Z das Zustandsalphabet, Σ das Eingabealphabet mit Z Σ =, δ : Z Σ 2 Z die Zustandsüberführungsfunktion, z 0 Z der Anfangszustand und E Z die Menge der Endzustände B Reichel, R Stiebe: Theoretische Informatik für Lehrer 144

Akzeptierte Sprache eines NEA Definition Sei A ein NEA mit A = (Z, Σ, δ, z 0, E); die erweiterte Zustandsfunktion ˆδ : Z Σ 2 Z wird definiert durch (i) ˆδ(z, ε) = {z} für alle z Z, (ii) ˆδ(z, wa) = δ(z, a) das heißt z ˆδ(z,w) = {z Z z Z mit z ˆδ(z, w) und z δ(z, a)} für z Z, a Σ, w Σ Definition Für einen NEA A = (Z, Σ, δ, z 0, E) sei die von ihm akzeptierte Sprache T (A) definiert durch T (A) = {w Σ ˆδ(z 0, w) E } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 145

Beispiel eines NEA Beispiel Sei A = ({z 0, z 1, z 2 }, {0, 1}, δ, z 0, {z 2 }) ein NEA, wobei δ durch die folgende Tabelle gegeben ist: δ z 0 z 1 z 2 0 {z 0 } {z 2 } 1 {z 0, z 1 } {z 2 } Der dazugehörige Graph ist: B Reichel, R Stiebe: Theoretische Informatik für Lehrer 146

Beispiel eines NEA Fortsetzung ˆδ(z 0, 0) = {z 0 } 0 / T (A) ˆδ(z 0, 1) = {z 0, z 1 } 1 / T (A) ˆδ(z 0, 01) = {z 0, z 1 } 01 / T (A) ˆδ(z 0, 11) = {z 0, z 1, z 2 } 11 T (A) ˆδ(z 0, 001) = {z 0, z 1 } 001 / T (A) ˆδ(z 0, 010) = {z 0, z 2 } 010 T (A) Die akzeptierte Sprache T (A) ist die Menge aller Wörter über {0, 1}, deren vorletztes Symbol eine 1 ist, d h T (A) = {w {0, 1} w = u1x mit u {0, 1}, x {0, 1}} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 147

Äquivalenz von NEA und DEA Satz Jede von einem NEA akzeptierte Sprache ist auch von einem DEA akzeptierbar Beweis (Potenzmengen-Konstruktion) Aus NEA A = (Z, Σ, δ, z 0, E) konstruiere DEA A = (Z, Σ, δ, z 0, E ): Dann gilt Z = 2 Z, z 0 = {z 0 }, E = {z Z z E }, δ (z, a) = z z δ(z, a) für alle z Z und a Σ ˆδ ({z 0 }, w) = ˆδ(z 0, w) für alle w Σ, dh T (A) = T (A ) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 148

Beispiel NEA DEA Wir betrachten den NEA von Folie 146 Wir konstruieren den äquivalenten DEA A = (Z, {0, 1}, δ, {z 0 }, E ) Bemerkung: Man braucht nur die Teilmengen von Z zu betrachten, die von {z 0 } erreichbar sind (sparsame Potenzmengenkonstruktion) δ {z 0 } {z 0, z 1 } {z 0, z 2 } {z 0, z 1, z 2 } 0 {z 0 } {z 0, z 2 } {z 0 } {z 0, z 2 } 1 {z 0, z 1 } {z 0, z 1, z 2 } {z 0, z 1 } {z 0, z 1, z 2 } Z = {{z 0 }, {z 0, z 1 }, {z 0, z 2 }, {z 0, z 1, z 2 }} E = {{z 0, z 2 }, {z 0, z 1, z 2 }} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 149

Beispiel NEA DEA Fortsetzung Zur besseren Lesbarkeit bezeichnen wir die Zustände um: {z 0 } =: q 0, {z 0, z 1 } =: q 1, {z 0, z 2 } =: q 2 und {z 0, z 1, z 2 } =: q 3 mit A = ({q 0, q 1, q 2, q 3 }, {0, 1}, δ, q 0, {q 2, q 3 }) δ q 0 q 1 q 2 q 3 0 q 0 q 2 q 0 q 2 1 q 1 q 3 q 1 q 3 B Reichel, R Stiebe: Theoretische Informatik für Lehrer 150

Endliche Automaten und reguläre Grammatiken Satz Sei A ein NEA Dann ist die von A akzeptierte Sprache T (A) regulär Beweis Aus NEA A = (Z, Σ, δ, z 0, E) konstruiere Typ-3-Grammatik G = (V, Σ, P, S) mit V = Z, S = z 0 und P = {z 1 az 2 z 2 δ(z 1, a))} {z 1 ε z 1 E} Es gilt z 1 = G wz 2 genau dann, wenn z 2 ˆδ(z 1, w) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 151

NEA Grammatik Beispiel Sei A = ({z 0, z 1, z 2, z 3 }, {a, b}, δ, z 0, {z 3 }) der DEA mit der Überführungsfunktion δ: δ z 0 z 1 z 2 z 3 a z 1 z 1 z 3 z 3 b z 0 z 2 z 0 z 3 Wir konstruieren jetzt die äquivalente Typ-3-Grammatik G = (V, Σ, P, S): V = {z 0, z 1, z 2, z 3 }, Σ = {a, b}, S = z 0, P = {z 0 az 1, z 0 bz 0, z 1 az 1, z 1 bz 2 } {z 2 az 3, z 2 bz 0, z 3 az 3, z 3 bz 3 } {z 3 ε} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 152

Eine Normalform für reguläre Grammatiken Lemma Für jede reguläre Sprache L gibt es eine Typ-3-Grammatik G = (V, Σ, P, S) mit L(G) = L, deren Regeln der folgenden Form sind: A ab, A, B V, a Σ oder A ε, A V B Reichel, R Stiebe: Theoretische Informatik für Lehrer 153

Reguläre Grammatik NEA Satz Sei G eine reguläre Grammatik; dann existiert ein NEA A mit T (A) = L(G) Beweis Für eine reguläre Grammatik G = (V, Σ, P, S) in Normalform konstruieren wir den NEA A = (Z, Σ, δ, z 0, E) wie folgt: Z = V, z 0 = S, E = {A V A ε P } δ(a, a) = {B V A ab P } für A V und a Σ B Reichel, R Stiebe: Theoretische Informatik für Lehrer 154

Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ (ii) ε ist ein regulärer Ausdruck über Σ (iii) Für jedes a Σ ist a ein regulärer Ausdruck über Σ (iv) Wenn α und β reguläre Ausdrücke über Σ sind, so sind auch αβ, (α β) und (α) reguläre Ausdrücke über Σ B Reichel, R Stiebe: Theoretische Informatik für Lehrer 155

Sprache eines regulären Ausdrucks Definition (Sprache eines regulären Ausdrucks) Sei Σ ein Alphabet und γ ein regulärer Ausdruck über Σ, dann wird die von γ beschriebene Sprache L(γ) Σ wie folgt definiert (i) Für γ = gilt L(γ) = (ii) Für γ = ε gilt L(γ) = {ε} (iii) Für γ = a mit a Σ gilt L(γ) = {a} (iv) Für γ = αβ gilt L(γ) = L(α) L(β) (v) Für γ = (α β) gilt L(γ) = L(α) L(β) (vi) Für γ = (α) gilt L(γ) = (L(α)) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 156

Beispiel eines regulären Ausdrucks L((0 (0 1) 00)) = L(0) L((0 1) 00)) = L(0) (L((0 1) 0)) L(0)) = L(0) ((L((0 1) )) L(0)) L(0)) = L(0) (((L((0 1))) L(0)) L(0)) = L(0) (((L(0) L(1)) L(0)) L(0)) = {0} ((({0} {1}) {0}) {0}) = {0} (({0, 1} {0}) {0}) = {0} ({0, 1} {00}), Das heißt, die vom Ausdruck (0 (0 1) 00) beschriebene Sprache ist die Menge aller Wörter über dem Alphabet {0, 1}, die gleich 0 sind oder auf 00 enden B Reichel, R Stiebe: Theoretische Informatik für Lehrer 157

Äquivalenz regulärer Ausdrücke Definition Zwei reguläre Ausdrücke β und γ heißen äquivalent, in Zeichen β γ, wenn L(β) = L(γ) gilt Beispiel: ((a b)) ((a b)(a b)) ((a b) ε) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 158

Rechenregeln für reguläre Ausdrücke (A (B C)) ((A B) C) A(B C) (AB AC) (B C)A (BA CA) (A B) (B A) (A A) A (A ) ( A) A A A Aε εa A ((A) ) (A) ( ) ε ((A ε)) (A) (A) (ε A)A ((ε A)) A B Reichel, R Stiebe: Theoretische Informatik für Lehrer 159

Bemerkung zu regulären Ausdrücken 1 Wir vereinbaren, dass wir Klammern, die nicht notwendigerweise gebraucht werden, weglassen können Zum Beispiel können wir statt (α (β γ)) auch (α β γ) schreiben Wir schreiben auch L(α β) statt L((α β)) sowie a statt (a) für a Σ 2 Wir benutzen die abkürzende Schreibweise α n für αα } {{ α} n-mal 3 Wir benutzen die abkürzende Schreibweise α + für α α 4 In der Literatur findet man oft auch abweichende Schreibweisen der regulären Ausdrücke Zum Beispiel findet man für (α β) auch (α + β) oder auch (α β) Auch wird natürlich oft α β für αβ zugelassen 5 Oft wird in der Literatur zwischen regulärem Ausdruck und beschriebener Sprache nicht unterschieden, das heißt, man identifiziert einen regulären Ausdruck mit der beschriebenen Sprache B Reichel, R Stiebe: Theoretische Informatik für Lehrer 160

Weitere Beispiele regulärer Ausdrücke (a b) beschreibt die Menge aller Wörter über dem Alphabet {a, b} (a b) + beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die nicht dem leeren Wort entsprechen (a b) aba(a b) beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die das Teilwort aba haben (a b) a(a b) 2 beschreibt die Menge aller Wörter über dem Alphabet {a, b}, deren drittletztes Symbol ein a ist ((a b)(a b)) beschreibt die Menge aller Wörter über dem Alphabet {a, b}, deren Länge gerade ist (b ε)(ab) (a ε) beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die nicht das Teilwort aa und nicht das Teilwort bb enthalten B Reichel, R Stiebe: Theoretische Informatik für Lehrer 161

Satz von Kleene Satz (Kleene) Die Menge der durch reguläre Ausdrücke beschreibbaren Sprachen ist genau die Menge der regulären Sprachen Beweis (Konstruktionen) regulärer Ausdruck NEA: Induktion über Aufbau der Ausdrücke NEA regulärer Ausdruck: Lösung von Gleichungssystemen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 162

Regulärer Ausdruck NEA 1 Automaten für die Ausdrücke, ε und a: 2 Seien A α bzw A β NEA mit T (A α ) = L(α) bzw T (A β ) = L(β) Konstruiere NEA für αβ, (α β) und α (formale Konstruktion: siehe Skript) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 163

Regulärer Ausdruck NEA Fortsetzung (a) Automat für αβ: Verschmelze Endzustände von A α mit Startzustand von A β ( Reihenschaltung ) neuer Startzustand: Startzustand von A α neue Endzustände: Endzustände von A β B Reichel, R Stiebe: Theoretische Informatik für Lehrer 164

Regulärer Ausdruck NEA Fortsetzung (b) Automat für (α β): Neuer Startzustand mit Kanten zu den Nachfolgern der Startzustände von A α und A β ( Parallelschaltung ) neue Endzustände: Endzustände von A α und A β B Reichel, R Stiebe: Theoretische Informatik für Lehrer 165

Regulärer Ausdruck NEA Fortsetzung (c) Automat für (α) : Füge für jede Kante zu einem Endzustand eine gleiche Kante zum Startzustand ein neuer Endzustand: Startzustand von A α B Reichel, R Stiebe: Theoretische Informatik für Lehrer 166

NEA Regulärer Ausdruck Aufstellen eines linearen Gleichungssystems für einen NEA Auflösen des linearen Gleichungssystems regulärer Ausdruck (Wegen der besseren Lesbarkeit geben wir nicht die Ausdrücke, sondern ihre Sprachen an) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 167

Gleichungssystem zu einem NEA NEA A = (Z, Σ, δ, z 0, E) Für z Z sei A z = (Z, Σ, δ, z, E) und L z = T (A z ) Für alle z Z gilt: L z = z Z a:z δ(z,a) a L z E z mit E z = {, falls z / E {ε}, sonst Lineares Gleichungssystem mit den Variablen L z, z Z Falls eine eindeutige Lösung existiert, so ist durch L z0 der gesuchte reguläre Ausdruck bekannt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 168

Gleichungssystem zu einem NEA-Beispiel L z0 = {a} L z0 {b} L z1 {ε} L z1 = {b} L z1 {a} L z2 {ε} L z2 = {a} L z0 {b} L z3 {ε} L z3 = {a, b} L z3 B Reichel, R Stiebe: Theoretische Informatik für Lehrer 169

Auflösen linearer Gleichungssysteme Lemma Für B, C Σ mit ε B gilt: Die Gleichung L = B L C besitzt die einzige Lösung L = B C Auflösung von Gleichungssytemen durch sukzessive Eliminierung der Variablen L z unter Nutzung des Lemmas B Reichel, R Stiebe: Theoretische Informatik für Lehrer 170

Auflösen linearer Gleichungssysteme - Beispiel Für das Gleichungssystem auf Folie 169 ergibt sich L z3 = {a, b} L z3 L z3 = {a, b} = L z2 = {a} L z0 {b} L z3 {ε} L z2 = {a} L z0 {ε} L z1 = {b} L z1 {a} L z2 {ε} = {b} L z1 {aa} L z0 {a, ε} L z1 = {b} {aa} L z0 {b} {a, ε} L z0 = {a} L z0 {b} L z1 {ε} = {a} L z0 {b} + {aa} L z0 {b} + {a, ε} {ε} L z0 = ({a} {b} + {aa}) ({b} + {a, ε} {ε}) Regulärer Ausdruck: (a b + aa) (b + (a ε) ε) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 171

Das Pumping Lemma Satz (Pumping Lemma) Sei L eine reguläre Sprache Dann gibt es eine Konstante k N, so dass für alle Wörter z L mit z k eine Zerlegung z = uvw existiert, so dass gilt: (i) uv k und v 1, (ii) für alle i N gilt uv i w L Bedeutung: Wichtiges Hilfsmittel um zu beweisen, dass eine Sprache nicht regulär ist B Reichel, R Stiebe: Theoretische Informatik für Lehrer 172

Pumping Lemma Beweis Reguläre Sprache L werde durch DEA A = (Z, Σ, δ, z 0, E) mit k Zuständen akzeptiert Betrachte Wort x L mit x k Es gilt ˆδ(z 0, x) = q für ein q E Nach Einlesen der ersten k Buchstaben von x wurden k + 1 Zustände angenommen Nach dem Schubfachprinzip müssen 2 dieser Zustände gleich sein, dh es gibt eine Zerlegung x = uvw mit uv k, v > 0, ˆδ(z0, u) = ˆδ(z 0, uv) = z u, ˆδ(z 0, uvw) = q Nach Definition von ˆδ gilt: ˆδ(z u, v) = z u, dh ˆδ(z u, v i ) = z u für alle i 0 Es folgt ˆδ(z 0, uv i w) = ˆδ(ˆδ(z 0, uv i ), w) = ˆδ(z u, w) = q, dh uv i w L B Reichel, R Stiebe: Theoretische Informatik für Lehrer 173

Anwendung des Pumping Lemmas Erfüllt eine Sprache nicht die Folgerung des Pumping-Lemmas, so kann sie auch nicht regulär sein Um zu beweisen, dass eine Sprache L nicht die Folgerung des Pumping- Lemmas erfüllt, muss man Folgendes zeigen: Für jede natürliche Zahl k existiert ein Wort z mit z k, so dass für jede Zerlegung z = uvw mit uv k und v 1 ein i N existiert, so dass uv i w / L gilt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 174

Anwendungen des Pumping Lemmas - Beispiel Satz: Die Menge PAL der Palindrome über {a, b} ist nicht regulär Beweis Wir zeigen, dass PAL nicht die Behauptung des Pumping-Lemmas erfüllt Sei k eine beliebige natürliche Zahl Wähle z = a k ba k (Offensichtlich gilt z k und z PAL) Für jede Zerlegung z = uvw mit uv k und v 1 gilt: u = a r, v = a s, w = a k r s ba k mit r + s k und s 1 Wähle i = 2 Es gilt uv 2 w = a r a 2s a k r s ba k = a k+s ba k / PAL B Reichel, R Stiebe: Theoretische Informatik für Lehrer 175

Anwendungen des Pumping Lemmas Mit Hilfe des Pumping Lemmas kann man auch die Nichtregularität der Sprachen L = {a n2 n 1}, L = {a 2n n 1}, L = {a p p Primzahl}, L = {a n b n n 1}, L = {ww w {a, b} }, L = Menge der regulären Ausdrücke über Σ und vieler anderer zeigen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 176

Abschlusseigenschaften regulärer Sprachen Satz Sind A und B reguläre Sprachen über Σ, dann sind auch (i) A B, (ii) A B, (iii) A B, (iv) Σ \ A und (v) A reguläre Sprachen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 177

Wortproblem und andere Entscheidungsprobleme Satz Das Wortproblem für ein Wort der Länge n und einen DEA ist mit einem Zeitaufwand von O(n) entscheidbar Satz Das Wortproblem für ein Wort der Länge n und einen NEA mit k Transitionen ist mit einem Zeitaufwand von O(n k) entscheidbar Satz Das Leerheitsproblem, das Endlichkeitsproblem, das Schnittproblem für NEA sind in linearer Zeit (Leerheit, Endlichkeit) bzw in quadratischer Zeit (Schnitt) entscheidbar Satz Das Äquivalenzproblem für DEA ist in quadratischer Zeit entscheidbar Satz Das Äquivalenzproblem für NEA ist in exponentieller Zeit entscheidbar (und NP-hart, genauer: PSPACE-vollständig) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 178

Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch Kellerautomaten Deterministisch kontextfreie Sprachen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 179

Beispiel für eine kontextfreie Grammatik G = ({S, X, C}, {x, c, 0, +,, ;, :=,, LOOP, WHILE, DO, END}, P, S) mit folgenden Regeln in der Regelmenge P : S S; S S LOOP X DO S END S WHILE X 0 DO S END S X := X + C S X := X C X x C c B Reichel, R Stiebe: Theoretische Informatik für Lehrer 180

Weiteres Beispiel für eine kontextfreie Grammatik G = ({S}, {a 1, a 2, b 1, b 2 }, P, S) mit der Regelmenge P = {S SS, S a 1 Sb 1, S a 2 Sb 2, S ε} G erzeugt die Sprache D 2, die sogenannte Dyck-Sprache über zwei Klammerpaaren Induktive Definition von D 2 : 1 ε D 2 2 Aus w 1 D 2, w 2 D 2 folgt w 1 w 2 D 2 3 Aus w D 2 folgt a 1 wb 1 D 2 und a 2 wb 2 D 2 4 D 2 enthält keine weiteren Wörter B Reichel, R Stiebe: Theoretische Informatik für Lehrer 181

Syntaxbäume Jeder Ableitung eines Wortes w in einer kontextfreien Grammatik kann eindeutig ein Syntaxbaum zugeordnet werden Sei w L(G) und S = w 0 = w 1 = w 2 = = w n = w eine Ableitung für w Dann wird der Syntaxbaum folgendermaßen konstruiert: Die Wurzel hat die Beschriftung S Nach dem i-ten Schritt ergeben die Beschriftungen der Blätter von links nach rechts gelesen das Wort w i, 0 i n Wird bei der Ableitung eine Regel A α angewendet, so erhält das zugehörige Blatt (mit der Beschriftung A) α Söhne, deren Beschriftung von links nach rechts das Wort α ergibt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 182

Linksableitungen Definition Eine Ableitung in einer kontextfreien Grammatik heißt Linksableitung, wenn in jedem Schritt das am weitesten links stehende Nichtterminalsymbol ersetzt wird Jedem Syntaxbaum zu einer Ableitung kann eindeutig eine Linksableitung zugeordnet werden, dh: Satz Die von einer kontextfreien Grammatik G erzeugte Sprache ist die Menge der durch Linksableitungen in G erzeugbaren Wörter B Reichel, R Stiebe: Theoretische Informatik für Lehrer 183

Chomsky Normalform Definition Eine kontextfreie Grammatik G = (V, Σ, P, S) ist in Chomsky Normalform, falls jede Regel in P in einer der Formen (i)-(iii) ist: (i) A BC mit A, B, C V, (ii) A a mit A V und a Σ, (iii) S ε, wobei S auf keiner rechten Seite einer Regel vorkommt Satz Zu jeder kontextfreien Grammatik G kann man eine kontextfreie Grammatik G in Chomsky Normalform konstruieren mit L(G) = L(G ) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 184

Der Algorithmus von Cocke, Younger und Kasami Eingabe: Ausgabe: kontextfreie Grammatik G = (V, Σ, P, S) in Chomsky NF, Wort w Σ ja, falls w L(G); nein, sonst Grundidee des CYK-Algorithmus w[s, t] sei das Teilwort von w von der Stelle s bis zur Stelle t, wobei 1 s t n = w Bestimme für 1 j n und 1 i n j + 1 die Mengen T [i, j] = {A V A = w[i, i + j 1]} Es gilt w L(G) genau dann, wenn S T [1, n] B Reichel, R Stiebe: Theoretische Informatik für Lehrer 185

CYK-Algorithmus Fortsetzung Induktive Bestimmung der Mengen T [i, j]: Für j = 1: T [i, 1] = {A V A w[i, i] P } Für j > 1: T [i, j] = {A V es gibt B, C V und 1 k < j mit A BC P, B T [i, k], C T [i + k, j k]} CYK-Algorithmus ist Beispiel für Dynamische Programmierung B Reichel, R Stiebe: Theoretische Informatik für Lehrer 186

Beispiel für CYK-Algorithmus Die Sprache L = {a n b n c m m, n 1} ist kontextfrei und wird von der Grammatik G = (V, Σ, P, S) mit den Regeln S AB, A aab ab, B cb c erzeugt Eine äquivalente Grammatik in Chomsky Normalform für L hat folgende Menge von Regeln: S AB, B EB c, C a, A CD CF, F AD, D b, E c Sei x = aaabbbcc Dann erzeugt der Algorithmus folgende Tabelle B Reichel, R Stiebe: Theoretische Informatik für Lehrer 187

Beispiel für CYK-Algorithmus Tabelle j i a a a b b b c c C C C D D D E, B E, B A S S F A F A B = x B Reichel, R Stiebe: Theoretische Informatik für Lehrer 188

Beispiel für CYK-Algorithmus Erklärung In der Tabelle stellt jedes Feld eine Menge T [i, j] von Nichtterminalen dar Die Koordinatenachsen für i und j sind eingezeichnet Der Algorithmus besteht aus drei Teilen Im ersten Teil wird die oberste Zeile (T [i, 1]) berechnet Im zweiten Teil werden zeilenweise die weiteren Mengen T [i, j] berechnet, indem immer die zugehörige Spalte von oben und die nach rechts oben führende Diagonale betrachtet werden Im dritten Teil des Algorithmus schließlich wird die Menge T [1, n] betrachtet, hier T [1, 8] Ausgabe ja genau dann, wenn S T [1, n] B Reichel, R Stiebe: Theoretische Informatik für Lehrer 189

Fortsetzung CYK-Algorithmus Noch eine Bemerkung: aus der aufgestellten Tabelle kann man auch die Ableitung für das Wort x ablesen, indem wir rückwärts die Regeln anwenden, die auf S in T [1, n] geführt haben Hier sieht die Ableitung für aaabbbc dann folgendermaßen aus (die Nonterminale, die ersetzt werden, sind jeweils unterstrichen) S = AB = CF B = CADB = CCF DB = CCADDB = CCCDDDB = accdddb = aacdddb = aaadddb = aaabddb = aaabbdb = aaabbbb = aaabbbc B Reichel, R Stiebe: Theoretische Informatik für Lehrer 190

Pumping Lemma für kontextfreie Sprachen Sei L eine kontextfreie Sprache Dann gibt es eine Konstante k N, so dass für alle Wörter z L mit z k eine Zerlegung z = uvwxy existiert, so dass gilt: (i) vwx k und vx 1, (ii) für alle i N gilt uv i wx i y L B Reichel, R Stiebe: Theoretische Informatik für Lehrer 191

Pumping Lemma Anwendung Mit Hilfe des Pumping Lemmas kann man zeigen, dass folgende Sprachen nicht kontextfrei sind: {a n b n c n n 1}, {ww w {a, b} }, {a m b n a m b n m, n 1}, {a 2n n 0}, {a m b n 0 m, 1 n 2 m } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 192

Abschlusseigenschaften Satz Die Menge der kontextfreien Sprachen ist unter den Operationen (i) Vereinigung, (ii) Produkt (Konkatenation) und (iii) Kleene-Stern abgeschlossen Sie ist unter den Operationen (iv) Durchschnitt und (v) Komplement nicht abgeschlossen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 193

Weitere Entscheidungsprobleme Satz Das Leerheitsproblem und das Endlichkeitsproblem für kontextfreie Grammatiken sind entscheidbar Satz Das Schnittproblem und das Äquivalenzproblem für kontextfreie Grammatiken sind unentscheidbar B Reichel, R Stiebe: Theoretische Informatik für Lehrer 194

Kellerautomaten endliche Automaten besitzen nur begrenzten Speicherplatz (ihre Zustände) Turingmaschinen besitzen unbegrenzten Speicherplatz mit im Prinzip wahlfreiem Zugriff Kellerautomaten besitzen unbegrenzten Speicherplatz in Form eines Kellerspeichers (Stack) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 195

Definition Kellerautomat Definition Ein (nichtdeterministischer) Kellerautomat (kurz PDA von pushdown automaton) M ist ein 6-Tupel M = (Z, Σ, Γ, δ, z 0, #) Dabei ist Z das Zustandsalphabet, Σ das Eingabealphabet, Γ das Kelleralphabet, z 0 Z der Anfangszustand, δ : Z (Σ {ε}) Γ 2 Z Γ E die Zustandsüberführungsfunktion bedeutet dabei die Menge der endlichen Teilmengen von X), (2 X E # Γ das Kelleranfangssymbol B Reichel, R Stiebe: Theoretische Informatik für Lehrer 196

Arbeitsweise von Kellerautomaten Der PDA startet im Zustand z 0 und mit dem Kellerinhalt # Bei (z, B 1 B 2 B k ) δ(z, a, A) mit a Σ befindet sich der PDA im Zustand z, liest auf dem Eingabeband ein a und im Keller ein A (das oberste Symbol) Er entfernt dieses A aus dem Keller, geht in den Zustand z über, bewegt den Lesekopf auf dem Eingabeband einen Schritt nach rechts und schreibt auf den Keller das Wort B 1 B 2 B k derart, dass B 1 das neue oberste Symbol des Kellers ist Bei (z, B 1 B 2 B k ) δ(z, ε, A) liest er im Gegensatz zur obigen Aktion auf dem Eingabeband nichts ein und bewegt den Lesekopf auf dem Eingabeband nicht Der PDA akzeptiert die Eingabe, wenn er sie vollständig eingelesen hat und der Keller leer ist (auch # steht nicht mehr im Keller) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 197

Kellerautomat: Arbeitsweise für (z, B 1 B 2 B k ) δ(z, a i, A 1 ) a 1 a 2 a i a i+1 a n a 1 a 2 a i a i+1 a n z A 1 A 2 A r # z B 1 B k A 2 A r # B Reichel, R Stiebe: Theoretische Informatik für Lehrer 198

Kellerautomat: Arbeitsweise für (z, B 1 B 2 B k ) δ(z, ε, A 1 ) a 1 a 2 a i a i+1 a n a 1 a 2 a i a i+1 a n z A 1 A 2 A r # z B 1 B k A 2 A r # B Reichel, R Stiebe: Theoretische Informatik für Lehrer 199

Konfiguration von Kellerautomaten Definition Sei M = (Z, Σ, Γ, δ, z 0, #) ein Kellerautomat Eine Konfiguration von M ist ein Tripel k Z Σ Γ Anschaulich beschreibt eine Konfiguration k = (z, v, γ) folgende augenblickliche Situation des PDA: er befindet sich im Zustand z, v ist die noch nicht verarbeitete Eingabe auf dem Eingabeband und im Keller steht das Wort γ, wobei das erste Symbol von γ das oberste Kellersymbol sein soll B Reichel, R Stiebe: Theoretische Informatik für Lehrer 200

PDA Konfigurationsübergänge und akzeptierte Sprache k 1 k 2 bedeutet, dass der Kellerautomat die Konfiguration k 1 in genau einem Schritt in die Konfiguration k 2 überführt k 1 k 2 bedeutet, dass der Kellerautomat k 1 in endlich vielen Schritten (auch null) in k 2 überführt Definition Für einen PDA M = (Z, Σ, Γ, δ, z 0, #) sei die von ihm akzeptierte Sprache T (M) definiert durch T (M) = {w Σ (z 0, w, #) (z, ε, ε) für ein z Z} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 201

Beispiel eines PDA Es sei M = ({z 0, z 1 }, {a, b}, {A, B, #}, δ, z 0, #) ein Kellerautomat, mit δ(z 0, a, X) = {(z 0, AX)} für X {B, #}, δ(z 0, a, A) = {(z 0, AA), (z 1, ε)}, δ(z 0, b, X) = {(z 0, BX)} für X {A, #}, δ(z 0, b, B) = {(z 0, BB), (z 1, ε)}, δ(z 0, ε, #) = {(z 1, ε)}, δ(z 1, a, A) = {(z 1, ε)}, δ(z 1, b, B) = {(z 1, ε)}, δ(z 1, ε, #) = {(z 1, ε)} Dann gilt T (M) = {ww R w {a, b} } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 202

Kellerautomaten und kontextfreie Sprachen Satz Eine Sprache L ist kontextfrei genau dann, wenn ein (nichtdeterministischer) Kellerautomat M mit T (M) = L existiert B Reichel, R Stiebe: Theoretische Informatik für Lehrer 203

Deterministisch kontextfreie Sprachen Definition Ein Kellerautomat M = (Z, Σ, Γ, δ, z 0, #) heißt deterministisch, wenn: δ(z, a, A) + δ(z, ε, A) 1 für alle z Z, a Σ, A Γ Definition Eine Sprache L Σ heißt deterministisch kontextfrei, wenn L$ von einem deterministischen Kellerautomaten akzeptiert wird, wobei $ / Σ ein Sondersymbol ist Satz Die Menge der deterministisch kontextfreien Sprachen ist eine echte Teilmenge der Menge der kontextfreien Sprachen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 204

Beispiel eines deterministischen PDA M = ({z 0 }, {a 1, a 2, b 1, b 2, $}, {A 1, A 2, #}, δ, z 0, #) ein Kellerautomat mit δ(z 0, a 1, X) = {(z 0, A 1 X)} für X {A 1, A 2, #}, δ(z 0, a 2, X) = {(z 0, A 2 X)} für X {A 1, A 2, #}, δ(z 0, b 1, A 1 ) = {(z 0, ε)}, δ(z 0, b 2, A 2 ) = {(z 0, ε)}, δ(z 0, $, #) = {(z 0, ε)} T (M) = {w$ w D 2 }, dh die Dyck-Sprache D 2 ist deterministisch kontextfrei B Reichel, R Stiebe: Theoretische Informatik für Lehrer 205

Weiteres Beispiel eines deterministischen PDA Sei M = ({z 0, z 1 }, {a, b, c, $}, {A, B, #}, δ, z 0, #) ein Kellerautomat mit δ(z 0, a, X) = {(z 0, AX)} für X {A, B, #}, δ(z 0, b, X) = {(z 0, BX)} für X {A, B, #}, δ(z 0, c, X) = {(z 1, X)} für X {A, B, #}, δ(z 1, a, A) = {(z 1, ε)}, δ(z 1, b, B) = {(z 1, ε)}, δ(z 1, $, #) = {(z 1, ε)} Dann gilt T (M) = {wcw R $ w {a, b} } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 206

Bedeutung der deterministisch kontextfreien Sprachen Wortproblem entscheidbar in linearer Zeit (gegenüber kubischer Laufzeit des CYK-Algorithmus) Ausdruckskraft hinreichend für syntaktische Analyse im Compilerbau Bei realen Programmiersprachen kommen LR(k)-Grammatiken und deren Varianten zum Einsatz B Reichel, R Stiebe: Theoretische Informatik für Lehrer 207

Formale Sprachen Übersichten Chomsky-Hierarchie: Typ 3 Typ 2 Typ 1 Typ 0 Beispiele für die Echtheit der Inklusionen {a n b n n 1} Typ 2 \ Typ 3, {a n b n c n n 1} Typ 1 \ Typ 2, K Typ 0 \ Typ 1, wobei K {0, 1} das spezielle Halteproblem ist B Reichel, R Stiebe: Theoretische Informatik für Lehrer 208

Charakterisierungen der Sprachfamilien der Chomsky Hierarchie Sprache Grammatik Automat Andere Regulär Typ 3 Endlicher Automat (EA) Regulärer Ausdruck Deterministisch LR(k) Deterministischer kontextfrei Kellerautomat (DPDA) Kontextfrei Typ 2 (Nichtdeterministischer) Kellerautomat (PDA) Kontextabhängig Typ 1 (Nichtdeterministischer) Linear beschränkter Automat (LBA) Rekursiv Typ 0 Turingmaschine (TM) aufzählbar B Reichel, R Stiebe: Theoretische Informatik für Lehrer 209

Determinismus vs Nichtdeterminismus Nichtdeterminismus Determinismus Äquivalenz NEA DEA ja PDA DPDA nein LBA DLBA? NTM DTM ja B Reichel, R Stiebe: Theoretische Informatik für Lehrer 210

Abschlusseigenschaften Typ 3 Det kf Typ 2 Typ 1 Typ 0 Vereinigung ja nein ja ja ja Durchschnitt ja nein nein ja ja Komplement ja ja nein ja nein Konkatenation ja nein ja ja ja Kleene-Stern ja nein ja ja ja B Reichel, R Stiebe: Theoretische Informatik für Lehrer 211

Entscheidbarkeitsprobleme Typ 3 Det kf Typ 2 Typ 1 Typ 0 Wortproblem ja ja ja ja nein Leerheitsproblem ja ja ja nein nein Schnittproblem ja nein nein nein nein Äquivalenzproblem ja ja nein nein nein B Reichel, R Stiebe: Theoretische Informatik für Lehrer 212