WS07/08 Automaten und Formale Sprachen 14. Vorlesung

Ähnliche Dokumente
Automaten und Formale Sprachen 14. Vorlesung

Theoretische Grundlagen der Informatik

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

Ogden s Lemma: Der Beweis (1/5)

DisMod-Repetitorium Tag 4

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

Kellerautomaten u. kontextfr. Spr.

Das Halteproblem für Turingmaschinen

Grundlagen der Theoretischen Informatik

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

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

Informatik III - WS07/08

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Erzeugende Grammatiken akzeptierende Automaten.

WS07/08 Automaten und Formale Sprachen 8. Vorlesung

Kontextfreie Sprachen werden von PDAs akzeptiert

Übersicht. 3 3 Kontextfreie Sprachen

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

Rekursiv aufzählbare Sprachen

Einführung in die Computerlinguistik

Automaten und formale Sprachen Klausurvorbereitung

Formale Sprachen und Automaten

Theoretische Grundlagen der Informatik

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

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

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

2.4 Kontextsensitive und Typ 0-Sprachen

Einführung in die Theoretische Informatik

Klammersprache Definiere

5.2 Endliche Automaten

10 Kellerautomaten. Kellerautomaten

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 19.

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 20.

(Prüfungs-)Aufgaben zu formale Sprachen

Akzeptierende Turing-Maschine

Automatentheorie und formale Sprachen

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

ADS-EI 5.2 Struktur einer Turing-Maschine 120/451 ľernst W. Mayr

Berechenbarkeitstheorie 1. Vorlesung

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

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

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

Automaten und formale Sprachen Notizen zu den Folien

{a i b i i 0} FORMALE SYSTEME. Kellerautomaten. (Nicht)Abschlusseigenschaften für Typ 2. Ein Berechnungsmodell für Typ-2-Sprachen

Algorithmentheorie 2. Vorlesung

Einführung in die Theoretische Informatik

Grundlagen der theoretischen Informatik

Theoretische Grundlagen der Informatik

Theoretische Informatik

Lösungen zu Übungsblatt 6

Formale Sprachen. Script, Kapitel 4. Grammatiken

Zusammenfassung. Endliche Sprachen. Fazit zu endlichen Automaten. Teil 4: Grammatiken und Syntaxanalyse

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

Alphabet, formale Sprache

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

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

Kapitel 3. Kontextfreie Sprachen. Induktive Charakterisierung der Sprache L der korrekten Klammerausdrücke: (w) L, falls w L vw L, falls v, w L

Deterministische PDAs

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

LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13

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

Theoretische Grundlagen der Informatik

Kontextfreie Sprachen

Deterministischer Kellerautomat (DPDA)

LR-Parser, Shift-Reduce-Verfahren

Musterlösung Informatik-III-Nachklausur

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

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

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

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

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

5. Die syntaktische Analyse

F2 Zusammenfassung Letzte Tips zur Klausur

Informatik IC2. Balazs Simon

8. Turingmaschinen und kontextsensitive Sprachen

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

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

Hochschule Bonn-Rhein-Sieg University of Applied Sciences Grantham-Allee Sankt Augustin

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Kontextfreie Sprachen

Theoretische Grundlagen der Informatik

Grundlagen der Informatik II

Ein Fragment von Pascal

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

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

Theoretische Grundlagen der Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Formale Sprachen und endliche Automaten

Die mathematische Seite

WS07/08 Automaten und Formale Sprachen 5. Vorlesung

Automaten und Formale Sprachen SoSe 2013 in Trier

Grundbegriffe. Grammatiken

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

Theoretische Informatik 2

Transkript:

WS07/08 Automaten und Formale Sprachen 14. Vorlesung Martin Dietzfelbinger 29. Januar 2008 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 Klausur: Mittwoch, 5. März 2008 17:00 Uhr, Helmholtz-Hörsaal Keine Hilfsmittel! Themen: Stoff der Vorlesung: Definitionen, Sätze, Sachverhalte Übungsaufgaben Möglich: Beweis aus der Vorlesung. Vorbereitungszeit? 4P ˆ= ca. 120 Stunden Gesamtaufwand für diese Veranstaltung. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 1 Stichworte (etzte Vorlesung) EBNF Syntaxdiagramme Nichtdeterministische automaten... und ihre Sprachen Formale Definition Ein nichtdeterministischer automat M (englisch: nondeterministic pushdown automaton; Abk.: NPDA) besteht aus 6 Komponenten: Q, endliche, nichtleere Zustandsmenge Σ, alphabet Γ, alphabet q 0 Q, Startzustand Z 0 Γ, Anfangs--Zeichen δ : Q (Σ {ε}) Γ P < (Q Γ ) (Tabelle!) (P < (R) = {T R T endlich }, für Mengen R.) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 2 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 3

Beispiel 2 Palindrome gerader änge ohne Mittezeichen: 2 = {w w R w {a, b, c} } Der NPDA benutzt Nichtdeterminismus, um die Mitte zu raten. Q = {, R} Σ={a, b, c} Γ={A, B, C, } q 0 = Z 0 = δ ist durch folgende Tabelle gegeben. δ A B C (, a) (, A) (, AA) (, AB) (, AC) (, b) (, B) (, BA) (, BB) (, BC) (, c) (, C) (, CA) (, CB) (, CC) (,ε) (R,ε) (R, A) (R, B) (R, C) (R, a) (R,ε) (R, b) (R,ε) (R, c) (R,ε) Wo ist die nichtdeterministische Entscheidungsmöglichkeit? In Zustand : ese a Σ oder schalte mit einem ε-schritt in Zustand R. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 4 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 4 Graphische Darstellung Start Akzeptierungsmodus, informal Gegeben: NPDA M und wort x = a 1 a n Σ a, b, c, a, u b, u A B C Au B u ε, u u ε, ε R a, A b, B c, C ε ε ε Starte mit esekopf auf erstem Buchstaben a 1, im Startzustand q 0, mit Zeichen Z 0 im Führe Schritt für Schritt legale Züge gemäß δ durch Eine Situation, in der w vollständig gelesen und der leer ist, heißt akzeptierend c, u Cu u steht für A, B oder C Wir sagen, dass M die w akzeptiert, falls es mindestens eine Folge legaler Schritte gibt, die zu einer akzeptierenden Situation führt. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 5 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 6

Formalisierung: Konfigurationen Definition Ein Tripel (q, w, γ) Q Σ Γ heißt eine Konfiguration von M. In Beispiel 2: (, aabbc, BBC) oder (R, aabbc, CCC) Soll bedeuten: q: gegenwärtiger Zustand w: Restwort, noch zu lesen γ: inhalt (egale) Konfigurationsübergänge Definition M sei NPDA. Wenn k =(q, au, Zγ) Konfiguration ist, a Σ,u Σ, und (q,z 1 Z r ) δ(q, a, Z), dann schreiben wir (q, au, Zγ) M (q,u,z 1 Z r γ)=k. Wenn k =(q, u, Zγ) Konfiguration ist, und (q,z 1 Z r ) δ(q, ε, Z), dann schreiben wir (q, u, Zγ) M (q,u,z 1 Z r γ)=k. Jedesmal heißt k eine Nachfolgekonfiguration von k. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 7 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 8 Eine Konfiguration k kann keine, eine, oder mehrere verschiedene Nachfolgekonfigurationen haben. In Beispiel 2: (, aabbc, BBC) M (, abbc, ABBC) (, aabbc, BBC) M (R, aabbc, BBC) (Auch dumme Übergänge können legal sein.) (R, aabbc, BBC) hat keine Nachfolgekonfiguration. Es kommt nicht darauf an, ob k und k in echten Berechnungen vorkommen: (, abc, BBC A) M (, bc, ABBC A) M (oder, wenn M gegeben ist) ist Relation auf der Menge K M aller Konfigurationen von M. (Achtung: K M ist eine (abzählbar) unendliche Menge.) Definition Wir schreiben k M k, wenn es eine Konfigurationsfolge k = k 0,k 1,...,k r = k, r 0, gibt mit Beachte: k M k. k 0 M k 1 M k 2 M M k r. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 9 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 10

Definition Sei M NPDA, x wort zu M. Wir sagen, dass M x akzeptiert, wenn es ein q Q gibt derart dass (q 0,x,Z 0 ) M (q, ε, ε). Das heißt:... wenn es eine Folge k 0 M M k r gibt mit k = init M (x) :=(q 0,x,Z 0 ) (Startkonfiguration) und k r =(q, ε, ε) (akzeptierende (Halte-)Konfiguration) Eine solche Folge heißt eine akzeptierende Berechnung von M auf x. In Beispiel 2: und akzeptiere! (, cbbc, ) (, bbc, C) (, bc, BC) (R, bc, BC) (R, c, C) (R,ε,ε) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 11 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 12 In Beispiel 2: (, cbbc, ) (, bbc, C) (, bc, BC) (, c, BBC) (R, c, BBC) keine Nachfolgekonfiguration Sackgasse dies ist eine Berechnung, aber keine akzeptierende Berechnung! Definition Für einen NPDA M =(Q, Σ, Γ,q 0,Z 0,δ) definieren wir M := {x Σ M akzeptiert x}. D.h.: x M genau dann wenn es eine akzeptierende Berechnung von M auf x gibt. Beachte: Die Definitionen von M, M M sind pur mathematisch kein Bezug zu, Steuereinheit, esen usw. Überblick über alle Berechnungen auf festem x: Baum aller möglichen Berechnungen zum Beispiel: (x M der Baum hat ein Blatt (q, ε, ε).) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 13 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 14

Startkonfiguration: (,abbbba, ) Top-Down-Parsing, Beispiel (,bbbba,a) (R,abbbba, ε ) (,bbba,ba) (R,bbbba,A) (,bba,bba) (R,bbba,BA) (,ba,bbba) (R,bba,BBA) (,a,bbbba) (R,ba,BBBA) (, ε,abbbba) (R,a,BBBBA) (R,a,BBA) (R, ε,abbbba) (R,bba,A) (R,ba,BA) (R,a,A) (R, ε, ε ) G =(V,Σ,S,P) mit V = {S}, Σ={(, )}, Produktionen S (S)S ε erzeugt die Klammersprache. NPDA M: alphabet Γ={S, (, )} Anfangs--Zeichen S Expandiere : Oberstes zeichen S mit ε-zug durch (S)S oder ε ersetzen ese : Oberstes zeichen a Σ und a das nächste Zeichen in der lese a und streiche a vom FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 15 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 16 : ()(()()) Resteingabe gelesen nächste Aktion ()(()()) S E: S (S)S ()(()()) (S)S : ( )(()()) ( S)S E: S ε )(()()) ( )S : ) (()()) () S E: S (S)S (()()) () (S)S : ( ()()) ()( S)S E: S (S)S ()()) ()( (S)S)S : ( )()) ()(( S)S)S : ()(()()) Resteingabe gelesen nächste Aktion )()) ()(( S)S)S E: S ε )()) ()(( )S)S : ) ()) ()(() S)S E: S (S)S ()) ()(() (S)S)S : ( )) ()(()( S)S)S E: S ε )) ()(()( )S)S : ) ) ()(()() S)S E: S ε ) ()(()() )S : ) ()(()()) S E: S ε ()(()()) ε Akzeptiere! FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 17 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 18

Eigenschaften dieser Verarbeitungsweise: -Parsing : Von links lesen, inksableitung erzeugen (Konkatenation (gelesene ) bildet inksableitung) Top-Down-Parsing : Ableitungsbaum von der Wurzel beginnend erzeugen Parsing : Syntaxanalyse durchführen Top-Down-Parsing, allgemein Gegeben sei eine kfg G =(V,Σ,S,P). Baue NPDA M G wie folgt: Q = {0}, q 0 =0 (ein Zustand genügt) Γ=V Σ Z 0 = S Expandiere : δ(0,ε,a):={(0,α) A α Produktion } ese : Für jedes a Σ ist δ(0,a,a):={(0,ε)} FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 19 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 20 Satz (5.2.2) Für den eben beschriebenen NPDA M G gilt: MG = (G). Insbesondere: kontextfrei = M für einen NPDA M. Beweis: Zeige für x Σ folgende Aussagen: (i) Eine gegebene inksableitung S = α 0 α t = x kann in eine akzeptierende Berechnung von M G umgebaut werden. (ii) Eine gegebene akzeptierende Berechnung (0,x,S)=k 0 MG MG (0,ε,ε) liefert eine inksableitung für x. Bsp.: S (S)S ((S)S)S (()S)S (()(S)S)S (()()S)S (()())S (()()) S E (S)S ( S)S E ( (S)S)S (( S)S)S E (( )S)S (() S)S E (() (S)S)S (()( S)S)S E (()( )S)S (()() S)S E (()() )S (()()) S E (()()) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 21 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 22

(i) Allgemein: Eine gegebene inksableitung S = α 0 α t = x kann in eine akzeptierende Berechnung von M G umgebaut werden. Beweis: Erweitere Satzformen um einen Cursor, z.b.. Starte mit β 0 = S = α 0. Invariante: β t ist Satzform α i mit Cursor, irgendwo links vom ersten Nichtterminal (falls es eines gibt). Wenn in β t auf den Cursor ein Terminalzeichen a folgt, schiebt man den Cursor über a hinweg, um β t+1 zu erhalten (-Schritt). Wenn in β t auf den Cursor eine Variable A folgt, dann ersetzt man A wie im nächsten Ableitungsschritt α i α i+1 (E-Schritt). Ende: α t = x. (Fast) klar: Die entstehende Folge entspricht einer akzeptierenden Berechnung des NPDA M G. inks vom Cursor: Gelesene. Rechts vom Cursor: inhalt. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 23 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 24 (ii) Eine gegebene akzeptierende Berechnung (0,x,S)=k 0 MG MG (0,ε,ε) der änge t liefert eine inksableitung für x. Beweis: Man betrachtet die Folge S = β 0,β 1,...,β t = x, die sich ergibt, wenn man nach jedem M-Schritt die Folge (gelesener Teil der ) (inhalt) notiert. -Schritte führen zu einer Wiederholung (die man ignoriert). E-Schritte führen zur Anwendung einer legalen Produktion auf die am weitesten links stehende Variable (weil der gelesene teil keine Variablen enthält). Bezeichnung Top-Down-Syntaxanalyse : Produktionen werden in einer Reihenfolge angewendet, die einem Aufbau des Ableitungsbaums von der Wurzel her nach unten entspricht. Problem: Nichtdeterminismus Wunsch: Entscheide in E-Schritten deterministisch, welche Produktion auf die oberste variable anzuwenden ist. Sogenannte (1)-Grammatiken erlauben es, diese Entscheidung zu treffen, wobei als Zusatzinformation genau ein weiteres Zeichen der angesehen wird. ookahead von 1 Zeichen. (Verallgemeinerung: (k), k 1. Details: Nächstes Mal.) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 25 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 26

Straffung der Arbeit: Unmittelbares esen Gegeben: kfg G =(V,Σ,S,P). Baue NPDA M G wie folgt: Q = {0}, q 0 =0, Γ=V Σ, Z 0 = S Expandiere : Wenn A Z 1 Z r Produktion ist, und r =0oder Z 1 V, dann ist (0,Z 1 Z r ) δ(0,ε,a) ese : Für jedes a Σ ist (0,ε) δ(0,a,a) Expandiere/ese : Wenn A Z 1 Z r Produktion ist, und Z 1 = a Σ, dann ist (0,Z 2 Z r ) δ(0,a,a) Auch dieser NPDA akzeptiert genau die Wörter aus (G). Beispiel: Klammersprache Produktionen: S (S)S ε NPDA: Q = {0}, Σ={(, )}, Γ={S, (, )}, Z 0 = S; δ(0, ), )) ={(0,ε)} ese δ(0, (,S)={(0,S)S)} Expandiere/ese δ(0,ε,s)={(0,ε)} Expandiere. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 27 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 28 Greibach-Normalform Die letzte Konstruktion ist günstig besonders wenn jede Produktion die Form hat: A ab 1 B r,a Σ,r 0,B 1,...,B r V Greibach-Normalform Jeder Schritt liest genau ein Zeichen. Satz Man kann jede kfg G, ε/ (G), in eine äquivalente Grammatik G in Greibach-Normalform umbauen. oder: R-Parsing oder: Shift-Reduce-Parsing Bottom-Up-Syntaxanalyse... liest von links nach rechts, erzeugt Rechtsableitung, erzeugt Ableitungsbaum von unten nach oben. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 29 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 30

Anfang: a 1 a 2......... a n unten Z.... a r Z1 i......... an gelesen Steuereinheit oben unten oben Steuereinheit Aktion shift : ese ein Zeichen in den. Zwischensituation: Z.... a r Z1 i......... an Z r.... Z 1 a i Steuereinheit gelesen a i+1.... a n unten oben Steuereinheit gelesen FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 31 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 32 unten Z.... a r Z1 i......... an gelesen Steuereinheit oben Aktion reduce : Wende Produktion A Z s Z 1 rückwärts! auf s obere zeichen an. Rückwärts! Zr.... Z s +1 A Steuereinheit gelesen a i......... a n Entscheidung zwischen verschiedenen möglichen Zügen: (hier) nichtdeterministisch Beispielgrammatik: (Klammersprache ohne ε) S (S)S () (S) ()S. (())((()())()) shift: ( (.())((()())()) shift: (( ((.))((()())()) shift: (() (().)((()())()) reduce: (S (().)((()())()) shift: (S) (()).((()())()) Griff :() FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 33 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 34

(S) (()).((()())()) Griff :(S) Shift-Reduce-Konflikt : für shift entschieden shift: (S)( (())(.(()())()) shift: (S)(( (())((.()())()) shift: (S)((( (())(((.)())()) shift: (S)((() (())((().())()) Konflikt! shift shift: (S)((()( (())((()(.))()) shift: (S)((()() (())((()().)()) (S)((()() (())((()().)()) Konflikt! reduce reduce: (S)((()S (())((()().)()) Konflikt! reduce reduce: (S)((S (())((()().)()) shift: (S)((S) (())((()()).()) Konflikt! shift shift: (S)((S)( (())((()())(.)) shift: (S)((S)() (())((()())().) reduce: (S)((S)S (())((()())().) reduce: (S)(S (())((()())().) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 35 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 36 S (S)(S (())((()())().) shift: (S)(S) (())((()())()). reduce: (S)S (())((()())()). ( S ) ( ) S ( ) S reduce: S (())((()())()). Schluss-Schritt: leere ε ( S ) S ( ) ( ) S ( ) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 37 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 38

Im Ableitungsbaum: Arbeiten von den Blättern startend: Bottom-Up Beobachtung: Von unten nach oben gelesen, bilden die Konkatenationen inhalt Restwort eine Rechtsableitung für das wort w. Technisches Problem: Wenn t = max{ α A α Produktion }, muss die Steuereinheit zur Entscheidung über den nächsten Zug die t obersten symbole kennen. Trick: t symbole (cacheartig) in der Steuereinheit aufbewahren. (Details: Skript.) Auch bottom-up-parsing führt zum Resultat: G kontextfreie Grammatik (G) = M für einen NPDA M. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 39 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 40 Störend: Nichtdeterminismus. Aufgrund der t obersten zeichen (in Steuereinheit) und 1 weiteren Zeichen der ( ookahead 1 ) löse shift-reduce-konflikte eindeutig auf. Ob eine Grammatik hierfür geeignet ist ( R(1)-Grammatiken ), kann algorithmisch getestet werden. Steuerstruktur (Übergangsfunktion δ in Form von Tabellen) kann aus einer Standard-Beschreibung von G automatisch erzeugt werden. ( Parsergeneratoren, z.b. yacc.) Allgemeiner: R(k)-Grammatiken (k Zeichen ookahead) Basis der meisten realen Compiler. Von automaten zu Grammatiken (5.5) Satz (5.5.1) Wenn M ein NPDA ist, dann gibt es (konstruktiv) eine kontextfreie Grammatik G mit M = (G). Beweis: Tripelkonstruktion (Skript, Details sind nicht prüfungsrelevant.) Also: = M für einen NPDA = (G) für eine kfg G Das Maschinenmodell für die 2 -Sprachen ist der NPDA. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 41 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 42

Von automaten zu Grammatiken Tripelkonstruktion. Gegeben: M =(Q, Σ, Γ,q 0,Z 0,δ). V := {S} { q, A, p p, q Q, A Γ}. Von automaten zu Grammatiken Absicht: Für q, p Q, A Γ und w Σ soll gelten: q, A, p G w (q, w, A) M (p, ε, ε). ( ) In Worten: Es gibt einen G-Ableitungsbaum mit Wurzel q, A, p und Ergebnis (Blattinschrift) w M kann von Zustand q mit A als oberstem symbol die Teileingabe w lesen, dabei Zustand p erreichen und das Zeichen A aus dem streichen. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 43 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 44 Von automaten zu Grammatiken Produktionen: (i) S q 0,Z 0,p, für jedes p Q. Von automaten zu Grammatiken Angenommen, folgendes gilt: q, A, p G w (q, w, A) M (p, ε, ε). ( ) (ii) q, A, q m+1 a q 1,A 1,q 2 q 2,A 2,q 3 q m,a m,q m+1, für (q, a, A) Q (Σ {ε}) Γ,q 1,...,q m+1 Q, m 0, wo (q 1,A 1 A m ) δ(q, a, A). Beachte: G wird aus M ganz formal, mechanisch gebildet. Dann: w M p Q :(q 0,w,Z 0 ) M (p, ε, ε) p Q : q 0,Z 0,p G w S G w w (G). FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 45 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 46

Von automaten zu Grammatiken Die Äquivalenz q, A, p G w (q, w, A) M (p, ε, ε) ( ) Bis zum nächsten Mal: Folien aus Netz besorgen, durcharbeiten. Skript Seiten 177 185, 191 196, 198 199 oben durcharbeiten. Definitionen lernen, Beispiele ansehen, Fragen vorbereiten. beweist man und, für jede Richtung einzeln, jeweils mit einer geeigneten Induktion. Details: Skript. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 47 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 48