Einführung - Parser. Was ist ein Parser?

Ähnliche Dokumente
Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse

Konstruieren der SLR Parsing Tabelle

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

Fachseminar Compilerbau

LR-Parser, Shift-Reduce-Verfahren

Kapitel 5: Syntax-Analyse

2.6 Deterministisches Top-Down-Parsen

Seminar Informatik: Syntaxanalyse von DKFG mittels Yacc

Automaten und formale Sprachen Klausurvorbereitung

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage.

Theoretische Grundlagen der Informatik

LL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt)

Formale Sprachen und Automaten

Syntaxanalyse Ausgangspunkt und Ziel

LR(1) Itemmengenkonstruktion

Definition von LR(k)-Grammatiken

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

1 Grammar Engineering. 2 Abstrakte Syntax als abstrakte Algebra. 3 LL(1)-Parser. 4 LR Parser. 5 Fehlerbehandlung. 6 Earley Parser

Kapitel IV Formale Sprachen und Grammatiken

5.2 Endliche Automaten

Alphabet, formale Sprache

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Compiler: Parser. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

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

Theoretische Grundlagen der Informatik

Automatentheorie und formale Sprachen

LL(1)-Parsing. Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger. Automatische Syntaxanalyse (Parsing)

Grundlagen der Theoretischen Informatik

Operationen auf Grammatiken

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

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

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

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

Der Earley-Algorithmus.

Repetitive Strukturen

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Grundbegriffe. Grammatiken

Parsing regulärer Ausdrücke. Karin Haenelt

Deterministische endliche Automaten - Wiederholung

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

9.4 Grundlagen des Compilerbaus

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

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Grundlagen der Programmierung 2 (Comp-D)

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Von der Grammatik zum AST

Klammersprache Definiere

2.11 Kontextfreie Grammatiken und Parsebäume

Rekursiv aufzählbare Sprachen

Formale Sprachen. Script, Kapitel 4. Grammatiken

6 Kontextfreie Grammatiken

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Grammatiken und ANTLR

Algorithmen auf Sequenzen

Übersicht. (A) Kontextfreie Sprachen (B) Syntaxanalyse (Parsing) (C) Grenzen der Kontextfreiheit

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

VU Software Paradigmen / SS 2014

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

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

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Kontextfreie Sprachen

Syntaktische Analyse (Parsen) Grundlagen der Programmierung. Syntaktische Analyse eines Programms. Syntaktische Analyse bzgl einer CFG

Grundlagen der Theoretischen Informatik

Theoretische Informatik I

Deterministischer Kellerautomat (DPDA)

Theoretische Grundlagen der Informatik

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

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

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

1.) Zahlensysteme (10 Punkte)

Lexikalische Analyse, Tokenizer, Scanner

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

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

2.4 Kontextsensitive und Typ 0-Sprachen

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15

Syntax von Programmiersprachen

Begriffe (Wiederholung)

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

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Referatsausarbeitung

Kontextfreie Sprachen

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Transkript:

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Einführung - Parser Was ist ein Parser?

Einführung - Parser Was ist ein Parser? Ein Parser ist ein Computerprogramm, das in der Computertechnik für die Zerlegung und Umwandlung einer beliebigen Eingabe in ein für die Weiterverarbeitung brauchbares Format zuständig ist.

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Tabellengesteuerter TD-Parser Was ist ein tabellengesteuerter Top-Down Parser?

Tabellengesteuerter TD-Parser Was ist ein tabellengesteuerter Top-Down Parser? Im vorherigen Vortrag wurde erklärt, wie rekursiv prädiktive Parser funktionieren. Es besteht auch die Möglichkeit, nicht-rekursiv zu implementieren.

Tabellengesteuerter TD-Parser Was ist ein tabellengesteuerter Top-Down Parser? Im vorherigen Vortrag wurde erklärt, wie rekursiv prädiktive Parser funktionieren. Es besteht auch die Möglichkeit, nicht-rekursiv zu implementieren. Dabei wird ein Stack ( Stapel ) explizit verwaltet, anstatt die implizite Stapelverwaltung im Zuge rekursiver Aufrufe zu benutzen.

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Ein tabellengesteuerter TD-Parser besteht aus einem Funktionsweise

Funktionsweise Ein tabellengesteuerter TD-Parser besteht aus einem - Eingabepuffer

Funktionsweise Ein tabellengesteuerter TD-Parser besteht aus einem - Eingabepuffer - Ausgabestrom

Funktionsweise Ein tabellengesteuerter TD-Parser besteht aus einem - Eingabepuffer - Ausgabestrom - Stack

Funktionsweise Ein tabellengesteuerter TD-Parser besteht aus einem - Eingabepuffer - Ausgabestrom - Stack - Deterministischen Automat ( Parse-Tabelle )

Funktionsweise Der Eingabestring wird mit der Endmarkierung $ abgeschlossen Der Stack enthält eine Folge von Grammatiksymbolen, welches ebenfalls mit einem $ abgeschlossen wird

Funktionsweise Die Parse-Tabelle besteht aus einem zwei dimensionalen Array, die folgendermaßen aufgebaut ist M [ A, a ] Das A steht für ein Nichtterminal Das a steht für ein Terminal oder $

Terminal und Nichtterminal Was bedeutet noch mal Terminal und Nichtterminal?

Terminal und Nichtterminal Was bedeutet noch mal Terminal und Nichtterminal? Terminale sind diejenigen Symbole, aus denen sich die Worte der zu erzeugenden formalen Sprache zusammensetzen. Sie werden in der Regel durch Kleinbuchstaben repräsentiert. Ein einzelnes Terminalsymbol kann bei der Erzeugung der durch die Grammatik beschriebenen Sprache nicht durch eine Produktionsregel ersetzt werden.

Terminal und Nichtterminal Was bedeutet noch mal Terminal und Nichtterminal? Terminale sind diejenigen Symbole, aus denen sich die Worte der zu erzeugenden formalen Sprache zusammensetzen. Sie werden in der Regel durch Kleinbuchstaben repräsentiert. Ein einzelnes Terminalsymbol kann bei der Erzeugung der durch die Grammatik beschriebenen Sprache nicht durch eine Produktionsregel ersetzt werden. Nichtterminal ist ein Symbol, welches zur Erzeugung der formalen Sprache, die durch die Grammatik beschrieben werden soll, verwendet wird, aber im Gegensatz zu Terminalsymbolen kein Symbol ist, welches in den Wörtern der erzeugten Sprache vorkommt. Nichtterminale werden gewöhnlich durch Großbuchstaben repräsentiert oder durch spitze Klammern gekennzeichnet (<Nichtterminal>).

Funktionsweise Wie verhält sich nun die Steuerung des Parsers für ein Programm?

Funktionsweise Der Parser schaut sich das oberste Stackelement X und das aktuelle Eingabesymbol a an Es gibt fünf Möglichkeiten:

1. Wenn X = a = $ ist, stoppt der Parser, da das zu analysierende Programm akzeptiert wurde Funktionsweise

2. Wenn X = a $ ist, entfernt der Parser X als oberstes Element vom Stapel und setzt den Eingabezeiger auf das nächste Eingabesymbol Funktionsweise

Funktionsweise 3. Wenn X T und X a ist, so liegt ein Syntaxfehler vor

4. Wenn X N und M[X,a] leer ist, so liegt ein Syntaxfehler vor Funktionsweise

Funktionsweise 5. Wenn X N und M[X,a] = X Y 1 Y k mit Y 1,., Y k V, dann ersetzt das Programm den obersten Stackeintrag X durch Y k,, Y 1, so dass Y 1 das oberste Stackelement ist.

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Darstellung als Pseudocode Die Variable ip zeige auf das erste Symbol von w$; repeat sei X oberstes Stapelsymbol und a das Symbol, auf das ip zeigt; if X ist Terminal oder $ then if X = a then entferne X vom Stapel und rücke ip vor; else error() else /* X ist Nichtterminal */ if M[X,a] = X Y 1 Y 2. Y k then begin entferne X vom Stapel; lege Y k, Y k-1,, Y 1 auf den Stapel, so dass Y 1 oberstes Element ist; gib die Produktion X Y 1 Y 2 Yk aus end else error() until X = $ /* Stapel ist leer * /

Darstellung als Pseudocode Abschnitt 1 repeat sei X oberstes Stapelsymbol und a das Symbol, auf das ip zeigt; if X ist Terminal oder $ then if X = a then entferne X vom Stapel und rücke ip vor; else error() else Wir erinnern uns: Wenn X = a $ ist, entfernt der Parser X als oberstes Element vom Stapel und setzt den Eingabezeiger auf das nächste Eingabesymbol

Darstellung als Pseudocode Abschnitt 2 else /* X ist Nichtterminal */ if M[X,a] = X Y 1 Y 2. Y k then begin entferne X vom Stapel; lege Y k, Y k-1,, Y 1 auf den Stapel, so dass Y 1 oberstes Element ist; gib die Produktion X Y 1 Y 2 Y k aus end else error() until X = $ /* Stapel ist leer * /

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Konstruktion von prädiktiven Parse-Tabellen Mit folgendem Algorithmus kann eine prädiktive Parse-Tabelle für eine Grammatik G erstellt werden Sei A α eine Produktion der Grammatik G und a ist in FIRST(α). Dann expandiert der Parser A zu α, wenn a aktuelles Eingabesymbol ist.

Konstruktion von prädiktiven Parse-Tabellen Mögliche Komplikationen? Zu Komplikationen kann es kommen, wenn α = ε oder α * ε gilt. In diesem Fall muss a erneut zu α expandiert werden, wenn das aktuelle Eingabesymbol in Follow(A) ist oder wenn in der Eingabe die Endmarkierung $ erreicht wurde und $ in Follow(A) enthalten ist.

Konstruktion von prädiktiven Parse-Tabellen Der Algorithmus Eingabe: Grammatik G. Ausgabe: Parse-Tabelle M. Methode:

Konstruktion von prädiktiven Parse-Tabellen Der Algorithmus Eingabe: Grammatik G. Ausgabe: Parse-Tabelle M. Methode: 1. Führe für jede Produktion A α der Grammatik die Schritte 2 und 3 durch.

Konstruktion von prädiktiven Parse-Tabellen Der Algorithmus Eingabe: Grammatik G. Ausgabe: Parse-Tabelle M. Methode: 1. Führe für jede Produktion A α der Grammatik die Schritte 2 und 3 durch. 2. Trage für jedes Terminal α aus FIRST(α) die Produktion A α in M[A,a] ein.

Konstruktion von prädiktiven Parse-Tabellen Der Algorithmus Eingabe: Grammatik G. Ausgabe: Parse-Tabelle M. Methode: 1. Führe für jede Produktion A α der Grammatik die Schritte 2 und 3 durch. 2. Trage für jedes Terminal α aus FIRST(α) die Produktion A α in M[A,a] ein. 3. Wenn ε in FIRST(α) enthalten ist, trage A α für jedes Terminal b aus FOLLOW(A) an der Stelle M[A,b] ein. Ist ε in FIRST(α) und $ in FOLLOW(A) enthalten, so trage A α in M[A,$] ein.

Konstruktion von prädiktiven Parse-Tabellen Der Algorithmus Eingabe: Grammatik G. Ausgabe: Parse-Tabelle M. Methode: 1. Führe für jede Produktion A α der Grammatik die Schritte 2 und 3 durch. 2. Trage für jedes Terminal α aus FIRST(α) die Produktion A α in M[A,a] ein. 3. Wenn ε in FIRST(α) enthalten ist, trage A α für jedes Terminal b aus FOLLOW(A) an der Stelle M[A,b] ein. Ist ε in FIRST(α) und $ in FOLLOW(A) enthalten, so trage A α in M[A,$] ein. 4. Trage in jedem undefinierten Eintrag error ein.

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Bottom-Up-Syntaxanalyse Was ist eine Bottom-Up-Syntaxanalyse?

Bottom-Up-Syntaxanalyse Was ist eine Bottom-Up-Syntaxanalyse? Die Bottom-Up-Syntaxanalyse auch Shift-Reduce-Syntaxanalyse genannt versucht einen Parse-Baum eines Eingabestrings zu konstruieren. Der Beginn findet von den Blättern ( bottom ) aus statt und arbeitet sich bis zum Wurzel ( top )hoch. Bei jedem Reduktionsschritt wird ein einzelner Substring, der mit der rechten Seite einer Produktion übereinstimmt, durch das Symbol auf der linken Seite dieser Produktion ersetzt. Wenn der Substring bei jedem Schritt richtig gewählt wird, gibt man eine Rechtsableitung in umgekehrter Reihenfolge wieder.

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 aabcde

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 aabcde

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 Schritt 2 aabcde aade

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 Schritt 2 aabcde aade

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 Schritt 2 Schritt 3 aabcde aade aabe

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 Schritt 2 Schritt 3 aabcde aade aabe

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 Schritt 2 Schritt 3 Schritt 4 aabcde aade aabe S

Bottom-Up-Syntaxanalyse Beispiel Folgende Grammatik ist gegeben: S aabe A Abc b B d Folgenden Satz möchten wir durch bestimmte Schritte auf S reduzieren: abbcde Schritte Schritt 1 Schritt 2 Schritt 3 Schritt 4 aabcde aade aabe S

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Bottom-Up-Syntaxanalyse Ein Teilstring β (auch Substring genannt) einer Satzform αβ heißt Handle falls,

Bottom-Up-Syntaxanalyse Ein Teilstring β (auch Substring genannt) einer Satzform αβ heißt Handle falls, - β die rechte Seite einer Produktion N β ist,

Bottom-Up-Syntaxanalyse Ein Teilstring β (auch Substring genannt) einer Satzform αβ heißt Handle falls, - β die rechte Seite einer Produktion N β ist, - Der Reduktionsschritt αβ αn sich zu einer linkskanonischen Produktion fortsetzen lässt.

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Bottom-Up-Syntaxanalyse Bottom-Up-Parser sind immer tabellen-gesteuert.

Bottom-Up-Syntaxanalyse Bottom-Up-Parser sind immer tabellen-gesteuert. Mögliche Probleme?

Bottom-Up-Syntaxanalyse Bottom-Up-Parser sind immer tabellen-gesteuert. Mögliche Probleme? Für das Aufstellen der Parse-Tabelle, werden in der Regel spezielle Programme benötigt, da der Aufwand sehr groß ist.

Bottom-Up-Syntaxanalyse Eine Parse-Tabelle T ist eine rechteckige Matrix, die von zwei Variablen Indiziert wird: dem Zustand des Parsers ( erreichte Position innerhalb der Produktion ) und dem Eingabe-Symbol ( Terminal oder Nichtterminal ).

Bottom-Up-Syntaxanalyse Eine Parse-Tabelle T ist eine rechteckige Matrix, die von zwei Variablen Indiziert wird: dem Zustand des Parsers ( erreichte Position innerhalb der Produktion ) und dem Eingabe-Symbol ( Terminal oder Nichtterminal ). Die Tabelleneinträge spezifizieren, ob der Parser

Bottom-Up-Syntaxanalyse Eine Parse-Tabelle T ist eine rechteckige Matrix, die von zwei Variablen Indiziert wird: dem Zustand des Parsers ( erreichte Position innerhalb der Produktion ) und dem Eingabe-Symbol ( Terminal oder Nichtterminal ). Die Tabelleneinträge spezifizieren, ob der Parser - Die Eingabe korrekt akzeptiert ( Accept )

Bottom-Up-Syntaxanalyse Eine Parse-Tabelle T ist eine rechteckige Matrix, die von zwei Variablen Indiziert wird: dem Zustand des Parsers ( erreichte Position innerhalb der Produktion ) und dem Eingabe-Symbol ( Terminal oder Nichtterminal ). Die Tabelleneinträge spezifizieren, ob der Parser - Die Eingabe korrekt akzeptiert ( Accept ) - Als inkorrekt zurückweist ( Reject )

Bottom-Up-Syntaxanalyse Eine Parse-Tabelle T ist eine rechteckige Matrix, die von zwei Variablen Indiziert wird: dem Zustand des Parsers ( erreichte Position innerhalb der Produktion ) und dem Eingabe-Symbol ( Terminal oder Nichtterminal ). Die Tabelleneinträge spezifizieren, ob der Parser - Die Eingabe korrekt akzeptiert ( Accept ) - Als inkorrekt zurückweist ( Reject ) - In einen anderen Zustand übergeht ( Shift )

Bottom-Up-Syntaxanalyse Eine Parse-Tabelle T ist eine rechteckige Matrix, die von zwei Variablen Indiziert wird: dem Zustand des Parsers ( erreichte Position innerhalb der Produktion ) und dem Eingabe-Symbol ( Terminal oder Nichtterminal ). Die Tabelleneinträge spezifizieren, ob der Parser - Die Eingabe korrekt akzeptiert ( Accept ) - Als inkorrekt zurückweist ( Reject ) - In einen anderen Zustand übergeht ( Shift ) - Eine bestimme Produktion reduziert ( Reduce )

Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven Parse-Tabellen 1. Bottom-Up-Syntaxanalyse 3.1 Definition 3.2 Handles 3.3 Allgemeine Informationen 4. Fragen

Fragen???