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

Größe: px
Ab Seite anzeigen:

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

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

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

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

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

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

Bottom-Up Analyse. im Einzelnen

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

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

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

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

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

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

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

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

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

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

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

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

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

Kurz-Skript zur Theoretischen Informatik I

Kurz-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 ε

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

Anwendung von Kontextfreien Grammatiken

Anwendung 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

Ü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

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

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 11.1 4.6.4 LR(1) - Syntaxanalyse Motivation für

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

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

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

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

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

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

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

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

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

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

MODIFIKATIONEN DES TOMITA-PARSERS FÜR ID/LP UND FEATURE GRAMMARS Jens Woch

MODIFIKATIONEN 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

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

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

LR(k)-Analyse für Pragmatiker

LR(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

Mehr

LR(k)-Analyse für Pragmatiker

LR(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

Mehr

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Proseminar 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

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

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

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

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

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

Ü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

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

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

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

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

Algorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p];

Algorithmus: // 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)]

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

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

Theoretische Informatik I

Theoretische 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

Mehr

4.2.4 Reguläre Grammatiken

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

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

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

(KFG und) Kellerautomaten

(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 (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),

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

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Vorlesung Computerlinguistische Techniken Alexander Koller 16. Oktober 2015 Übersicht Worum geht es in dieser Vorlesung? Übungen und Abschlussprojekt Kontextfreie Grammatiken Computerlinguistische

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

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

Grundlagen der Informatik II

Grundlagen 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

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Automaten 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

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

Prof. Dr. Wolfgang Schramm. Vorname:... Matrikel-Nr.:... Unterschrift:...

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

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kontextfreie 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

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

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

WS07/08 Automaten und Formale Sprachen 14. Vorlesung

WS07/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,

Mehr

8. Turingmaschinen und kontextsensitive Sprachen

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

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

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Automaten 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

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

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

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

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

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

Ü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

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

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

Das Halteproblem für Turingmaschinen

Das 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

Ü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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

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

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

Vorname:... Matrikel-Nr.:... Unterschrift:...

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

Mehr

Automaten und Formale Sprachen 14. Vorlesung

Automaten 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

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

Einführung in die Theoretische Informatik

Einfü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

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. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

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

Mehr

Akzeptierende Turing-Maschine

Akzeptierende 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

Mehr

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

Beweisidee: 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