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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Aufbau des Referats 1. Einführung, Warum LL(1)-Parsing? 2. LL(1)-Grammatiken 1. Parsing-Tabelle statt Grammatik 2. SLL(1)-Grammatiken 3. LL(1)-Parsing 1. LL(1)-Parsing ohne ɛ-ableitungen 2. LL(1)-Parsing mit ɛ-ableitungen 3. FOLLOW-Menge 4. Strong-LL(1)-Parsing 5. Vollständiges LL(1)-Parsing 4. Vor- und Nachteile von LL(1)-Parsing, Ausblick 5. Quellenangabe

3 Einführung, Ziel des Vortrags Problem bis jetzt: Breadth-First- und Depth-First-Parser sind nicht effizient, da nicht deterministisch Ab jetzt: deterministische Parser Vorteile schneller nur 1 Parsing-Baum also keine Ambiguitäten Nachteil: viele Grammatiken sind ambig, können also nicht geparst werden

4 Einführung, Ziel des Vortrags 1. Möglichkeit: nur nicht-ambige Grammatiken verwenden: - Keine gute Lösung 2. Möglichkeit: Grammatik anpassen, kluges Parsing: - Das machen wir jetzt

5 LL(1)-Grammatiken Bis jetzt außer Acht gelassen: Was wurde schon produziert? --> LL(1) - Es wird 1 Terminales nach vorne geschaut (Lookahead ) Wir gehen von einer simplen Grammatik aus: S ab B b abb Jede rechte Seite startet mit einem Terminalen. Also kommt beim Parsen nach jedem Predict-Schritt ein Match-Schritt. Jetzt müssen bei a im Lookahead nur die beiden S- Produktionen überprüft werden

6 LL(1)-Grammatiken Wir können die möglichen Produktionen für jedes Terminale auch in eine Parsing-Tabelle eintragen Vorteil: Parser benötigt die Grammatik dann nicht mehr muss nicht alle Produktionen ablaufen S ab a b # B b abb S B

7 LL(1)-Grammatiken Wir können die möglichen Produktionen für jedes Terminale auch in eine Parsing-Tabelle eintragen Vorteil: Parser benötigt die Grammatik dann nicht mehr muss nicht alle Produktionen ablaufen S ab B b abb S a b # S1 ab B B2 abb B1 b

8 SLL(1)-Grammatiken Grammatiken, mit Produktionen die nicht mehrmals mit dem gleichen Terminalen beginnen heißen SLL(1)- Grammatiken oder auch S-Grammatiken S steht für Simple und LL für Links-Linear und Lookahead Diese Grammatiken sind sehr effizient (erzeugen genau eine Parsing-Tabelle Aber: Nur wenige Grammatiken können in diese Form gebracht werden Also: Wir brauchen einen Parser der mit der gleichen Effizienz auch allgemeinere Grammatiken verarbeiten kann

9 Aufbau des Referats 1. Einführung, Warum LL(1)-Parsing? 2. LL(1)-Grammatiken 1. Parsing-Tabelle statt Grammatik 2. SLL(1)-Grammatiken 3. LL(1)-Parsing 1. LL(1)-Parsing ohne ɛ-ableitungen 2. LL(1)-Parsing mit ɛ-ableitungen 3. FOLLOW-Menge 4. Strong-LL(1)-Parsing 5. Vollständiges LL(1)-Parsing 4. Vor- und Nachteile von LL(1)-Parsing, Ausblick 5. Quellenangabe

10 LL(1)-Parsing ohne ɛ- Regeln Bis jetzt: Nur deterministische Grammatiken Jetzt: ohne diese Vorraussetzung keine ɛ-regeln, also: kein Nichtterminales produziert das leere Wort, sondern immer ein Wort der Mindestlänge 1 Wir definieren eine Menge FIRST(x) in der alle Terminalen stehen, die nichtleere Wörter produzieren (aus Produktion x)

11 LL(1)-Parsing ohne ɛ- Regeln Beispielgrammatik: Session Fact Session Session Question Session (Session) Session Fact! STRING Question? STRING First-Mengen: FIRST(Session FIRST(Fact) FIRST(Question)

12 LL(1)-Parsing ohne ɛ- Regeln Beispielgrammatik: Session Fact Session Session Question Session (Session) Session Fact! STRING Question? STRING First-Mengen: FIRST(Session) FIRST(Fact) FIRST(Question) (!?

13 LL(1)-Parsing ohne ɛ- Regeln Beispielgrammatik: Session Fact Session Session Question Session (Session) Session Fact! STRING Question? STRING First-Mengen: FIRST(Session) FIRST(Fact) FIRST(Question) (!?!?

14 LL(1)-Parsing ohne ɛ- Regeln!? ( ) STRING # Session Fact Session Question ( Session ) Session Question? STRING Fact! STRING

15 Aufbau des Referats 1. Einführung, Warum LL(1)-Parsing? 2. LL(1)-Grammatiken 1. Parsing-Tabelle statt Grammatik 2. SLL(1)-Grammatiken 3. LL(1)-Parsing 1. LL(1)-Parsing ohne ɛ-ableitungen 2. LL(1)-Parsing mit ɛ-ableitungen 3. FOLLOW-Menge 4. Strong-LL(1)-Parsing 5. Vollständiges LL(1)-Parsing 4. Vor- und Nachteile von LL(1)-Parsing, Ausblick 5. Quellenangabe

16 LL(1)-Parsing mit ɛ- Regeln Problem: FIRST-Sets sind nicht mehr ausreichend Beispielgrammatik: Session Facts Question (Session) Session Facts Fact Facts ɛ Fact! STRING Question -? STRING würde man an dieser Grammatik das alte FIRST-Set benutzen, wäre? nicht in FIRST(Session), was es aber sein sollte, da Facts auch ɛ sein kann.

17 LL(1)-Parsing mit ɛ- Regeln Also wird ɛ zum FIRST-Set hinzugefügt. Session Facts Question (Session) Session Facts Fact Facts ɛ Fact! STRING Question -? STRING die Parsing-Tabelle sieht dann so aus: FIRST(Session) FIRST(Facts) FIRST(Fact) FIRST(Question) ( ɛ!?

18 LL(1)-Parsing mit ɛ- Regeln Session Facts Question (Session) Session Facts Fact Facts ɛ Fact! STRING Question -? STRING FIRST(Session) FIRST(Facts) FIRST(Fact) FIRST(Question) (? ɛ!!?

19 LL(1)-Parsing mit ɛ- Regeln Session Facts Question (Session) Session Facts Fact Facts ɛ Fact! STRING Question -? STRING FIRST(Session) FIRST(Facts) FIRST(Fact) FIRST(Question) (?! ɛ!!?

20 LL(1)-Parsing mit ɛ- Regeln Neue Menge FOLLOW(x) Warum? Obwohl es ein Deterministischer Parser ist, ist er weit weg vom Ideal, denn er er benutzt nicht die Pars-Tabelle(siehe weiter oben) noch kontrolliert er, ob es sich um eine LL(1) Grammatik handelt, das soll kontrolliert werden während der Parser generiert wird Der Parser ist nicht effizient da er mehrere FIRST-Steps für jeden Prediction-Step errechnet > durch das ɛ können wir nicht die FIRST-Steps vorberechnen dadurch wissen wir weder wie wir eine Pars-Tabelle für eine LL(1) Grammatik mit ɛ-produktion erstellen können noch können wir bestimmen ob eine Grammatik eine LL(1) Grammatik ist.

21 LL(1)-Parsing mit ɛ- Regeln Session Facts Question (Session) Session Facts - Fact Facts ɛ Fact -! STRING Question -? STRING FOLLOW(Session) FOLLOW(Facts) FOLLOW(Fact) FOLLOW(Question) # )??! # )

22 LL(1)-Parsing mit ɛ- Regeln Session Facts Question (Session) Session Facts - Fact Facts ɛ Fact -! STRING Question -? STRING Mithilfe der FOLLOW-Menge eine Parsing-Tabelle erstellen: ( ) #!? STRING Session (Session) Session Facts Question Facts Question Facts Fact Facts ɛ Fact! STRING Question? STRING

23 Strong LL(1)-Parsing Jede Grammatik die LL(1) ist, ist auch Strong LL(1) und jede Grammatik die Strong LL(1) ist, ist auch LL(1). Jede Grammatik die nicht LL(1) ist, ist auch nicht Strong LL(1) und jede Grammatik die nicht Strong LL(1) ist, ist auch nicht LL(1). Der Unterschied zwischen LL(1) und Strong LL(1) ist dass der Strong LL(1) Parser manchmal noch ɛ-predictions macht bevor er einen Fehler entdeckt.

24 Strong LL(1)-Parsing Beispiel: S -> aab baa A -> cs ɛ a b c # S aab baa A ɛ ɛ cs

25 Strong LL(1)-Parsing S -> aab baa 1. Schritt 3. Schritt A -> cs ɛ aacabb# S# S aacabb# aab 3. Schritt 4. Schritt a acabb# a acabb# Sa Ab SaA b Bei dem 4. Schritt bemerkt der Strong LL(1) Parser den Error, der LL(1) Parser hingegen hätte den Error schon beim 3. Schritt bemerkt und somit den 4. erst gar nicht gemacht.

26 Aufbau des Referats 1. Einführung, Warum LL(1)-Parsing? 2. LL(1)-Grammatiken 1. Parsing-Tabelle statt Grammatik 2. SLL(1)-Grammatiken 3. LL(1)-Parsing 1. LL(1)-Parsing ohne ɛ-ableitungen 2. LL(1)-Parsing mit ɛ-ableitungen 1. FOLLOW-Menge 2. Strong-LL(1)-Parsing 3. Vollständiges LL(1)-Parsing 4. Vor- und Nachteile von LL(1)-Parsing, Ausblick 5. Quellenangabe

27 Vollständiges LL(1)- Parsing unsere Grammatik: S aab baa A cs ε a b c # Strong LL(1)- Parsing-Tabelle: S a A b b A a A ɛ ɛ c S Parsingschritte: a S1 a aacabb# S# acabb# Ab# S1 a acaabb# aab# acabb# S1 a A2 b#

28 Vollständiges LL(1)- Parsing Ein Full-LL(1)-Parser hätte im Schritt 3 erkannt, dass weder in FIRST(b#), in noch FIRST(cSb#) ein a gibt Der Fehler währe also gefunden, bevor eine Rechts Seite für A ausgewählt wäre.

29 Vollständiges LL(1)- Parsing Prinzip: Restwort gegeben und FIRST(Restwort) wird mit einbezogen einbezieht, anstatt FIRST(A FOLLOW(A)) zu lesen. Vorteil: Verhindert falsche Entscheidungen Nachteil: Man muss jedes mal in der Parsing-Tabelle nachgucken.

30 Vollständiges LL(1)- Parsing 1. Schritt: FIRST wird nicht auf das ganze Wort angewendet, sondern nur auf bestimmte Eingaben: 1. FIRST(#) 2. FIRST(Z#) 3. FIRST(YZ#) 4. FIRST(XYZ#)

31 Vollständiges LL(1)- Parsing Diese Schritte können von rechts nach links sehr einfach berechnet werden: FIRST(S)={a,b} FIRST(A)={c,ε} Der Parser startet mit dem Predict-Step auf S#. Jetzt brauchen wir einen Anfangspunkt für die Schritte Es bietet sich an rechts vom # zu beginnen, weil danach keine Eingabe mehr erlaubt ist.

32 Vollständiges LL(1)- Parsing Da das 1. Eingabesymbol a in der FIRST(S) Menge drin ist, gibt der Parser hier keinen Fehler aus. Es wird also die Produktion S aab ausgewählt: Wie würde dieser Schritt aussehen?

33 Vollständiges LL(1)- Parsing wir können also das a lesen

34 Vollständiges LL(1)- Parsing bei nächsten Nichtterminalen haben wir allerdings keine Übereinstimmung von Resteingabe mit der Menge von FIRST(A). Also: ERROR

35 Vollständiges LL(1)- Parsing Bis jetzt: Kaum Unterschied in der Effizienz Also: Regeln aufstellen Wir starten mit S und dem Menge {#}: [S,{#}]. Bei dem look-ahead Symbol a, [S, {#}] bekommen wir die rechte Seite: a[a,{b}]b Bei dem look-ahead Symbol b,[s,{#}] bekommen wir die rechte Seite: b[a,{a}]a.

36 Vollständiges LL(1)- Parsing Wir bekommen dann die folgenden Lookaheads: b, [A,{b}] ε c,[a,{a}] c[s,{a}] a,[a,{a}] ε Nun können wir Regeln für die S-Paare aufstellen: a,[s,{a}] a[a,{b}]b b,[a,{a}] b[a,{a}]a a,[s,{b}] a[a,{b}]b b[s,{b}] b[a,{a}]a

37 Vollständiges LL(1)- Parsing Die Parstabelle für diese Grammatik würde so aussehen: a b c # [S,{#}] a[a,{b}]b b[a,{a}]a [S,{a}] a[a,{b}]b b[a,{a}]a [S,{b}] a[a,{b}]b b[a,{a}]a [A,{a}] ε c[s,{a}] [A,{b}] ε c[s,{b}] Die Verschieden S Regeln sagen alles das gleiche aus wir können sie zusammenfassen.

38 Vollständiges LL(1)- Parsing - Fazit Der vollständige LL(1)-Parser unterscheidet sich nur durch die Parsing-Tabellen durch den Strong- LL(1)-Parser Einziger Vorteil: Einige Fehler werden früher erkannt Aber: Extrakosten zu hoch Deshalb: Meistens Strong-LL(1)-Parser

39 Vollständiges LL(1)- Parsing - Fazit Unterschiede vollständiger LL(1)-Parser und Strong- LL(1)-Parser: Der vollständige LL(1) Parser entscheidet mit der FIRST-Menge aus (Rechte Seite und T(predict)) und dem 1. terminalen aus der Eingabe Der strong LL(1) Parser entscheidet mit der FIRST- Menge von der Rechten Seite, Dem Follow von A wenn eine ε-produktion vorliegt und dem 1. terminalen aus der Eingabe. Der simple LL(1) parser entscheidet mit dem 1. T aus Rechter Seite und dem 1.T aus der Eingabe.

40 Ausblick LL(1)-Parsing hat einen Lookahead von 1 LL(k)-Parsing hat einen Lookahead von k, kann also k-schritte vorrausschauen LL-Parser leitet von links nach rechts ab LR-Parser leitet von rechts nach links ab

41 Quellenangabe Kapitel 8 aus Grune & Jacobs Parsing Techniques (mit Auszügen) Eintrag zu LL(k)-Parsing in der deutschen Wikipedia

42 Aufbau des Referats 1. Einführung, Warum LL(1)-Parsing? 2. LL(1)-Grammatiken 1. Parsing-Tabelle statt Grammatik 2. SLL(1)-Grammatiken 3. LL(1)-Parsing 1. LL(1)-Parsing ohne ɛ-ableitungen 2. LL(1)-Parsing mit ɛ-ableitungen 1. FOLLOW-Menge 2. Strong-LL(1)-Parsing 3. Vollständiges LL(1)-Parsing 4. Vor- und Nachteile von LL(1)-Parsing, Ausblick 5. Quellenangabe

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

LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13 LR-Parsing Präsentation vom 19. Dez. 2012 Adriana Kosior, Sandra Pyka & Michael Weidauer Automatische Syntaxanalyse (Parsing) Wintersemester 12/13 Inhalte Einleitung LR(0) Parser LR(1) Parser Fazit Literatur

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

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

Softwareparadigmen VU / SS 2018

Softwareparadigmen VU / SS 2018 Softwareparadigmen VU 716.060 / SS 2018 Jannik Hildebrandt swp@ist.tugraz.at NG: tu-graz.lv.swp Institute for Software Technology 1 Organisatorisches Ausgabe: 21.03. Fragestunde: 11.04. Abgabe: 18.04.,

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

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

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

Einführung - Parser. Was ist ein Parser?

Einführung - Parser. Was ist ein Parser? 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

Mehr

Die Vorausschau-Tabelle:

Die Vorausschau-Tabelle: A 0 i 0 A 1 i 1 β 1 A 2 i 2 β 2 B i β γ Die Vorausschau-Tabelle: Wir setzen M[ [A α Bβ, L], w] = i genau dann wenn (B, i) die Regel B γ ist und: w First k (γ) First k (β) L 440 ([A 0 α 1 A 1 β 1, L 1 ],

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

Idee: Wir definieren: 2.4 Topdown Parsing. uaβ mit

Idee: Wir definieren: 2.4 Topdown Parsing. uaβ mit 2.4 Topdown Parsing Idee: Benutze den Item-Kellerautomaten. Benutze die nächsten k Zeichen, um die Regeln für die Expansionen zu bestimmen ;-) Eine Grammatik heißt LL(k), falls dies immer eindeutig möglich

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

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

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

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

LR Parsing. Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52)

LR Parsing. Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52) LR Parsing Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52) Parserkonfiguration: s 0 X 1 s 1... X m s m, t i t i 1... t n 1.Stack: enthält abwechselnd Zustand sk und Grammatiksymbol

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

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

Formale Sprachen, Automaten, Compiler

Formale Sprachen, Automaten, Compiler Formale Sprachen, Automaten, Compiler Berufsakademie Lörrach, TIT06-3. Semester Übung 1 -> LÖSUNGSVORSCHLAG ÜA1.1. Die "normalen" Dezimalziffern, also Σ = { 0, 1,..., 9, ist sicher ein Alphabet, aber auch

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

VU SWP - Syntax. Bernhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie

VU SWP - Syntax. Bernhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie VU SWP - Syntax Bernhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie {aichernig,felfernig}@ist.tugraz.at Institute for Software Technology Produktionen Inhalt welche Sätze akzeptiert?

Mehr

Formale Sprachen Jörg Roth Formale Sprachen

Formale Sprachen Jörg Roth Formale Sprachen Formale Sprachen Jörg Roth 196 3 Formale Sprachen Wir haben uns bisher nur mit einem Typ formaler Sprachen besonders intensiv beschäftigt den regulären Sprachen. Wir haben aber auch erkannt, dass reguläre

Mehr

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

Earley Parser. Flutura Mestani

Earley Parser. Flutura Mestani Earley Parser Flutura Mestani Informatik Seminar Algorithmen zu kontextfreien Grammatiken Wintersemester 2015/2016 Prof. Martin Hofmann, Dr. Hans Leiß Flutura Mestani 25.11.2015 Seminar Algorithmen zu

Mehr

Erkennung der kontextfreien Grammatiken mittels Boolescher Matrixmultiplikation

Erkennung der kontextfreien Grammatiken mittels Boolescher Matrixmultiplikation Erkennung der kontextfreien Grammatiken mittels Boolescher Matrixmultiplikation Valiant-Erkenner Referent: Fedor Uvarov eminar Algorithmen zu kontextfreien Grammatiken Dozenten: Prof Dr. Hofmann, Dr. Leiß

Mehr

Einführung in die Computerlinguistik Chart-Parsing

Einführung in die Computerlinguistik Chart-Parsing Einführung in die Computerlinguistik Chart-Parsing Dozentin: Wiebke sen 21.12.2009 Wiebke sen Einführung CL (Wie 09/10) 1 P = calls calls Wiebke sen Einführung CL (Wie 09/10) 2 P = calls calls Wiebke sen

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

Klausur zur Vorlesung Formale Sprachen und Automaten TIT03G2 mit Lösungsvorschlägen

Klausur zur Vorlesung Formale Sprachen und Automaten TIT03G2 mit Lösungsvorschlägen Klausur zur Vorlesung Formale Sprachen und Automaten TIT03G2 mit Lösungsvorschlägen Name: Matr.-Nr.: Vorname: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 7 10 6 8 7 9 err. Punkte Gesamtpunktzahl: Note: Aufgabe

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

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

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

5. Die syntaktische Analyse

5. Die syntaktische Analyse mittels sog. Parser Input: Folge von Token (Symbolen), geliefert vom Scanner/Sieber Aufgabe: Teilfolgen zusammenfassen zu größeren syntaktischen Einheiten Ausdrücke, Anweisungen(-folgen), Deklarationen,

Mehr

Automaten und formale Sprachen Notizen zu den Folien

Automaten und formale Sprachen Notizen zu den Folien 13 Kellerautomaten Automaten und formale Sprachen Notizen zu den Folien Warum ein Automatenmodell für kontextfreien Sprachen (zu Folie 233) Manche Konstruktionen und Verfahren lassen sich besser mit Hilfe

Mehr

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

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Automatisches Verstehen gesprochener Sprache

Automatisches Verstehen gesprochener Sprache Automatisches Verstehen gesprochener Sprache 6. Syntaxanalyse Martin Hacker Bernd Ludwig Günther Görz Professur für Künstliche Intelligenz Department Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Mehr

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

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

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

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Reguläre Ausdrücke. Michael Jäger. 4. April 2017 Reguläre Ausdrücke Michael Jäger 4. April 2017 Zeichenketten und Sprachen Ein Alphabet ist eine endliche Menge von Symbolen. Beispiele: 1. Σ 1 = {0, 1} 2. Σ 2 = {a, b, c, d, e, f, g, h, i, j, k, l, m,

Mehr

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 2 Lösungen. Wiederholung: von einer Grammatik erzeugte Sprache

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 2 Lösungen. Wiederholung: von einer Grammatik erzeugte Sprache Prof. Dr. Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4: Informatik Dennis Peuter 27. April 2017 Übung zur Vorlesung Grundlagen der theoretischen Informatik Aufgabenblatt 2 Lösungen

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Kontextfreie Sprachen und Pushdown-Automaten Dozentin: Wiebke Petersen WS 2004/2005 Wiebke Petersen Formale Komplexität natürlicher Sprachen WS 03/04 Wiederholung c

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

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS

Mehr

Finite-State Technology

Finite-State Technology Finite-State Technology Teil III: Automaten 1 Wiederholung Formale Grammatiken sind entweder axiomatische Systeme mit Ableitungsregeln oder Automaten. Beide beschreiben formale Sprachen. Formale Sprachen

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Nachlieferung Übung 4+7: Minimierung von DFAs, LR-Grammatiken

Nachlieferung Übung 4+7: Minimierung von DFAs, LR-Grammatiken Nachlieferung Übung 4+7: Minimierung von DFAs, LR-Grammatiken Theoretische Informatik Sommersemester 2015 Markus Schlaffer 3. Juli 2015 1/7 Äquivalenzen Definition (Äquivalente Worte) Jede Sprache L Σ

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. Mai 2011 Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik

Mehr

Earley Parsing. Parsing - WS 2012 / 2013 Lisa Orszullok & Anika Stallmann

Earley Parsing. Parsing - WS 2012 / 2013 Lisa Orszullok & Anika Stallmann Earley Parsing Parsing - WS 2012 / 2013 Lisa Orszullok & Anika Stallmann 12.12.2012 Agenda Basics Komponenten Earley Parsing - Recognizer Earley Parsing - Parser Vor- und Nachteile Parsing WS 2012/2013

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

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

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

Übungsaufgaben zu Formalen Sprachen und Automaten

Übungsaufgaben zu Formalen Sprachen und Automaten Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann. Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden

Mehr

Praktikum BKSPP: Blatt 2

Praktikum BKSPP: Blatt 2 Praktikum BKSPP: Blatt 2 PD Dr. David Sabel WS 2014/15 Zeichenbasierte Komprimierung Stringersatzverfahren Codebäume Huffman-Kodierung Zeichenbasierte Komprimierung mit Codebäumen Idee: Kodiere jedes Zeichen

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

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

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

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

Inkrementelle Syntax

Inkrementelle Syntax Inkrementelle Syntax CFG und inkrementelles Parsing Timm Lichte HHU Düsseldorf, Germany 30.10.2013 SFB 991 1 / 24 Aus der letzten Sitzung inkrementelle Syntax Mechanismen bzw. Komponenten eines Grammatikformalismus,

Mehr

Bottom-up-Syntaxanalyse

Bottom-up-Syntaxanalyse 2.2.2.2 Bottom-up-Syntaxanalyse Lernziele: Einführung in die bu-syntaxanalyse LR(k)-Analyseverfahren Auflösung von Konflikten bei der Parsergenerierung Zusammenhang: KFGs und Kellerautomaten Einführung:

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

Inhalt Kapitel 11: Formale Syntax und Semantik

Inhalt Kapitel 11: Formale Syntax und Semantik Inhalt Kapitel 11: Formale Syntax und Semantik 1 Abstrakte und konkrete Syntax 2 Lexikalische Analyse 3 Formale Sprachen, Grammatiken, BNF 4 Syntaxanalyse konkret 266 Abstrakte und konkrete Syntax Abstrakte

Mehr

Ein Fragment von Pascal

Ein Fragment von Pascal Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und

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

Grundlagen der Programmierung

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

Mehr

DisMod-Repetitorium Tag 4

DisMod-Repetitorium Tag 4 DisMod-Repetitorium Tag 4 Endliche Automaten, Reguläre Sprachen und Kontextfreie Grammatiken 22. März 2018 1 Endliche Automaten Definition DFA Auswertungen Äquivalenzrelationen Verschmelzungsrelation und

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

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

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

Klausur zur Vorlesung Grundbegriffe der Informatik 31. August 2009 mit Lösunsgsvorschlägen

Klausur zur Vorlesung Grundbegriffe der Informatik 31. August 2009 mit Lösunsgsvorschlägen Klausur zur Vorlesung Grundbegriffe der Informatik 31. August 2009 mit Lösunsgsvorschlägen Klausurnummer Vorname: Aufgabe 1 2 3 4 5 6 7 max. Punkte 4 4 6 8 6 8 8 tats. Punkte Gesamtpunktzahl: Note: Aufgabe

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

5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse

5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse 5. Syntaxanalyse und der Parser-Generator yacc 5.1 Einleitung 5.2 Kontextfreie Grammatiken 5.3 Grundlagen von yacc 5.4 Absteigende Analyse Übersetzergenerierung Syntaxanalyse und yacc (2) Jan Bredereke,

Mehr

CompB Zusammenfassung

CompB Zusammenfassung Compilerbau CompB Zusammenfassung Stand: 2013-09-08 https://github.com/hsr-stud/compb/ Inhaltsverzeichnis 1 Lexikalische Analyse 3 1.1 Aufgaben eines Lexers................................... 3 1.2 Probleme,

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 14 Parsen, Suchen und Sortieren 19./26.01.2015 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik . Übungsblatt 6. VU Theoretische Informatik und Logik 25. September 23 Aufgabe Sind folgende Aussagen korrekt? Begründen Sie jeweils Ihre Antwort. a) Für jede Sprache L gilt: L < L (wobei A die Anzahl

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

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

Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus: 4.7 Kellerautomaten In der Literatur findet man häufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch. Definition

Mehr

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

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 08.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Letzte Vorlesung Eine

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 6: formale Sprachen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/18 Überblick Formale Sprachen Formale Sprachen

Mehr

Abschnitt 5. Grammatiken

Abschnitt 5. Grammatiken Abschnitt 5 Sven Büchel Computerlinguistik I: Übung 148 / 163 Definition Formale Grammatik Eine formale Grammatik G ist eine 4-Tupel G =(N,T,P,S) mit einem Alphabet von Nicht-Terminalsymbolen N einem Alphabet

Mehr

Tutoraufgabe 1 (ɛ-produktionen):

Tutoraufgabe 1 (ɛ-produktionen): Prof aa Dr J Giesl Formale Systeme, Automaten, Prozesse SS 2010 M Brockschmidt, F Emmes, C Fuhs, C Otto, T Ströder Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus dem gleichen Tutorium

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

Formale Grundlagen der Wirtschaftsinformatik

Formale Grundlagen der Wirtschaftsinformatik Formale Grundlagen der Wirtschaftsinformatik Nikolaj Popov Research Institute for Symbolic Computation popov@risc.uni-linz.ac.at Sprachen und Grammatiken Teil II Sprache Definition: Ein Alphabet Σ ist

Mehr

10 Kellerautomaten. Kellerautomaten

10 Kellerautomaten. Kellerautomaten 10 Kellerautomaten Bisher hatten wir kontextfreie Sprachen nur mit Hilfe von Grammatiken charakterisiert. Wir haben gesehen, dass endliche Automaten nicht in der Lage sind, alle kontextfreien Sprachen

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

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 48

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 48 Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 48 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs rekursiv definierten baumartigen

Mehr

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

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im

Mehr

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt

Mehr

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf.

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf. Bachelor-Programm Compilerbau im SoSe 2014 Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf. Ingmar Eveslage fischer@informatik.hu-berlin.de J.Fischer 7.1 4.3 LL-Parser Prinzip der

Mehr

1 Eliminieren von ɛ-übergängen

1 Eliminieren von ɛ-übergängen 1 Eliminieren von ɛ-übergängen 1.1 Beispiel 1 (a) Ausgangspunkt: Zwei ɛ-übergänge (b) Entfernung eines ɛ-übergangs, Reduktion (c) Entfernen eines ɛ-übergangs, Reduktion Abbildung 1: Elimination von ɛ-übergängen,

Mehr

Übersicht. 3 3 Kontextfreie Sprachen

Übersicht. 3 3 Kontextfreie Sprachen Formale Systeme, Automaten, Prozesse Übersicht 3 3.1 Kontextfreie Sprachen und Grammatiken 3.2 Ableitungsbäume 3.3 Die pre -Operation 3.4 Entscheidungsprobleme für CFGs 3.5 Normalformen für CFGs 3.6 Chomsky-Normalform

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

Übung zu Grundlagen des Übersetzerbaus

Übung zu Grundlagen des Übersetzerbaus Übung zu Grundlagen des Übersetzerbaus Mehr zu Parsern und LL(k)-Grammatiken Lehrstuhl für Informatik 2 (Programmiersysteme) Probleme bei LR-Parsern Für manche Grammatiken ist es nicht möglich, LR-Parser

Mehr

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

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

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

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau für die Common Language Run-Time Compilerbau für die Common Language Run-Time Syntaxanalyse 2 Grammatikgetriebener Compilerbau Grammatik Teil der Sprachdefinition Grammatik liefert Liste der Tokenklassen Grammatik hilft bei Strukturierung

Mehr