Deterministischer Kellerautomat (DPDA)

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

Kontextfreie Sprachen

Kontextfreie Sprachen

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

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

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

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

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Einführung in die Theoretische Informatik

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

Grundlagen der Theoretischen Informatik

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016

Die mathematische Seite

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

Formale Sprachen und Automaten: Tutorium Nr. 8

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

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

Theorie der Informatik

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

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

(Prüfungs-)Aufgaben zu formale Sprachen

Theoretische Grundlagen der Informatik

Theoretische Informatik 2

Chomsky-Grammatiken 16. Chomsky-Grammatiken

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

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}}

Endliche Automaten. δ : Z Σ Z die Überführungsfunktion, z 0 Z der Startzustand und F Z die Menge der Endzustände (Finalzustände).

Automaten und formale Sprachen Klausurvorbereitung

11.1 Kontextsensitive und allgemeine Grammatiken

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

Automatentheorie und formale Sprachen

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

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

Grundlagen der Theoretischen Informatik

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

Grundlagen der Theoretischen Informatik

Automaten und Formale Sprachen SoSe 2013 in Trier

DKA und dkfs (mit Übungen)

8. Turingmaschinen und kontextsensitive Sprachen

Ausgewählte unentscheidbare Sprachen

3 kontextfreie Sprachen

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

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Formale Sprachen. Script, Kapitel 4. Grammatiken

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

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

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

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

Typ-1-Sprachen. Satz 1 (Kuroda ( ) 1964)

Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

2.4 Kontextsensitive und Typ 0-Sprachen

Grundlagen der Theoretischen Informatik

Satz (Abschluß unter der Stern-Operation)

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

Theoretische Informatik Testvorbereitung Moritz Resl

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Kontextfreie Grammatiken

1.5 Turing-Berechenbarkeit

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

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

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

2.2 Reguläre Sprachen Endliche Automaten

6 Kontextfreie Grammatiken

Das Pumping-Lemma Formulierung

Theoretische Informatik II

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

Einführung in die Theoretische Informatik

Musterlösung Informatik-III-Klausur

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Theoretische Informatik I

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

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

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Theoretische Informatik für Medieninformatiker

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)

a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume

Zusammenfassung Grundzüge der Informatik 4

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

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

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

Grundlagen der Theoretischen Informatik

Transkript:

Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ, z 0,#) ist ein PDA; 2 ( a Σ)( A Γ)( z Z)[ δ(z, a, A) + δ(z,λ, A) 1]; 3 F Z ist eine ausgezeichnete Teilmenge von Endzuständen (M akzeptiert per Endzustand, nicht per leerem Keller). J. Rothe (HHU Düsseldorf) Informatik IV 1 / 22

Deterministische Kellerautomaten Deterministischer Kellerautomat: Beispiel Beispiel: Der PDA M für die Sprache aus einem früheren Beispiel: L = {a m b m m 1} z 0 a# z 0 A# z 1 λ# z 1 λ z 0 aa z 0 AA z 1 ba z 1 λ z 0 ba z 1 λ hat nur deterministische δ-übergänge, ist aber aufgrund der Akzeptanz mittels leerem Keller nach obiger Definition kein DPDA. J. Rothe (HHU Düsseldorf) Informatik IV 2 / 22

Deterministische Kellerautomaten Deterministischer Kellerautomat: Beispiel Um einen deterministischen Kellerautomaten M e für die Sprache L = {a m b m m 1} zu definieren, müssen wir noch einen Endzustand z e einführen: M e = ({a, b},{a,#},{z 0, z 1, z e },δ e, z 0,#,{z e }) mit der Überführungsfunktion δ e : z 0 a# z 0 A# z 1 λ# z e λ z 0 aa z 0 AA z 1 ba z 1 λ z 0 ba z 1 λ Beispielsweise ist aabb L(M e ) = L, denn: (z 0, aabb,#) Me (z 0, abb, A#) Me (z 0, bb, AA#) Me (z 1, b, A#) Me (z 1,λ,#) Me (z e,λ,λ) J. Rothe (HHU Düsseldorf) Informatik IV 3 / 22

Deterministische Kellerautomaten Deterministischer Kellerautomat: Beispiel Beispiel: Der PDA M = ({a, b},{a, B,#},{z 0, z 1 },δ, z 0,#) mit der Überführungsfunktion δ: z 0 a# z 0 A# z 0 aa z 1 λ z 0 aa z 0 AA z 0 bb z 1 λ z 0 ab z 0 AB z 0 λ# z 1 λ z 0 b# z 0 B# z 1 aa z 1 λ z 0 ba z 0 BA z 1 bb z 1 λ z 0 bb z 0 BB z 1 λ# z 1 λ mit L(M ) = {w sp(w) w {a, b} } ist kein DPDA, da M nichtdeterministische δ-übergänge hat: δ(z 0, a, A) = {(z 0, AA),(z 1,λ)}, also δ(z 0, a, A) = 2 > 1, δ(z 0, b, B) = {(z 0, BB),(z 1,λ)}, also δ(z 0, b, B) = 2 > 1, und δ(z 0, a,#) = {(z 0, A#)} und δ(z 0,λ,#) = {(z 1,λ)}, also δ(z 0, a,#) + δ(z 0,λ,#) = 2 > 1. J. Rothe (HHU Düsseldorf) Informatik IV 4 / 22

Deterministische Kellerautomaten Sprache eines deterministischen Kellerautomaten Definition Die von einem deterministischen Kellerautomaten M = (Σ,Γ, Z,δ, z 0,#, F) akzeptierte Sprache ist definiert durch L(M) = {x Σ (z 0, x,#) M (z,λ,γ) für ein z F und γ Γ }. Für jedes Eingabewort w Σ ist (z 0, w,#) die entsprechende Startkonfiguration von M. Für jedes γ Γ und z F ist die Konfiguration (z,λ,γ) eine Endkonfiguration des DPDA M. J. Rothe (HHU Düsseldorf) Informatik IV 5 / 22

Deterministische Kellerautomaten Deterministisch kontextfreie Sprache Definition Eine Sprache A heißt deterministisch kontextfrei, falls es einen deterministischen Kellerautomaten M gibt mit A = L(M). Mit DCF = {L(M) M ist DPDA} bezeichnen wir die Klasse der deterministisch kontextfreien Sprachen. J. Rothe (HHU Düsseldorf) Informatik IV 6 / 22

Deterministische Kellerautomaten Deterministisch kontextfreie Sprachen Bemerkung: Im Gegensatz zu (nichtdeterministischen) Kellerautomaten macht es bei DPDA einen Unterschied, ob man sie mittels Akzeptierung per Endzustand oder mittels Akzeptierung per leerem Keller definiert. DCF stimmt genau mit der Klasse der so genannten LR(k)-Sprachen überein, die bei der Syntaxanalyse im Compilerbau eine Rolle spielen. Für deterministisch kontextfreie Sprachen ist das Wortproblem in linearer Zeit lösbar. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 22

Deterministische Kellerautomaten Deterministisch kontextfreie Sprachen Theorem REG DCF CF. Beweis: Die Inklusionen REG DCF CF sind klar. Die Ungleichheiten werden nicht bewiesen, sondern nur skizziert: Die Sprache L = {w $ sp(w) w {a, b} } ist deterministisch kontextfrei. Andererseits kann man mit dem Pumping-Lemma für reguläre Sprachen zeigen, dass L REG. Die Sprache L = {w sp(w) w {a, b} } ist jedoch nicht deterministisch kontextfrei. Andererseits ist L in CF. Daraus folgt REG DCF CF, also REG DCF CF. J. Rothe (HHU Düsseldorf) Informatik IV 8 / 22

Deterministische Kellerautomaten Deterministisch kontextfreie Sprachen Alle Sprachen Typ-0-Sprachen Typ-1-Sprachen (CS) Typ-2-Sprachen (CF) Determ. kf-sprachen (DCF) Typ-3-Sprachen (REG) Abbildung: Einordnung von DCF in die Chomsky-Hierarchie J. Rothe (HHU Düsseldorf) Informatik IV 9 / 22

Deterministische Kellerautomaten Deterministisch kontextfreie Sprachen Theorem DCF ist abgeschlossen unter Komplement, aber weder unter Schnitt (wie CF) noch unter Vereinigung noch unter Konkatenation noch unter Iteration. ohne Beweis J. Rothe (HHU Düsseldorf) Informatik IV 10 / 22

Deterministische Kellerautomaten Deterministisch kontextfreie Sprachen Behauptung: Die Sprache L = {a n b n c m n, m 0} {a n b m c m n, m 0} = {a i b j c k i = j oder j = k} ist kontextfrei und inhärent mehrdeutig. ohne Beweis J. Rothe (HHU Düsseldorf) Informatik IV 11 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Ziel der Syntaxanalyse Programmiersprachen sind meist kontextfreie Sprachen, deren Wörter die syntaktisch korrekten Programme sind. Für eine durch eine kfg G gegebene Programmiersprache L = L(G) und ein gegebenes Programm w soll getestet werden, ob w syntaktisch korrekt ist, d.h., ob gilt: w L(G). Das ist gerade das Wortproblem. Falls ja: Angabe eines Syntaxbaums der Ableitung S G w. Falls nein: Angabe möglichst vieler Syntaxfehler. Wir beschränken uns auf den Fall ja. J. Rothe (HHU Düsseldorf) Informatik IV 12 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Aufgaben eines Compilers (Übersetzers) Übersetzen eines Programms aus einer höheren Programmiersprache in Maschinensprache. 1 Die lexikalische Analyse erkennt mittels endlicher Automaten und bestimmter Hashing-Techniken Schlüsselwörter (while,for,if, then, etc.) und vereinbarte Namen. 2 Die Syntaxanalyse überprüft die syntaktische Korrektheit des Programmtextes. 3 Die semantische Analyse überprüft die semantische Korrektheit des Programms. 4 Die Code-Erzeugung (Assembler Code, Maschinensprache) und Optimierung ermöglichen die Synthese des erfolgreich kompilierten Programms. J. Rothe (HHU Düsseldorf) Informatik IV 13 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Strategien der Syntaxanalyse (Parsing) allgemeine Verfahren für bestimmte Teilklassen; Tabellenstrategien (z.b. der Algorithmus von Cocke, Younger und Kasami); ableitungsorientierte Strategien. Unter den vielen Strategien für die Syntaxanalyse interessieren wir uns nur für ein spezielles Top-down-Verfahren, das v.l.n.r. vorgeht: das LL(k)-Parsing. J. Rothe (HHU Düsseldorf) Informatik IV 14 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Grundidee bei ableitungsorientierten Strategien Sei G = (Σ, N, S, P) eine kfg, w L(G) sei ein gegebenes Wort (d.h. Programm), und T sei ein Syntaxbaum für die Ableitung S G w = xyz. S Vorstruktur A a 1 a 2 a n Linksstruktur Nachstruktur Rechtsstruktur x y z Abbildung: Struktur eines Syntaxbaums beim Parsing J. Rothe (HHU Düsseldorf) Informatik IV 15 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Grundidee bei ableitungsorientierten Strategien Betrachte eine Verzweigung in T, die durch Anwendung der Regel A α = a 1 a 2 a n entsteht, wobei A N und jedes a i Σ N. Die Abbildung zeigt die Struktur des Syntaxbaums T beim Parsing. Dabei ist w = xyz, wobei x der terminale Linkskontext, y der terminale Nachkontext und z der terminale Rechtskontext von A sind. J. Rothe (HHU Düsseldorf) Informatik IV 16 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Grundidee bei ableitungsorientierten Strategien Die wesentlichen Strategien sind: Top-down-Analyse: Fortschreiten, wenn die Vorstruktur bekannt und die Nachstruktur unbekannt ist, d.h. von oben nach unten. Dabei geht man von links nach rechts vor, erweitert also einen schon bekannten Präfix des abzuleitenden Wortes. Bottom-up-Analyse: Fortschreiten, wenn die Nachstruktur bekannt und die Vorstruktur unbekannt ist, d.h. von unten nach oben. Dabei geht man von rechts nach links vor, erweitert also einen schon bekannten Suffix des abzuleitenden Wortes. J. Rothe (HHU Düsseldorf) Informatik IV 17 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Grundidee bei ableitungsorientierten Strategien Top-down von links nach rechts Bottom-up von rechts nach links schon erkannt noch unbekannt zu erkennende Regelanwendung Präfix erweitern Suffix erweitern Abbildung: Top-down-Strategie und Bottom-up-Strategie Die Abbildung veranschaulicht beide Strategien. J. Rothe (HHU Düsseldorf) Informatik IV 18 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Look-ahead: Beispiel Beispiel: Betrachte das Wort w = abba$ und die kfg G mit den folgenden Regeln: S C$, C ba ab, A a ac, B b bc, wobei das Terminalzeichen $ als eine Endmarke dient. Die einzige mögliche Startmöglichkeit für eine Ableitung S G,l w ist die Regel S C$. J. Rothe (HHU Düsseldorf) Informatik IV 19 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Look-ahead: Beispiel Beispiel: Danach gibt es zwei Möglichkeiten, C zu ersetzen: C ba und C ab. Die erste Möglichkeit entfällt aber, da der erste Buchstabe von w ein a ist; also muss C ab angewandt werden. Es reicht also ein Look-ahead von einem Symbol aus, um die richtige Entscheidung zu treffen. Bisher gilt: S G,l C$ G,l ab$. J. Rothe (HHU Düsseldorf) Informatik IV 20 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Look-ahead: Beispiel Beispiel: Nun gibt es zwei Möglichkeiten, B zu ersetzen: B b und B bc. Aber diesmal reicht ein Look-ahead von einem Symbol nicht mehr aus, da beide Regeln mit b beginnen. Wir brauchen also einen Look-ahead von zwei Symbolen. Damit sehen wir, dass wieder die erste Möglichkeit entfällt, da w ab$. Es wird also B bc angewandt, und wir erhalten: S G,l C$ G,l ab$ G,l abc$. J. Rothe (HHU Düsseldorf) Informatik IV 21 / 22

Anwendung: Syntaxanalyse durch LL(k)-Parser Look-ahead: Beispiel Beispiel: Es gibt zwei Möglichkeiten, C zu ersetzen. Da der dritte Buchstabe von w ein b ist (ein Look-ahead von einem Symbol genügt), wird C ba angewandt: S G,l C$ G,l ab$ G,l abc$ G,l abba$. Nun ist nur die Regel A a möglich: S G,l C$ G,l ab$ G,l abc$ G,l abba$, und der Syntaxbaum für die Ableitung S G,l w ist gefunden. Insgesamt genügte immer ein Look-ahead von zwei Symbolen. G ist ein Beispiel für eine (starke) LL(2)-Grammatik. J. Rothe (HHU Düsseldorf) Informatik IV 22 / 22