Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Formale Sprachen und Automaten: Tutorium Nr. 8 Johannes Gontrum
15. Juni 2013
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Übersicht
1 Nachtrag 2 Besprechung von Übungsblatt 7
3
4
5 6
Aufgabe 1 Aufgabe 2 Aufgabe 3 CFG → PDA Definitionen Ein Beispiel! Aufgabe Der PDA als TDP Vorgehen Ein Beispiel! Noch eine Aufgabe! Der PDA in Prolog Zusammenfassung
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Nachtrag zu Übungsblatt 6 RegEx → Automat
L1 = (a∗ | c∗ ) · ab a q1 b
a start
q0
q4 c
c q2
Formale Sprachen und Automaten: Tutorium Nr. 8
b a
q3 Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 1
Besprechung des Übungsblattes Aufgabe 1
Frage 1 Eine Grammatik ist genau dann kontextfrei, wenn die linke Seite jeder Regel nur aus einem Nichtterminalsymbol besteht.
Wahr!
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 1
Besprechung des Übungsblattes Aufgabe 1
Frage 2 Wenn L eine kontextfreie Sprache ist, so ist auch jede echte Teilmenge von L eine kontextfreie Sprache.
Falsch!
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 1
Besprechung des Übungsblattes Aufgabe 1
Frage 3 Endliche Sprachen sind immer regulär.
Wahr!
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 1
Besprechung des Übungsblattes Aufgabe 1
Frage 4 Mit dem Pumping-Lemma lässt sich nicht beweisen, dass eine Sprache regulär ist.
Wahr!
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 1
Besprechung des Übungsblattes Aufgabe 1
Frage 5 Dyck-Sprachen sind nicht regulär, können aber durch eine lineare Grammatik beschrieben werden.
Falsch!
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 1
Besprechung des Übungsblattes Aufgabe 1
Frage 6 Eine Sprache, die durch eine kontextfreie Grammatik beschrieben wird, kann nicht regulär sein.
Falsch!
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 2
Besprechung des Übungsblattes Aufgabe 2
a
b a
start
q0
q1 b
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 2
Besprechung des Übungsblattes Aufgabe 2: Determinisiert
b
start
{q0 }
a
{q0 , q1 }
a
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 2
Besprechung des Übungsblattes Aufgabe 2: Fertiges Komplement
b
start
{q0 }
a
{q0 , q1 }
b a a Formale Sprachen und Automaten: Tutorium Nr. 8
S
b Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 2
Besprechung des Übungsblattes Aufgabe 2: Präfixe
Wie lautet das Präfix der Wörter in L(A) und L(A)? a∗ bzw. b∗
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 2
Besprechung des Übungsblattes Aufgabe 2: Abschlusseigenschaften
Beweise: Wenn L1 und L2 reguläre Mengen sind, ist auch L1 \L2 , d.h. {x | x ∈ L1 ∧ x ∈ / L2 } eine reguläre Menge.
Lösung: Da reguläre Mengen unter Schnitt und Komplement abgeschlossen sind, ist auch L1 \L2 regulär.
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 3
Besprechung des Übungsblattes Aufgabe 3: L1 = {xwxR | w, x ∈ Σ+ }
L1 = {xwxR | w, x ∈ Σ+ } Regulärer Ausdruck: (a · (a | b)+ · a) ∪ (b · (a | b)+ · b)
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe 3
Besprechung des Übungsblattes Aufgabe 3: L2 = {x | x ∈ Σ mit gleich vielen a wie b}
L2 = {x | x ∈ Σ mit gleich vielen a wie b} Beweis mit Schleifensatz: Bsp.: Form an bn Lässt sich nicht in uvw aufteilen, so dass uv i w gilt. Beweis durch Abgeschlossenheitseigenschaften: a∗ b∗ ist regulär. L2 ∩ a∗ b∗ müsste auch regulär sein. Ergebnis ist aber: an bn , somit ist L2 nicht regulär.
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Definitionen
CFG → PDA Definitionen
Kellerautomat A = hQ, Σ, q0 , F, δ, Z0 , Γi
Kontextfreie-Grammatik G = hN, Σ, P, Si mit N → (N ∪ Σ)∗ ∈ P
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Definitionen
CFG → PDA Definition Umformung
Für jede kontextfreie Grammatik G = hN, Σ, P, Si gibt es einen Kellerautomaten K = h{q}, Σ, N ∪ Σ, δ, S, ∅i
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Definitionen
CFG → PDA Definition Umformung
K = h{q}, Σ, N ∪ Σ, δ, S, ∅i
δ - Funktionen Hypothesenbildung A→α∈P (q, α) ∈ δ(q, , A) Verfikation der Eingabe a∈Σ δ(q, a, a) = {(q, )} Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Ein Beispiel!
CFG → PDA Ein Beispiel!
Beispielgrammatik G = h{S, NP, VP, EN, V}, {Hans, küsst, Maria}, P, Si P = {S
→ NP, VP NP → EN
VP → V, NP
V
EN → Hans
EN → Maria}
Formale Sprachen und Automaten: Tutorium Nr. 8
→ küsst
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Ein Beispiel!
CFG → PDA Ein Beispiel!
Produktionsregeln P = {S
→ NP, VP NP → EN
VP → V, NP
V
→ küsst
EN → Hans
EN → Maria}
δ - Funktionen δ(q, , S)
={(q, NP VP)} δ(q, , NP)
={(q, EN)}
δ(q, , VP)
={(q, V NP)}
δ(q, , V)
={(q, küsst)}
δ(q, , EN)
={(q, Hans), (q, Maria)}
δ(q, Hans, Hans)
={(q, )}
δ(q, küsst, küsst) ={(q, )}
Formale Sprachen und Automaten: Tutorium Nr. 8
δ(q, Maria, Maria) ={(q, )} Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Ein Beispiel!
CFG → PDA Ein Beispiel!
Der fertige Kellerautomat K = h{q}, Σ, N ∪ Σ, δ, S, ∅i Σ = {Hans, küsst, Maria} N = {S, NP, VP, EN, V} δ={ δ(q, , S) ={(q, NP VP)} δ(q, , NP)
={(q, EN)}
δ(q, , VP)
δ(q, , V)
={(q, küsst)}
δ(q, , EN)
={(q, Hans),
={(q, V NP)}
(q, Maria)} δ(q, Hans, Hans)
={(q, )}
δ(q, küsst, küsst) ={(q, )}
Formale Sprachen und Automaten: Tutorium Nr. 8
δ(q, Maria, Maria) ={(q, )} Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Aufgabe
CFG → PDA Eine Aufgabe!
Aufgabe Schreibe eine kontextfreie Grammatik für den Satz Das Wetter ist schön. und wandle sie in einen Kellerautomaten um.
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Vorgehen
Der PDA als Top-Down-Parser Vorgehen
Was tut der Automat? 1
Hypothesenbildung: Die NT werden extrahiert, bis ein T oben auf dem Stapel liegt.
2
Verifikation: Entspricht das oberste Symbol des Stapels dem aktuellen Symbol meiner Eingabe? Ja Entferne das Symbol vom Stapel und gehe einen Schritt weiter in der Eingabe. Nein Backtracking.
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Ein Beispiel!
Der PDA als Top-Down-Parser Konfigurationsverlauf für die Eingabe ’Maria küsst Hans’ (q, Maria küsst Hans, S)
`(q, Maria küsst Hans, NP VP)
(q, Maria küsst Hans, NP VP)
`(q, Maria küsst Hans, EN VP)
(q, Maria küsst Hans, EN VP)
`(q, Maria küsst Hans, Maria VP)
(q, Maria küsst Hans, Maria VP) `(q, küsst Hans, VP) (q, küsst Hans, VP)
`(q, küsst Hans, V NP)
(q, küsst Hans, V NP)
`(q, küsst Hans, küsst NP)
(q, küsst Hans, küsst VP)
`(q, Hans, NP)
(q, Hans, NP)
`(q, Hans, EN)
(q, Hans, EN)
`(q, Hans, Hans)
(q, Hans, Hans)
`(q, , )
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Noch eine Aufgabe!
Der PDA als Top-Down-Parser Eine Aufgabe!
Aufgabe: Parse den Satz Das Wetter ist schön. mit dem Kellerautomaten, den du vorhin konstruiert hast! Schreibe alle Konfigurationen auf.
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Der PDA in Prolog
Demo
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum
Nachtrag
Besprechung von Übungsblatt 7
CFG → PDA
Der PDA als TDP
Der PDA in Prolog
Zusammenfassung
Zusammenfassung • CFG-Schreiben • CFG in PDA umwandeln • Konzept des PDA als Top-Down Parser • Erster Parsingalgorithmus! • Der Sinn von Konfigurationen • Algorithmus per Hand anwenden • Parser vs. Erkenner
Formale Sprachen und Automaten: Tutorium Nr. 8
Johannes Gontrum