LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13
|
|
- Bastian Abel
- vor 5 Jahren
- Abrufe
Transkript
1 LR-Parsing Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer Automatische Syntaxanalyse (Parsing) Wintersemester 12/13
2 Inhalte Einleitung LR(0) Parser LR(1) Parser Fazit Literatur 2
3 Einleitung: was ist ein LR - Parser Bottom-up Parser mit Top-down Restriction Bottom-up bringt Probleme mit sich LR-Parser hilft uns nun weiter Benutzung von reduce Eingabe wird von links nach rechts abgearbeitet Rechtsableitend benötigt kontextfreie Grammatik wird allgemein LR(k) Parser genannt Wir besprechen hier: LR(0)- und LR(1)-Parser (ε-regeln werden hier außer Acht gelassen) 3
4 Einleitung Wiederholung: Shift Reduce Shift verschiebt von der Eingabe auf den Stack Reduce verarbeitet den obersten Teil des Stacks mit Hilfe der Produktionsregeln S AB A a B bb a A Ab Abb AB Γ Resteingabe Aktion abb bb bb b $ $ reduce reduce 4
5 Einleitung LR-Parser beruht auf dem Einsatz einer Parsetabelle Je nach LR-Parser unterscheidet sich lediglich die Parsetabelle, der Algorithmus bleibt unverändert LR-Parser verarbeiten deterministische, sowie nichtdeterministische Grammatiken Hier: Vorstellung der deterministischen Grammatiken 5
6 Einleitung Grundlegende Idee bzw. prinzipieller Ablauf: Konstruktion eines DEA aus einer Grammatik, der in eine Parsetabelle umgewandelt wird S AB A a B bb 6
7 Einleitung Grundlegende Idee bzw. prinzipieller Ablauf: Konstruktion eines DEA aus einer Grammatik, der in eine Parsetabelle umgewandelt wird S A: Dummyproduktion S A A aa A b 7
8 Einleitung Grundlegende Idee bzw. prinzipieller Ablauf: Konstruktion eines DEA aus einer Grammatik, der in eine Parsetabelle umgewandelt wird S A: Dummyproduktion Eine neue Startproduktion (S A) wird zur Grammatik hinzugefügt (A ist hierbei das alte Startsymbol) Hiermit wird dem Parser angezeigt, dass die Syntaxanalyse beendet ist S A A aa A b Die um die Dummyproduktion erweiterte Grammatik wird mit G0 gekennzeichnet 8
9 Einleitung Dummyproduktion Eine neue Startproduktion (S A) wird zur Grammatik hinzugefügt (A ist hierbei das alte Startsymbol) Hiermit wird dem Parser angezeigt, dass die Syntaxanalyse beendet ist Die um die Dummyproduktion erweiterte Grammatik wird mit G0 gekennzeichnet Konstruktion des endlichen Automaten mit Hilfe der Grammatik Ableitung der Parsetabelle aus dem Automaten 9
10 Einleitung CLOSURE (Hülle) Die Hülle dient der Erkennung abgeleiteter Nichtterminalsymbole während der Bearbeitung einer Regel GOTO Operator erzeugt zu einem Zustand, der durch eine Menge von LR(0)-Items charakterisiert wird, den Folgezustand Closure und GOTO verhalten sich bei LR(0) und LR(1) unterschiedlich 10
11 Einleitung Automat Grundlegende Idee bzw. prinzipieller Ablauf: Konstruktion eines DEA aus einer Grammatik, der in eine Parsetabelle umgewandelt wird Wird mit CLOSURE und GOTO berechnet S A A aa A b 11
12 Einleitung Automat CLOSURE Die Hülle dient der Erkennung abgeleiteter Nichtterminalsymbole während der Bearbeitung einer Regel Damit wird der Inhalt der einzelnen Zustände berechnet S A A aa A b 12
13 Einleitung Automat S A A aa A b GOTO Operator erzeugt zu einem Zustand, der durch eine Menge von LR(0)-Items charakterisiert wird, den Folgezustand Damit werden die Übergänge von Zustand zu Zustand berechnet Closure und GOTO verhalten sich bei LR(0) und LR(1) unterschiedlich 13
14 Einleitung Ein LR(0)-Item einer Grammatik G ist eine Produktion P, die an einer Stelle der rechten Seite einen Punkt enthält Es stellt den Zustand während eines Parsevorganges dar. Symbole links vom Punkt sind bereits auf dem Stack, Symbole rechts vom Punkt sind noch nicht eingelesen Beispiel: A aa Aus dieser Produktion können folgende LR(0)-Items gebildet werden: A aa, A a A, A aa Spezialfall: A ε = A 14
15 Einleitung A aa Gesamte rechte Seite liegt auf dem Stack. Reduce- Schritt mittels dieser Regel. A aa Rechts von Punkt befindet sich dasterminal. Parser prüft, ob es sich beim nächsten Zeichen der Eingabe um dieses Symbol handelt. Ja: Shift und Zustandswechsel. Nein: Error. A a A Rechts von Punkt Nichtterminal. Parser Eingabezeichen zum Nichtterminal reduzieren können. 15
16 Einleitung Grundlegende Idee bzw. prinzipieller Ablauf: Konstruktion eines DEA aus einer Grammatik, der in eine Parsetabelle umgewandelt wird S AB A a B bb 16
17 Einleitung Parsetabelle Spalten: Action Tabelle: alle Terminalsymbole & $-Zeichen Goto-Tabelle: alle Nichtterminalsymbole Zeilen: Zustände des Automaten Shift (s) Reduce (r) Accept (acc) Leere Felder (error) $ (Ende der Eingabe) 17
18 LR(0) Parser 18
19 LR(0) Parser Prinzipieller Ablauf eines LR-Parsers: Konstruktion eines endlichen Automaten Konstruktion einer Parsetabelle Parsing 19
20 LR(0) Parser Konstruktion eines endlichen Automaten Konstruktion eines Automaten Dafür benötigen wir: CLOSURE GOTO 20
21 LR(0) Parser Konstruktion eines endlichen Automaten CLOSURE (Hülle) Bildung von CLOSURE(I) : 1. Füge I zu CLOSURE(I) hinzu 2. Gibt es ein LR(0)-Item A α Bβ aus CLOSURE(I) und eine Produktion B γ, so füge B γ zu CLOSURE(I) hinzu 21
22 LR(0) Parser Konstruktion eines endlichen Automaten CLOSURE (Hülle) Berechnung der Hülle von S A Beispielgrammatik: S A A aa A b 1. Füge I zu CLOSURE(I) hinzu S A 2. Gibt es ein LR(0)-Item A α Bβ aus CLOSURE(I) und eine Produktion B γ, so füge B γ zu CLOSURE(I) hinzu A aa, A b 22
23 LR(0) Parser Konstruktion eines endlichen Automaten Beispielgrammatik: GOTO S A A aa Formal: A b GOTO(I, X) = CLOSURE({[A αx β] [A α Xβ] є I }) Beispielitem: A aa GOTO (A aa) = {[A a A], [A aa], [A b]} 23
24 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b 24
25 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b S A A aa A b 0 24
26 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b S A A aa A b 0 A S A 1 24
27 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b S A A aa A b 0 A a S A A a A A aa A b
28 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b S A A aa A b 0 A a S A A a A A aa A b 1 2 A A aa 3 24
29 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b S A A aa A b 0 A a S A A a A A aa A b 1 2 A A aa 3 a 24
30 LR(0) Parser Konstruktion eines endlichen Automaten S A A aa A b S A A aa A b b 0 b A a S A A a A A aa A b 1 2 A A aa 3 A b 4 a 24
31 LR(0) Parser Konstruktion einer Parsetabelle Wir erinnern uns ACTION GOTO a b $ A S 25
32 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 26
33 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s
34 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s
35 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc
36 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc
37 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s
38 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s
39 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 26
40 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 26
41 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 26
42 LR(0) Parser Konstruktion einer Parsetabelle S A A aa A b ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 26
43 LR(0) Parser Konstruktion einer Parsetabelle - Konflikte Reduce/Reduce Konflikt ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2/r3 r2/r3 r2/r3 4 r3 r3 r3 27
44 LR(0) Parser Konstruktion einer Parsetabelle - Konflikte Shift/Reduce Konflikt ACTION GOTO a b $ A S 0 s2 s4 1 1 acc 2 s2/r2 s4 3 3 r2 r2 r2 4 r3 r3 r3 28
45 LR(0) Parser Konstruktion einer Parsetabelle - Konflikte Reduce/Reduce Konflikt Shift/Reduce Konflikt Grammatik führt zu einem NDEA! Grammatik ist nicht LR(0)! 29
46 LR(0) Parser Parsingvorgang LR(0)-Parsing mit Eingabe aab Dafür benötigen wir: Tabelle aus Stack (Γ), Resteingabe und Aktion Parsetabelle Grammatik 30
47 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 Γ Resteingabe Aktion 31
48 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 Γ Resteingabe Aktion 0 aab$ 31
49 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 Γ Resteingabe Aktion aab$ ab$ 31
50 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 Γ Resteingabe Aktion aab$ ab$ b$ 31
51 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 Γ Resteingabe Aktion aab$ ab$ b$ $ 31
52 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2 Γ Resteingabe Aktion aab$ ab$ b$ $ $ reduce 3 A b 31
53 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A Γ Resteingabe Aktion aab$ ab$ b$ $ $ reduce 3 A b 31
54 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 Γ Resteingabe Aktion aab$ ab$ b$ $ $ reduce 3 A b 31
55 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ reduce 3 A b reduce 2 A aa 31
56 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ reduce 3 A b reduce 2 A aa 31
57 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ reduce 3 A b reduce 2 A aa 31
58 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 0 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ $ reduce 3 A b reduce 2 A aa reduce 2 A aa 31
59 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 0A Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ $ reduce 3 A b reduce 2 A aa reduce 2 A aa 31
60 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 0A1 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ $ reduce 3 A b reduce 2 A aa reduce 2 A aa 31
61 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 0A1 0A1 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ $ $ reduce 3 A b reduce 2 A aa reduce 2 A aa accept 31
62 Eingabe aab S A A aa A b a b $ A S 0 s2 s4 1 1 acc 2 s2 s4 3 3 r2 r2 r2 4 r3 r3 r3 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 0A1 0A1 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ $ $ reduce 3 A b reduce 2 A aa reduce 2 A aa accept 31
63 LR(0) Parser Parsebaum LR(0)-Parsebaum mit Eingabe aab Dafür benötigen wir: Parsetabelle 32
64 LR(0) Parser Parsebaum LR(0)-Parsebaum mit Eingabe aab 0 0a2 0a2a2 0a2a2b4 0a2a2A3 0a2A3 0A1 0A1 Γ Resteingabe Aktion aab$ ab$ b$ $ $ $ $ $ reduce 3 A b reduce 2 A aa reduce 2 A aa accept 33
65 LR(0) Parser Parsebaum LR(0)-Parsebaum mit Eingabe aab Aktion A a a b reduce 3 A b reduce 2 A aa reduce 2 A aa accept 34
66 LR(0) Parser Parsebaum LR(0)-Parsebaum mit Eingabe aab Aktion A A a a b reduce 3 A b reduce 2 A aa reduce 2 A aa accept 34
67 LR(0) Parser Parsebaum LR(0)-Parsebaum mit Eingabe aab A A A a a b Aktion reduce 3 A b reduce 2 A aa reduce 2 A aa accept 34
68 LR(1) Parser 35
69 LR(1) Parser Einleitung Das mächtigste aller (deterministischen) LR-Verfahren Die 1 steht für den Lookahead drückt aus, LR(1) Parser besitzt bessere Vorausschauinformationen Lookahead: gibt an welche Terminalsymbole dem NT auf der linken Seite der Regel (nach Entstehung durch Reduktion entsprechend dieser Regel) folgen können = FIRST-Menge 36
70 LR(1) Parser Einleitung Erweiterung von Grundkonstruktionen LR(0) Items LR(1) Items CLOSURE GOTO (GOTO + CLOSURE) Ein LR(1) Items ist ein Paar bestehend aus einem LR(0) Items und einer LOOKAHEAD Menge (auch Vorausschaumenge) 37
71 LR(1) Parser Einleitung Ein Beispiel für ein LR(1) Item aus Grammatik G ist: Z S,{$} Ein LR(1)-Automat unterscheidet sich dadurch von einem LR(0)-Zustandsübergangsgraphen, dass er statt aus LR(0)- aus LR(1)-Items aufgebaut ist 38
72 LR(1) Parser Der Hüllenoperator CLOSURE Gibt es ein LR(0) Item A B, aus CLOSURE(I) und eine Produktion B, so füge B zu CLOSURE(I) hinzu Gibt es ein LR(1) Item A B, L in CLOSURE(I) und eine Produktion B, so füge auch B, FIRST ( L) zu CLOSURE(I) hinzu CLOSURE ist bis auf das Kopieren der LOOKAHEAD Menge identisch 39
73 LR(1) Parser Der Hüllenoperator CLOSURE (Beispiel) Z S,{$} 40
74 LR(1) Parser Der Hüllenoperator CLOSURE (Beispiel) Z S,{$} Damit sieht unsere Hülle jetzt so aus: Z S,{$} S Sb, {$} S baa, {$} 41
75 LR(1) Parser Der Hüllenoperator CLOSURE (Beispiel) Z S,{$} Damit sieht unsere Hülle jetzt so aus: Z S,{$} S Sb, {$} S baa, {$} S Sb, {b} S baa, {b} 42
76 LR(1) Parser Der Hüllenoperator CLOSURE (Beispiel) Z S,{$} Damit sieht unsere Hülle jetzt so aus: Z S,{$} Z S,{$} S Sb, {$} S Sb, {$,b} S baa, {$} S baa, {$,b} S Sb, {b} S baa, {b} 43
77 LR(1) Parser Die Springoperation GOTO Im Gegensatz zur Hüllenoperation ist die Erweiterung minimal GOTO ist bis auf das Kopieren der LOOKAHEAD Menge identisch 44
78 LR(1) Parser Die Springoperation GOTO GOTO (I,X) = CLOSURE ({[ A X A X ] e I}) GOTO =CLOSURE ({[Z S], [S Sb], [S baa]},b) = S b Aa, A asc, A a, A asb GOTO (I,X) = CLOSURE ({[ A X, L A X, L] e I}) 78
79 LR(1) Parser Die Springoperation GOTO GOTO (I,X) = CLOSURE ({[ A X A X ] e I}) GOTO =CLOSURE ({[Z S], [S Sb], [S baa]},b) = S b Aa, A asc, A a, A asb GOTO (I,X) = CLOSURE ({[ A X, L A X, L] e I}) GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$,b}], [S baa, {$,b}]},b) 79
80 LR(1) Parser Die Springoperation GOTO GOTO (I,X) = CLOSURE ({[ A X A X ] e I}) GOTO =CLOSURE ({[Z S], [S Sb], [S baa]},b) = S b Aa, A asc, A a, A asb GOTO (I,X) = CLOSURE ({[ A X, L A X, L] e I}) GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$,b}], [S baa, {$,b}]},b) = S b Aa, {$,b}, A asc{a}, A a{a}, A asb{a} 80
81 LR(1) Parser Der Automat Verfahren funktioniert analog zum LR(0)-Verfahren 48
82 LR(1) Parser Der Automat GOTO (I,X) = CLOSURE ({[ A X, L A X, L] e I}) GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$,b}], [S baa, {$,b}]},b) = S b Aa, {$,b}, A asc{a}, A a{a}, A asb{a} Z S, {$} S Sb, {$,b} S baa, {$,b} 49
83 LR(1) Parser Der Automat GOTO (I,X) = CLOSURE ({[ A X, L A X, L] e I}) GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$,b}], [S baa, {$,b}]},b) = S b Aa, {$,b}, A asc{a}, A a{a}, A asb{a} Z S, {$} S Sb, {$,b} S baa, {$,b} b 50
84 LR(1) Parser Der Automat GOTO (I,X) = CLOSURE ({[ A X, L A X, L] e I}) GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$,b}], [S baa, {$,b}]},b) = S b Aa, {$,b}, A asc{a}, A a{a}, A asb{a} Z S, {$} S Sb, {$,b} S baa, {$,b} b S b Aa, {$,b} A asc{a} A a{a} A asb{a} 51
85 LR(1) Parser Der Automat GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$}], [S baa, {$}]},S) Z S, {$} S Sb, {$,b} S baa, {$,b} 52
86 LR(1) Parser Der Automat GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$}], [S baa, {$}]},S) Z S, {$} S Sb, {$,b} S baa, {$,b} S 53
87 LR(1) Parser Der Automat GOTO =CLOSURE ({[Z S, {$}], [S Sb, {$}], [S baa, {$}]},S) = Z S, {$}, S S b, {$} Z S, {$} S Sb, {$,b} S baa, {$,b} S Z S, {$} S S b, {$,b} 54
88 Z S, {$} S Sb, {$,b} S baa, {$,b} 0 S Z S, {$} S S b, {$,b} 1 b S Sb, {$,b} 2 b S b Aa, {$,b} A asc, {a} A a, {a} A asb, {a} 3 A S ba a, {$,b} 4 a S baa, {$,b} 5 a A a Sc, {a} A a,{a} A a Sb,{a} S Sb, {b,c} S baa, {b,c} 6 b S b Aa {b,c} A asc, {a} A a, {a} A asc, {a} 10 S a A A as c, {a} A as b {a} S S b, {b,c} 7 S ba a, {b,c} 11 b a A asc, {a} c 8 A asb, {a} S Sb, {b,c} 9 S baa, {b,c} 12
89 LR(1) Parser Aufstellen der Parsetabelle Die Tabelle wird bis auf die Reduktionsoperationen genauso aufgebaut Reduktionsregel werden ebenfalls in die Spalten der Terminalsymbole eingetragen, die in der LOOKAHEAD- Menge der entsprechenden Regel enthalten sind Wir brauchen die Regeln der Grammatik und den Automaten 56
90 Z S, {$} S Sb, {$,b} S baa, {$,b} 0 S Z S, {$} S S b, {$,b} 1 b S Sb, {$,b} 2 b S b Aa, {$,b} A asc, {a} A a, {a} A asb, {a} 3 A S ba a, {$,b} 4 a S baa, {$,b} 5 a A a Sc, {a} A a,{a} A a Sb,{a} S Sb, {b,c} S baa, {b,c} 6 b S b Aa {b,c} A asc, {a} A a, {a} A asc, {a} 10 S a A A as c, {a} A as b {a} S S b, {b,c} 7 S ba a, {b,c} 11 b a A asc, {a} c 8 A asb, {a} S Sb, {b,c} 9 S baa, {b,c} 12
91 ACTION GOTO a b c $ A S Z 0 s3 1 1 s2 acc 2 r2 r2 3 s6 4 4 s5 5 r3 r3 6 r5 s s9 s8 8 r4 9 r6 r2 r2 10 s s12 12 r3 r3
92 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 59
93 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 0 baa$ 3 59
94 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 0 baa$ 3 0b3 aa$ 6 59
95 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 59
96 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 0b3A4 a$ Shift 5 59
97 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 0b3A4 a$ Shift 5 0b3A4a5 $ Reduce 3, S baa 59
98 LR(1) Parser Eingabe baa Wird die Eingabe baa von der Grammatik akzeptiert Γ Resteingabe Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 0b3A4 a$ Shift 5 0b3A4a5 $ Reduce 3, S baa 0S1 $ accept 59
99 Γ Resteinga be Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 0b3A4 a$ Shift 5 0b3A4a 5 $ Reduce 3, S baa 0S1 $ accept b a a 60
100 Γ Resteinga be Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 0b3A4 a$ Shift 5 0b3A4a 5 $ Reduce 3, S baa 0S1 $ accept A b a a 60
101 Γ Resteinga be Aktion 0 baa$ 3 0b3 aa$ 6 0b3a6 a$ Reduce 5, A a 0b3A4 a$ Shift 5 0b3A4a 5 $ Reduce 3, S baa 0S1 $ accept S A b a a 60
102 Fazit Vorteil praktisch alle Programmiersprachenkonstrukte erkennen und Syntaxfehler frühestmöglich beim ersten inkorrekten Terminalsymbol entdecken Lookahead kann theoretisch beliebig groß sein, da zu jedem Zeitpunkt die Verarbeitung stattfinden kann Nachteil Aufwendig zu konstruieren beim LR(1)-Parser wird die Tabelle schnell sehr groß für den LR(0)-Parser gibt es kaum Grammatiken, die anwendbar sind 61
103 Literatur Berlin, F. (2012). Syntaktische Analsyse Bottom up. Aufgerufen am von Grune, D., Jacobs, C. (2008). Parsing Techniques A Practical Guide. Springer Science+Business Media, LLC. Kunert, A. (2008). LR(k)-Analyse für Pragmatiker. Aufgerufen am von 62
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
MehrKonstruieren 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)
MehrEinfü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
MehrShift 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.
MehrCompilerbau 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
MehrLL(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,
MehrBottom-Up Analyse. im Einzelnen
Bottom-Up Analyse im Einzelnen ... mit Backtracking Wir können den Kellerautomaten zum Satz L(KFG)->L (N1KA) erweitern: Wir nummerieren die Produktionen. ... mit Backtracking Der Automat nimmt dann immer
Mehr5. 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,
MehrShift 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.
MehrBottom-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:
MehrIdee: 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
MehrLR-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
MehrKlausur 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
MehrKellerautomat (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
MehrLR(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
MehrDeterministische 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:
MehrEinfü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
MehrKapitel 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
MehrAutomatentheorie 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
MehrKurz-Skript zur Theoretischen Informatik I
Kurz-Skript zur Theoretischen Informatik I Inhaltsverzeichnis 1 Grundlagen 2 2 Reguläre Ausdrücke 4 3 Endliche Automaten 5 3.1 Vollständige endliche Automaten................................... 6 3.2 ε
MehrImplementierung 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
MehrAnwendung von Kontextfreien Grammatiken
Anwendung von Kontextfreien Grammatiken Kontextfreie Grammatiken Eine kontextfreie Grammatik (kfg) ist formal definiert als ein 4-Tupel. G = (N, T, P, S) Wobei: N: Nichtterminalsymbol / Variable T: Terminalsymbol
MehrÜ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
MehrDefinition 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.
MehrCompilerbau. 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 11.1 4.6.4 LR(1) - Syntaxanalyse Motivation für
MehrTheoretische 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
Mehr2. 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
Mehr1 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
Mehr10 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
MehrFormale 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
MehrEarley 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
Mehr2. 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
MehrAlphabet, 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
MehrGrundlagen 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:
MehrAbschnitt 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
MehrMODIFIKATIONEN DES TOMITA-PARSERS FÜR ID/LP UND FEATURE GRAMMARS Jens Woch
Fachbeiträge MODIFIKATIONEN DES TOMITA-PARSERS FÜR ID/LP UND FEATURE GRAMMARS Jens Woch Abstract: Die Verwendung von ID/LP-Grammatiken und komplexen Symbolen ist bei Flektionsreichen und in der Wortstellung
Mehr5. 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,
MehrAutomaten 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
MehrKapitel: 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
MehrLR(k)-Analyse für Pragmatiker
LR(k)-Analyse für Pragmatiker Andreas Kunert Version 2.218 (16. Juni 2017) Humboldt-Universität zu Berlin Institut für Informatik / ZE Rechenzentrum (CMS) ii Version: 2.218 (16. Juni 2017) INHALTSVERZEICHNIS
MehrLR(k)-Analyse für Pragmatiker
LR(k)-Analyse für Pragmatiker Andreas Kunert Version 2.212 (18. Mai 2015) Humboldt-Universität zu Berlin Institut für Informatik / ZE Rechenzentrum (CMS) ii Version: 2.212 (18. Mai 2015) INHALTSVERZEICHNIS
MehrProseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.
Proseminar TI: Kellerautomaten Vortrag: 10.11.2015 Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer. 1 Motivation Wir kennen bereits die Chomsky-Hierarchie. Sie klassiziert formale
MehrFachseminar 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,
MehrTheorie 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
MehrSyntaxanalyse 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
MehrDie 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Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 7 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 22. Januar 2019 Abgabe 5. Februar 2019, 11:00 Uhr (im
MehrKontextfreie 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
MehrKontextfreie Sprachen
Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung
MehrDisMod-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
MehrDeterministischer 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,δ,
MehrTheoretische 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
MehrAlgorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p];
Algorithmus: 2 N result = ; // Ergebnis-Menge int count[p]; // Zähler für jede Regel 2 P rhs[n]; // VorkommeninrechtenSeiten forall (A N) rhs[a] = ; // Initialisierung forall ((A,i) P) { // count[(a,i)]
MehrSyntaktische 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
MehrTheoretische 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
MehrTheoretische Informatik I
Theoretische Informatik I Einheit 2.5 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibung des Aufbaus von Sprachen Mathematische Mengennotation Beschreibung durch Eigenschaften
Mehr4.2.4 Reguläre Grammatiken
4.2.4 Reguläre Grammatiken Eine reguläre Grammatik ist eine kontextfreie Grammatik, deren Produktionsregeln weiter eingeschränkt sind Linksreguläre Grammatik: A w P gilt: w = ε oder w = Ba mit a T und
MehrInformatik IC2. Balazs Simon
Informatik IC2 Balazs Simon Inhaltsverzeichnis 1 Contextfreie Sprachen 3 1.1 Ableitungsbaum..................................... 3 1.2 Schönheit........................................ 4 1.3 Normalformen......................................
MehrVon 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(KFG und) Kellerautomaten
(KFG und) Kellerautomaten (KFG und...) Auch für die Sprachen, die durch kontextfreie Grammatiken beschrieben werden, gibt es Automaten, die genau diese Sprachklasse akzeptieren. Das sind Automaten mit
Mehr(Prüfungs-)Aufgaben zu formale Sprachen
(Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),
MehrEarley 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
MehrKontextfreie Grammatiken
Kontextfreie Grammatiken Vorlesung Computerlinguistische Techniken Alexander Koller 16. Oktober 2015 Übersicht Worum geht es in dieser Vorlesung? Übungen und Abschlussprojekt Kontextfreie Grammatiken Computerlinguistische
MehrAutomaten 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
MehrLL(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)
MehrFormale 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
MehrGrundlagen der Informatik II
Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Einschub: Kellerautomaten
MehrNachklausur 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
MehrProf. Dr. Wolfgang Schramm. Vorname:... Matrikel-Nr.:... Unterschrift:...
Compilerbau Prof. Dr. Wolfgang Schramm Sommersemester 2006 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und Ihre Matrikelnummer zu Beginn auf das Deckblatt
MehrKontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen
MehrGrundlagen 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:
MehrVU 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)
MehrWS07/08 Automaten und Formale Sprachen 14. Vorlesung
WS07/08 Automaten und Formale Sprachen 14. Vorlesung Martin Dietzfelbinger 29. Januar 2008 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 29.01.2008 Klausur: Mittwoch, 5. März 2008 17:00 Uhr,
Mehr8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
MehrGrundlagen 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:
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2011 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Wir beschäftigen uns ab
MehrAlgorithmen 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
MehrSprachanalyse. 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
MehrKontextfreie 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
MehrGrammatik 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Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im
MehrTheoretische 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
Mehr2.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
MehrDas Halteproblem für Turingmaschinen
Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.
MehrÜbung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen
Prof. Dr. Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4: Informatik Dennis Peuter 01. Juni 2017 Übung zur Vorlesung Grundlagen der theoretischen Informatik Aufgabenblatt 7 Lösungen
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Übung am 4.2.2011 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrSoftwareparadigmen 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.,
MehrFinite-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
MehrVorname:... Matrikel-Nr.:... Unterschrift:...
Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Diplom (RGS 9) Compilerbau Sommersemester 2005 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise:
MehrAutomaten und Formale Sprachen 14. Vorlesung
Automaten und Formale Sprachen 14. Vorlesung Martin Dietzfelbinger 24. Januar 2006 Bis 31. Januar 2006: Folien studieren. Details und Beispiele im Skript, Seiten 174 196. Definitionen lernen, Beispiele
MehrFormale 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
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 7 15. Juni 2010 Einführung in die Theoretische
Mehrkontextfreie 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
Mehr2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018
2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie
MehrAkzeptierende Turing-Maschine
Akzeptierende Turing-Maschine Definition: Eine akzeptierende Turing-Maschine M ist ein Sechstupel M = (X, Z, z 0, Q, δ, F ), wobei (X, Z, z 0, Q, δ) eine Turing-Maschine ist und F Q gilt. Die von M akzeptierte
MehrBeweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann
Automaten und Formale prachen alias Theoretische Informatik ommersemester 2011 Dr. ander Bruggink Übungsleitung: Jan tückrath Wir beschäftigen uns ab jetzt einige Wochen mit kontextfreien prachen: Kontextfreie
Mehr