Einführung - Parser. Was ist ein Parser?

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Einführung - Parser. Was ist ein Parser?"

Transkript

1 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

2 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

3 Einführung - Parser Was ist ein Parser?

4 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.

5 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

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

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

8 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.

9 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

10 Ein tabellengesteuerter TD-Parser besteht aus einem Funktionsweise

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

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

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

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

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

16 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 $

17 Terminal und Nichtterminal Was bedeutet noch mal Terminal und Nichtterminal?

18 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.

19 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>).

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

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

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

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

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

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

26 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.

27 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

28 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 * /

29 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

30 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 * /

31 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

32 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.

33 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.

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

35 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.

36 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.

37 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.

38 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.

39 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

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

41 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.

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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

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

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

55 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.

56 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

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

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

59 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.

60 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 ).

61 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

62 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 )

63 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 )

64 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 )

65 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 )

66 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

67 Fragen???

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

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.

Mehr

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse Compilerbau Syntaxanalyse 68 LR(1)-Syntaxanalyse Bei der LL(1)-Syntaxanalyse wird allein aufgrund des nächsten Tokens die zu verwendende Produktion ermittelt. Bei der LR(1)-Syntaxanalyse braucht diese

Mehr

Konstruieren der SLR Parsing Tabelle

Konstruieren der SLR Parsing Tabelle Konstruieren der SLR Parsing Tabelle Kontextfreie Grammatik (CFG) Notation 1. Diese Symbole sind Terminals: (a) Kleinbuchstaben vom Anfang des Alphabets wie a, b, c. (b) Operator Symbole wie +,, usw. (c)

Mehr

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

Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4) Kellerautomat (1/4) Kellerautomat (2/4) Kontextfreie Grammatiken können von Kellerautomaten (Push Down Automata, PDA) erkannt werden PDAs sind eine Erweiterung der endlichen Automaten um ein einfaches

Mehr

Fachseminar Compilerbau

Fachseminar Compilerbau Fachseminar Compilerbau WS 08/09 Matthias Schiller Syntaktische Analyse 1. Prinzip der Top-Down-Analyse 2. LL(1)-Grammatiken Modell-Vorstellung Der Scanner liefert als Ergebnis der lexikalischen Analyse,

Mehr

LR-Parser, Shift-Reduce-Verfahren

LR-Parser, Shift-Reduce-Verfahren LR-Parser, Shift-Reduce-Verfahren Bottom-Up-Syntaxanalyse LR-Parser L: Eingabe von links nach rechts; R: Rechtsherleitung Shift-Reduce-Verfahren Beachte: Kein Backtracking nicht auf jede Grammatik anwendbar

Mehr

Kapitel 5: Syntax-Analyse

Kapitel 5: Syntax-Analyse Kapitel 5: Syntax-Analyse Aufgabe Die Token-Folge wird strukturiert in Anweisungen, Ausdrücke etc., um die Semantische Analyse und Code-Erzeugung zu ermöglichen Themen Kontextfreie Grammatik Äquivalente

Mehr

2.6 Deterministisches Top-Down-Parsen

2.6 Deterministisches Top-Down-Parsen 48 2.6 Deterministisches Top-Down-Parsen Als nächstes wollen wir uns mit Methoden zur syntaktischen Analyse befassen. Der lexikale canner eines Compilers liest die Eingabe Zeichen für Zeichen und erzeugt

Mehr

Seminar Informatik: Syntaxanalyse von DKFG mittels Yacc

Seminar Informatik: Syntaxanalyse von DKFG mittels Yacc Fachhochschule Köln Cologne University of Applied Sciences Seminar Informatik: Syntaxanalyse von DKFG mittels Yacc Jan Bollenbacher 11087107 Studiengang: Master Technische Informatik 15.06.2012 Prof. Dr.

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten und formale Sprachen Klausurvorbereitung Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen

Mehr

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

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage. Bachelor-Programm Compilerbau im SoSe 2014 Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage fischer@informatik.hu-berlin.de J.Fischer 8.1 Position Kapitel 1 Compilationsprozess Teil

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Deterministische PDAs

Deterministische PDAs Deterministische PDAs Erinnerung: Ein PDA ist deterministisch, wenn q Q, a Σ, Z Γ: δ(q,a,z) + δ(q,ε,z) 1. Definition: Eine Sprache heißt deterministisch kontextfrei, wenn es für sie einen DPDA gibt. Ziel:

Mehr

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

LL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt) LL(k)-Analyse Eine KFG G = (N,T,P,S) heisst LL(k)-Grammatik, wenn für alle w,x,y T*, α,β,σ (N U T)* und A N mit 1. S =l>* waσ =l> wασ =l>* wx, 2. S =l>* waσ = > wβσ =l>* wy, 3. start k (x) = start k (y)

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 4: Typ 2 kontextfreie Sprachen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel

Mehr

Syntaxanalyse Ausgangspunkt und Ziel

Syntaxanalyse Ausgangspunkt und Ziel Syntaxanalyse Ausgangspunkt und Ziel Ausgangspunkt: Kontextfreie Grammatik Im Normalfall BNF, manchmal EBNF BNF = Backus-Naur-Form = Produktionsregeln EBNF = erweiterte BNF (+ reguläre Ausdrücke) Prüfung

Mehr

LR(1) Itemmengenkonstruktion

LR(1) Itemmengenkonstruktion LR(1) Itemmengenkonstruktion Grammatik: S A$ xb A aab B B x Sprache: {xb} {anxbn n 0} nicht LL(1) x FIRST(B) x FIRST(A) also: FIRST/FIRST Konflikt bei S A$ xb nicht SLR(1) (Abb. 2.96) betrachte Item B

Mehr

Definition von LR(k)-Grammatiken

Definition von LR(k)-Grammatiken Definition von LR(k)-Grammatiken Ziel: Ein Lookahead von k soll ausreichen um entscheiden zu können, welche Regel angewendet werden muss. Definition: FIRST k (w 1 w n ):= w 1 w k, falls n k, w 1 w n, sonst.

Mehr

Der eigentliche Inhalt (z.b. arithmetisch, algebraisch) wird ignoriert:

Der eigentliche Inhalt (z.b. arithmetisch, algebraisch) wird ignoriert: Überprüfung von Klammerausdrücken Der eigentliche Inhalt z.b. arithmetisch, algebraisch) wird ignoriert: a/b+c)-a c-b))) )))) Hier: nichtleere Klammerausdrücke, also nicht b+c ε. Geht aber auch ähnlich

Mehr

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Aufgabenbeschreibung 29. Juli 2011 1 Einleitung und Motivation Der Parser-Generator Antlr [Par07] bietet die Möglichkeit, die Auswahl

Mehr

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

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

Mehr

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

1 Grammar Engineering. 2 Abstrakte Syntax als abstrakte Algebra. 3 LL(1)-Parser. 4 LR Parser. 5 Fehlerbehandlung. 6 Earley Parser 1 Grammar Engineering 2 Abstrakte Syntax als abstrakte Algebra 3 LL(1)-Parser 4 LR Parser 5 Fehlerbehandlung 6 Earley Parser Zusatzfolien Syntaktische Analyse Wintersemester 2008/09 1 / 44 Grammar Engineering

Mehr

Kapitel IV Formale Sprachen und Grammatiken

Kapitel IV Formale Sprachen und Grammatiken Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist

Mehr

5.2 Endliche Automaten

5.2 Endliche Automaten 114 5.2 Endliche Automaten Endliche Automaten sind Turingmaschinen, die nur endlichen Speicher besitzen. Wie wir bereits im Zusammenhang mit Turingmaschinen gesehen haben, kann endlicher Speicher durch

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

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

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 6 7 7 8 8 12 err. Punkte Gesamtpunktzahl: Note: 1 Aufgabe 1 (3+1+1+1 = 6 Punkte) Es seien

Mehr

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45 Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 45 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs beliebig tief geschachtelten

Mehr

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

Compiler: Parser. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung: Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 17.05.2017 11:06 Inhaltsverzeichnis Parsing....................................... 2 Syntax........................................

Mehr

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

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

Grundlagen der Programmierung 2 (Comp-C)

Grundlagen der Programmierung 2 (Comp-C) Grundlagen der Programmierung 2 (Comp-C) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 25. Juni 2008 Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik

Mehr

Automatentheorie und formale Sprachen

Automatentheorie und formale Sprachen Automatentheorie und formale Sprachen VL 8 Chomsky-Grammatiken Kathrin Hoffmann 23. Mai 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 23.5. 2012 250 Wortproblem Wortproblem ist das

Mehr

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

LL(1)-Parsing. Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger. Automatische Syntaxanalyse (Parsing) LL(1)-Parsing Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger Automatische Syntaxanalyse (Parsing) Heinrich-Heine-Universität Düsseldorf Wintersemester 2012/2013 Aufbau des Referats 1. Einführung,

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (II) 11.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Operationen auf Grammatiken

Operationen auf Grammatiken Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen, Elimination bestimmter Konstrukte Erzeugen eines Parsers Transformation G 1 G 2 mit L(G 1 ) = L(G 2 ) I.a. Parsebaum 1 (w) Parsebaum

Mehr

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

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die

Mehr

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

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

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr

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

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G

Mehr

Der Earley-Algorithmus.

Der Earley-Algorithmus. 1 Der Earley-Algorithmus. Eine Erläuterung der formalen Spezifikation mit linguistischen Beispielen Kursskript Karin Haenelt, 25.07.2001 1 Einleitung In diesem Skript wird die formale Spezifikation des

Mehr

Repetitive Strukturen

Repetitive Strukturen Repetitive Strukturen Andreas Liebig Philipp Muigg ökhan Ibis Repetitive Strukturen, (z.b. sich wiederholende Strings), haben eine große Bedeutung in verschiedenen Anwendungen, wie z.b. Molekularbiologie,

Mehr

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

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

Grundbegriffe. Grammatiken

Grundbegriffe. Grammatiken Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte

Mehr

Parsing regulärer Ausdrücke. Karin Haenelt

Parsing regulärer Ausdrücke. Karin Haenelt Karin Haenelt 25.4.2009 1 Inhalt kontextfreie Grammatik für reguläre Ausdrücke Grundlagen Parsebaum: konkrete Syntax Syntaxbaum: abstrakte Syntax Algorithmus: rkennung Konstruktion des Syntaxbaumes 2 Grammatik

Mehr

Syntaktische Analyse Teil 3

Syntaktische Analyse Teil 3 Syntaktische Analyse Teil 3 Übersicht Bottom-up-Syntaxanalyse LR(k-Analysatoren n Charakteristischer endlicher Automat char(k G n Item-Kellerautomat K G und char(k G n Zuverlässige Präfixe, gültige Items

Mehr

Deterministische endliche Automaten - Wiederholung

Deterministische endliche Automaten - Wiederholung Deterministische endliche Automaten - Wiederholung Die folgende Klasse Zahl stellt einen endlichen Automaten dar. Ermittle die Größen des Automaten und zeichne den Zustandsgraphen. Gib Zeichenfolgen an,

Mehr

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

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO). 1 Grammatiken Autor: Tilman Blumenbach Letzte Änderung: 28. Juni 2012 18:15 Ziel von Grammatiken Wollen die Struktur von Sprachen modellieren und charakterisieren. Beispiel Ein Satz der deutschen Sprache

Mehr

9.4 Grundlagen des Compilerbaus

9.4 Grundlagen des Compilerbaus Kap09.fm Seite 717 Dienstag, 7. September 2010 2:06 14 9.4 Grundlagen des Compilerbaus 717 so dass die Benutzung dieser Regeln zum Aufbau eines + -Knotens bzw. eines Negations- Knotens im abstrakten Syntaxbaum

Mehr

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

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

2.1 Grundlagen: Kontextfreie Grammatiken

2.1 Grundlagen: Kontextfreie Grammatiken 2.1 Grundlagen: Kontextfreie Grammatiken Programme einer Programmiersprache können unbeschränkt viele Tokens enthalten, aber nur endlich viele Token-Klassen :-) Als endliches Terminal-Alphabet T wählen

Mehr

VU Software Paradigmen / SS 2014

VU Software Paradigmen / SS 2014 VU Software Paradigmen 716.060 / SS 2014 Ralph Ankele ralph.ankele@tugraz.at Termine Ausgabe: 19. März (heute) Fragestunde: 24. März Abgabe: 09. April(bis 16:00 Uhr) Einsichtsnahme: xx. April (16:00 Uhr)

Mehr

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale

Mehr

Grundlagen der Programmierung 2 (Comp-D)

Grundlagen der Programmierung 2 (Comp-D) Grundlagen der Programmierung 2 (Comp-D) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 31. Mai 2007 Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen

Mehr

Seminarskript. Parsing I. Helmut Schmid. Achtung: Dieses Skript deckt den Inhalt des Seminares nur teilweise ab!

Seminarskript. Parsing I. Helmut Schmid. Achtung: Dieses Skript deckt den Inhalt des Seminares nur teilweise ab! Seminarskript Parsing I Helmut Schmid Achtung: Dieses Skript deckt den Inhalt des Seminares nur teilweise ab! HS Parsing I 2 Inhaltsverzeichnis 1 Thema und Motivation 3 2 Grundlagen 3 2.1 Grundbegriffe.......................................

Mehr

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

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken.

Mehr

Von der Grammatik zum AST

Von der Grammatik zum AST Von der Grammatik zum AST Welche Eigenschaften soll ein Parser haben? Wann ist eine Grammatik eindeutig? Wie sollte eine Grammatik aussehen? Theoretischer Hin tergrund: FIRST, FOLLOW Einschränkungen von

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

Shift-Reduce-Parsing: Ein einfaches Bottom-Up-Verfahren Keller Shift- und Reduce-Schritte Vorgehen des Parsers Implementation in Prolog Probleme

Shift-Reduce-Parsing: Ein einfaches Bottom-Up-Verfahren Keller Shift- und Reduce-Schritte Vorgehen des Parsers Implementation in Prolog Probleme Shift-Reduce-Parsing bersicht Shift-Reduce-Parsing: Ein einfaches Bottom-Up-Verfahren Keller Shift- und Reduce-Schritte Vorgehen des Parsers Implementation in Prolog Probleme Tilgungsregeln Zyklische Regeln

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv aufzählbare Sprachen Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

6 Kontextfreie Grammatiken

6 Kontextfreie Grammatiken 6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Grammatiken und ANTLR

Grammatiken und ANTLR Grammatiken und ANTLR Zusatzfolien zu Algo Blatt 6 Author: Henry Schaefer http://www.majeeks.de/folien_blatt6.pdf Grammatik Definition: syntaktische Beschreibung einer Sprache (H.S.) Definiton Grammatik

Mehr

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen

Mehr

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

Übersicht. (A) Kontextfreie Sprachen (B) Syntaxanalyse (Parsing) (C) Grenzen der Kontextfreiheit Übersicht (A) Kontextfreie Sprachen (B) Syntaxanalyse (Parsing) (C) Grenzen der Kontextfreiheit (B) Syntaxanalyse 1. Definition Parsing 2. Einfache Parsestrategien: Top-down Bottom-Up Probleme beim Parsen

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

Mehr

VU Software Paradigmen / SS 2014

VU Software Paradigmen / SS 2014 VU Software Paradigmen 716.060 / SS 2014 Thorsten Ruprechter ruprechter@tugraz.at Institute for Software Technology 1 Organisatorisches Ausgabe: 25.03. (heute) Fragestunde: 22.04. Abgabe: 29.04 (ausgedruckt)

Mehr

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

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

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

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer, Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen

Mehr

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

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden Maike Buchin 8. Februar 26 Stef Sijben Probeklausur Theoretische Informatik Bearbeitungszeit: 3 Stunden Name: Matrikelnummer: Studiengang: Geburtsdatum: Hinweise: Schreibe die Lösung jeder Aufgabe direkt

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

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

Syntaktische Analyse (Parsen) Grundlagen der Programmierung. Syntaktische Analyse eines Programms. Syntaktische Analyse bzgl einer CFG Syntaktische Analyse (Parsen) Grundlagen der Programmierung Compiler: Parser (5C) Gegeben: eine kontextfreie Grammatik G und ein String w. Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2015 Fragen: Vorgehen:

Mehr

VU Software Paradigmen / SS 2012

VU Software Paradigmen / SS 2012 VU Software Paradigmen 716.060 / SS 2012 Sandra Fruhmann sandra.fruhmann@student.tugraz.at Inhalt Grammatiken Chomsky Sprachhierarchie Parse Trees Recursive Descent Parser First-, Follow-Mengen 2 Compiler

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (I) 3.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Organisatorisches 1. Teilklausur: Mittwoch,

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Verarbeitung von Programmiersprachen Was ist das einfachste

Mehr

Theoretische Informatik I

Theoretische Informatik I (702765) Skript zur Vorlesung am 30.6.2000 Aus der vorherigen Vorlesung: Theoretische Informatik I Satz W: Sei X ein Alphabet. Zu jeder regulären Sprache R X * gibt es ein n N, so daß für alle Wörter z

Mehr

Deterministischer Kellerautomat (DPDA)

Deterministischer Kellerautomat (DPDA) Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

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

Komplexitätsklassen. (Lauf-)Zeit-Klassen. (Lauf-)Zeit-Klassen. Charakteristische Problemgrößen beim Parsing Komplexitätsklassen Charakteristische Problemgrößen beim Parsing O(1) konstant O(log n) logarithmisch O(n) linear O(n k ) polynomial (k [2,4]) O(n k ) polynomial (k > 4) O(k n ) exponentiell n ist die

Mehr

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

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

1.) Zahlensysteme (10 Punkte)

1.) Zahlensysteme (10 Punkte) 1.) Zahlensysteme (10 Punkte) (a) Stellen Sie die folgenden zur Basis 8 (oktal) angegebenen Ganzzahlen als vorzeichenbehaftete Binärzahlen in 7 Bit dar. Negative Binärzahlen sollen im Zweierkomplement

Mehr

Lexikalische Analyse, Tokenizer, Scanner

Lexikalische Analyse, Tokenizer, Scanner Lexikalische Analyse, Tokenizer, Scanner Frühe Phase des Übersetzers Aufgabenteilung: Scanner (lokale) Zeichen (Symbol-)Analyse Parser Syntax-Analyse Aufgabe des Scanners: Erkennung von: Zahlen, Bezeichner,

Mehr

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

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung

Mehr

Informatik IC2. Balazs Simon

Informatik IC2. Balazs Simon Informatik IC2 Balazs Simon Inhaltsverzeichnis 1 Contextfreie Sprachen 3 1.1 Ableitungsbaum..................................... 3 1.2 Schönheit........................................ 4 1.3 Normalformen......................................

Mehr

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

2.4 Kontextsensitive und Typ 0-Sprachen

2.4 Kontextsensitive und Typ 0-Sprachen Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

Seminar: Algorithmisches in der Geometrie Ausarbeitung zum 8. Vortrag: Fast freie Gruppen sind kontextfrei

Seminar: Algorithmisches in der Geometrie Ausarbeitung zum 8. Vortrag: Fast freie Gruppen sind kontextfrei Seminar: Algorithmisches in der Geometrie Ausarbeitung zum 8. Vortrag: Fast freie Gruppen sind kontextfrei Michael Hamann 11. Juni 2010 Diese Ausarbeitung beweist die Aussage, dass fast freie Gruppen kontextfrei

Mehr

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

Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15 1/15 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 28. November 2007 2/15 Formale Sprache: Menge von Symbolketten Theorie formaler Sprachen Formale Sprachen

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen Syntax von Programmiersprachen SEP 209 Programmiersprachen Sprache = Menge von Wörtern, typischerweise unendlich Programmiersprache: Wörter repräsentieren Programme Programm kann auf einem Computer evtl.

Mehr

Begriffe (Wiederholung)

Begriffe (Wiederholung) Begriffe (Wiederholung) Sprache Menge aller Sätze Alphabet terminales / nicht terminales terminales A. Zeichen aus denen die Sätze der Sprache bestehen nicht terminales A. Hilfszeichen zum Bilden von Regeln

Mehr

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft und Grammatiken (Folie 119, eite 202 im kript) atzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft a, b, c,... für Terminalsymbole A, B, C,... für Nonterminale u, v, w,... für Terminalwörter

Mehr

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

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz. Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe

Mehr

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Kapitel 5: Syntaxdiagramme und Grammatikregeln 5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

Referatsausarbeitung

Referatsausarbeitung Referatsausarbeitung Thema: Das zweite LBA-Problem Vorlesung: Sequentielle und parallele Komplexitätstheorie Übung Dozent Datum Referenten Dr. Renate Winter 08.01.1998 Marcus Hörning Michael Muth Ronny

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch

Mehr

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

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr