Spracherkennung (Syntaxanalyse)

Ähnliche Dokumente
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

6 Kontextfreie Grammatiken

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

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

Theoretische Informatik Testvorbereitung Moritz Resl

8. Turingmaschinen und kontextsensitive Sprachen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

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

Rekursiv aufzählbare Sprachen

11.1 Kontextsensitive und allgemeine Grammatiken

Wortproblem für kontextfreie Grammatiken

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Theoretische Informatik 2

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

Formale Sprachen. Script, Kapitel 4. Grammatiken

Theoretische Grundlagen der Informatik

Sprachen/Grammatiken eine Wiederholung

Theoretische Informatik Mitschrift

2.4 Kontextsensitive und Typ 0-Sprachen

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Sprachen und Automaten. Tino Hempel

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

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).

ist ein regulärer Ausdruck.

Grundlagen der Theoretischen Informatik

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

Automaten, Spiele, und Logik

Zusammenfassung Grundzüge der Informatik 4

Aufgabentypen die in der Klausur vorkommen

Grammatiken. Einführung

Kapitel: Kontextfreie Sprachen. Kontextfreie Sprachen 1 / 78

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Berechenbarkeit und Komplexität

Theoretische Informatik 2

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Ausgewählte unentscheidbare Sprachen

Grammatiken und die Chomsky-Hierarchie

Theoretische Informatik Mitschrift

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Speicherplatz-Komplexität 1 / 30

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik I

Automaten und Formale Sprachen

1 Varianten von Turingmaschinen

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Theoretische Grundlagen der Informatik

Grundbegriffe der Informatik

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

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

2.11 Kontextfreie Grammatiken und Parsebäume

Vorlesung Theoretische Informatik

Programmiersprachen und Übersetzer

Kapitel 2: Formale Sprachen Gliederung

Komplexitätsklassen. (Lauf-)Zeit-Klassen. (Lauf-)Zeit-Klassen. Charakteristische Problemgrößen beim Parsing

Grundbegriffe der Informatik

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

Theorie der Informatik

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

Grundbegriffe der Informatik

Der deterministische, endliche Automat. Formale Grundlagen der Informatik 1 Kapitel 3 Mehr zu regulären Sprachen

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Theoretische Informatik I

Theoretische Informatik für Medieninformatiker

Einführung in die Informatik Grammars & Parsers

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Was bisher geschah. Darstellung von Sprachen Ausführen von Berechnungen

abgeschlossen unter,,,, R,

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie

Endgültige Gruppeneinteilung Kohorte Innere-BP Sommersemester 2016 (Stand: )

Theoretische Grundlagen des Software Engineering

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Formale Sprachen, reguläre und kontextfreie Grammatiken

Informatik I WS 07/08 Tutorium 24

Prof. Dr. Jürgen Dix Institut für Informatik, TU Clausthal Informatik III, WS 2006/07 2/561

Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung.

Formelsammlung theoretische Informatik I

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Formale Sprachen und Automaten

Grundbegriffe der Informatik

Einführung in die Computerlinguistik

Automaten, Formale Sprachen und Berechenbarkeit I. Skript zur Vorlesung im WS 2001/02 an der TU München

Formale Sprachen und Grammatiken

Theoretische Informatik I. 1 Zum Sinn der theoretischen Informatik. Wintersemester 2003/2004

Syntax (= Satzgefüge), vgl. auch Grammatik

4. Grammatiken Grundlegende Definitionen. Wie lassen sich formale Sprachen beschreiben?

Automatentheorie und formale Sprachen

4.2.4 Reguläre Grammatiken

Theoretische Informatik

1 Formale Sprachen - Grundlagen Einige Definitionen und Grundlagen Chomsky-Hierarchie Wortproblem... 13

Transkript:

Kellerautomaten

Kellerautomaten 8 Spracherkennung (Syntaxanalyse) Algorithmus gesucht, der für L T (möglichst schnell) entscheidet, ob w L (Lösung des Wortproblems) Grammatik Automat Aufwand rechtslinear endlich linear kontextfrei?? Problem: endliche Automaten können nicht unbeschränkt mitzählen und sich keine unbeschränkt langen Teilwörter merken

Kellerautomaten 9 Beispiel: Klammerstrukturen L = {a n b n n N} nicht regulär kontextfrei erzeugt durch S ::= asb λ

Kellerautomaten 10 Idee: Endlicher Automat mit Zähler a ; +1 b ; 1 a s b ; 1 b s a a a s a s a s b b s b b s Zähler 0 1 2 1 0

Kellerautomaten 11 Beispiel: Palindrome nicht regulär L pde = {wtrans(w)} kontextfrei erzeugt durch S ::= xsx λ f.a. x T

Kellerautomaten 12 Endlicher Automat mit Keller/Speicher x ; PUSH x x ; POP falls HEAD = x up ; down up a up b up b a down down down Keller λ a ba ba a λ

Kellerautomaten 13 Nichtdeterministischer Kellerautomat Idee: endlichen Automaten mit Zusatzspeicher in Form eines Kellers (Stapel, Stack) mit Speicheroperationen pro Übergang Keller über X: X mit den Operationen push, head, pop (d.h. push(x, u) = xu, head(xu) = x, pop(xu) = u für alle x X, u X )

Kellerautomaten 14 Ein nichtdeterministischer Kellerautomat ist ein System K = (Z, I, C, d, s 0, F, c 0 ) mit Z: endliche Menge von Zuständen, I: endliches Eingabealphabet mit / I, C: endliche Menge von Kellersymbolen, d: Z (I { }) C Z C : Zustandsüberführung, s 0 Z: Startzustand, F Z: Endzustände, c 0 C: initiales Kellersymbol.

Kellerautomaten 15 Graphische Darstellung x; c α s s für (s, α) d(s, x, c) s ; c α s für (s, α) d(s,, c)

Kellerautomaten 16 Beispiel a; c 0 Ac 0 a; A AA b; A λ ; c 0 c 0 a s b s OK ; A A ; c 0 c 0

Kellerautomaten 17 Konfiguration Eine Konfiguration con = (s, w, γ) besteht aus einem Zustand s Z, einem Wort w I und einem Kellerwort γ C. Wichtige Konfigurationen: Anfangskonfiguration: con 0 = (s 0, w, c 0 ) Endkonfiguration: con F = (s, λ, γ) mit s F

Kellerautomaten 18 Beispiel a; c 0 Ac 0 a; A AA b; A λ ; c 0 c 0 a s b s OK ; A A ; c 0 c 0 Konfiguration: (b s, bb, AAc 0 ) Anfangskonfiguration: (a s, aabb, c 0 ) Endkonfiguration: (OK, λ, c 0 )

Kellerautomaten 19 Folgekonfiguration (s, xv, cγ) (s, v, αγ), falls (s, α) d(s, x, c) (s, v, cγ) (s, v, αγ), falls (s, α) d(s,, c) Schreibweise: kann durch con = con 0 con 1 con n = con abgekürzt werden. con n con oder con con

Kellerautomaten 20 Beispiel a; c 0 Ac 0 a; A AA b; A λ Konfigurationsfolge: ; c 0 c 0 a s b s OK ; A A ; c 0 c 0 (a s, abb, Ac 0 ) (a s, bb, AAc 0 ) (b s, bb, AAc 0 ) (b s, b, Ac 0 )

Kellerautomaten 21 Erkannte Sprache Gegeben: K = (Z, I, C, d, s 0, F, c 0 ) Erkannte Sprache K erkennt w I, falls (s 0, w, c 0 ) s F. (s, λ, γ) mit Die Menge aller von K erkannten Wörter bildet die erkannte Sprache L(K).

Kellerautomaten 22 Beispiel a; c 0 Ac 0 a; A AA b; A λ ; c 0 c 0 a s b s OK ; A A Erkannte Sprache: {a n b n n N} Erkennen von a 2 b 2 : ; c 0 c 0 (a s, aabb, c 0 ) (a s, abb, Ac 0 ) (a s, bb, AAc 0 ) (b s, bb, AAc 0 ) (b s, b, Ac 0 ) (b s, λ, c 0 ) (OK, λ, c 0 )

Fragestellungen 23 Fragestellungen Wie hängen endliche Automaten und kfg s zusammen? Sind kfg s kompositional? Ist für kfg s das Wortproblem schnell lösbar? Was können kfg s nicht?

Deterministischer Kellerautomat 24 Deterministischer Kellerautomat Jede Konfiguration hat höchstens eine Folgekonfiguration. Lineare Spracherkennung (wie endl. Aut.) Praktischer Einsatz bei Syntaxanalyse von Programmiersprachen Nicht jede kontextfreie Sprache wird von deterministischen Kellerautomaten erkannt.

1 Ein deterministischer Kellerautomat ist ein System K = (Z, I, C, d, s 0, F, c 0 ) mit Z: endliche Menge von Zuständen I: endliches Eingabealphabet mit / I C: endliche Menge von Kellersymbolen d: Z (I { }) C Z C : Zustandsüberführung mit d(s, x, c) + d(s,, c) 1 für alle s Z, x I, c C, s 0 Z: Startzustand F Z: Endzustände c 0 C: initiales Kellersymbol S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

2 Beispiel: Reguläre Ausdrücke s 0 y ; c 0 λ OK ( ; c 0 op c 0 y ; c c ) ; c 0 λ s 1 ( ; c op br c ;op λ ) ;br λ s 2 ;op λ mit y I {empty, lambda}, c {op, br, c 0 } und {+, } S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

3 Erkennen von ((x ) + empty) (s 0, ((x ) + empty), c 0 ) (s 1, (x ) + empty), op c 0 ) (s 1, x ) + empty), op br op c 0 ) (s 2, ) + empty), op br op c 0 ) (s 2, ) + empty), br op c 0 ) (s 2, +empty), op c 0 ) (s 1, empty), c 0 ) (s 2, ), c 0 ) (OK, λ, λ) S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

4 Mächtigkeit L DKA : Klasse aller von deterministischen Kellerautomaten erkannten Sprachen L NKA : Klasse aller von nichtdeterministischen Kellerautomaten erkannten Sprachen Es gibt keinen deterministischen Kellerautomaten, der erkennt. Also gilt {wtrans(w) w {a, b} } L DKA L NKA S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Fragestellungen 5 Fragestellungen Sind kontextfreie Sprachen kompositional? (Die Klasse der kontextfreien Sprachen ist abgeschlossen unter Vereinigung, Konkatenation und Kleene-Stern.) Ist für kontextfreie Sprachen das Wortproblem schnell lösbar? (Die von determinitischen Kellerautomaten erkannten Sprachen lassen sich in linearer Zeit erkennen.) Wie hängen Kellerautomaten und kontextfreie Sprachen zusammen? Was können Kellerautomaten nicht? S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 6 Übersetzung kontextfreier Grammatiken in Kellerautomaten Gegeben: kontextfreie Grammatik G = (N, T, P, S) mit c 0, c OK / N T. x; x λ ; c 0 S c OK s 0 ; c OK λ OK ; A u wobei x T und A ::= u P S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 7 Beispiel: Klammergebirge G = ({A}, { [, ] }, {A ::= AA [A] λ}, A) L(G): alle korrekten Klammerungen über dem Klammerpaar [ und ]. [ ; [ λ ; c 0 A c OK ] ; ] λ s 0 ; c OK λ ; A AA ; A λ ; A [A] OK S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 8 Erzeugen und Erkennen von [] A [A] [] A ::=[A] A ::= λ (s 0, [], c 0 ) (s 0, [], Ac OK ) (s 0, [], [A]c OK ) (s 0, ], A]c OK ) (s 0, ], ]c OK ) (s 0, λ, c OK ) (OK, λ, λ) S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 9 Korrektheit der Übersetzung G translator PDA(G) generator recognizer L(G) = L(PDA(G)) S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 10 Linksableitungen Sei G = (N, T, P, S) eine kontextfreie Grammatik. Eine Linksableitung ist eine Ableitung u 1 P u 2 P P u n, bei der in jedem Schritt u i A i ::= v i u i+1 (1 i < n) das am weitesten links stehende Nichtterminal ersetzt wird, d.h. u i = x i A i y i und u i+1 = x i v i y i mit x i T. Schreibweise: l S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 11 Beispiel G = ({E}, {+,, (, ), id}, P, E) mit den Regeln E ::= E + E E E (E) id Es gibt zwei verschiedene Linksableitungen für id + id id: 1. E E+E id+e id+e E id + id E id + id id 2. E E E E+E E id+e E id + id E id + id id S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Übersetzung kontextfreier Grammatiken in Kellerautomaten 12 Lemma Sei G = (N, T, P, S) eine kontextfreie Grammatik. Dann lässt sich jede Ableitung A v mit A N, P v T in eine Linksableitung A l P v umformen. S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Zusammenhang zwischen Kellerautomaten und kontextfreien Sprachen 13 Zusammenhang zwischen Kellerautomaten und kontextfreien Sprachen Für jede kontextfreie Grammatik G gibt es einen Kellerautomaten K, so dass L(G) = L(K). Für jeden Kellerautomaten K gibt es eine kontextfreie Grammatik G, so dass L(K) = L(G). (Ohne Beweis) S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008

Zusammenhang zwischen Kellerautomaten und kontextfreien Sprachen 14 Folgerung L NKA = L KF S. L NKA : Klasse aller von nichtdeterministischen Kellerautomaten erkannten Sprachen L KF S : Klasse der kontextfreien Sprachen S. Kuske: Kellerautomaten und das Pumping-Lemma; 7.Januar 2008