Formale Sprachen und Automaten: Tutorium Nr. 8

Nachtrag Besprechung von Übungsblatt 7 CFG → PDA Der PDA als TDP Der PDA in Prolog Zusammenfassung Formale Sprachen und Automaten: Tutorium Nr. ...
18 downloads 1 Views 444KB Size
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