Kontextfreie Sprachen

Ähnliche Dokumente
Kontextfreie Sprachen

10 Kellerautomaten. Kellerautomaten

Informatik III - WS07/08

Formale Sprachen. Script, Kapitel 4. Grammatiken

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

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Kontextfreie Sprachen werden von PDAs akzeptiert

Formale Sprachen. Script, Kapitel 4. Grammatiken

Ogden s Lemma: Der Beweis (1/5)

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Übersicht. 3 3 Kontextfreie Sprachen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

8. Turingmaschinen und kontextsensitive Sprachen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Carlos Camino Einführung in die Theoretische Informatik SS 2015

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

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

F2 Zusammenfassung Letzte Tips zur Klausur

Sprachen und Grammatiken

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Einführung in die Computerlinguistik

Deterministischer Kellerautomat (DPDA)

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

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

Musterlösung Informatik-III-Nachklausur

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

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

Theorie der Informatik

Theoretische Informatik I (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. 1.5 Tabellen

Grundlagen der Theoretischen Informatik

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

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

Vorlesung Theoretische Informatik (Info III)

Musterlösung Informatik-III-Klausur

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

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

Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:

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

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

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

kontextfreie Sprachen: Normalformen

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!"# v 1

I.5. Kontextfreie Sprachen

Automaten und Formale Sprachen SoSe 2013 in Trier

Das Halteproblem für Turingmaschinen

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Theoretische Grundlagen der Informatik

11.1 Kontextsensitive und allgemeine Grammatiken

Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist

Spracherkennung (Syntaxanalyse)

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Einführung in die Computerlinguistik. Chomskyhierarchie. Dozentin: Wiebke Petersen Wiebke Petersen Einführung CL (SoSe 2010) 1

Theoretische Informatik Testvorbereitung Moritz Resl

Einführung in die Computerlinguistik Chomskyhierarchie

Nichtdeterministischer Kellerautomat

Einführung in die Computerlinguistik Chomskyhierarchie

Automatentheorie und formale Sprachen

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theorie der Informatik

Kapitel 3: Kontextfreie Sprachen. Kontextfreie Sprachen 1 / 99

2.2 Reguläre Sprachen Endliche Automaten

Automaten und formale Sprachen Klausurvorbereitung

Theoretische Grundlagen der Informatik

Andererseits ist L kontextfrei, wie die einfache kontextfreie Grammatik G = ({a, b},{s}, S, P) mit den Regeln

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

Zusammenfassung Grundzüge der Informatik 4

Turing: prinzipielle Berechenbarkeit Abschnitt 4.2. Turingmaschinen: DTM Abschnitt 4.2. DTM: Akzeptieren und Entscheiden Abschnitt 4.

Formale Grundlagen der Wirtschaftsinformatik

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Die mathematische Seite

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

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

Automaten und formale Sprachen Notizen zu den Folien

Die oben aufgelisteten Sprachfamilien werden von oben nach unten echt mächtiger, d.h. die Familie der regulären Sprachen ist eine echte Teilfamilie

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Akzeptierende Turing-Maschine

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik. SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch

Einführung in die Computerlinguistik

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

2. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

3.1 Kontextfreie Sprachen und Grammatiken 3.2 Ableitungsbäume 3.3 Die pre -Operation

Automatentheorie und formale Sprachen

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

Grundlagen der Theoretischen Informatik

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

2.6 Abschlußeigenschaften

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Theoretische Informatik

Lösungen zu Übungsblatt 6

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

Transkript:

Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch Kellerautomaten Deterministisch kontextfreie Sprachen B Reichel, R Stiebe 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 209

Determinismus vs Nichtdeterminismus Nichtdeterminismus Determinismus Äquivalenz NEA DEA ja PDA DPDA nein LBA DLBA? NTM DTM ja B Reichel, R Stiebe 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 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 212