TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK. Compilerbau I. Dr. Michael Petter, Dr. Axel Simon. SoSe / 160

Größe: px
Ab Seite anzeigen:

Download "TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK. Compilerbau I. Dr. Michael Petter, Dr. Axel Simon. SoSe / 160"

Transkript

1 TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Compilerbu I Dr. Michel Petter, Dr. Axel Simon SoSe / 160

2 Orgnistorisches Mster oder Bchelor b 6. Semester mit 5 ECTS Vorussetzungen Informtik 1 & 2 Theoretische Informtik Technische Informtik Grundlegende Algorithmen Aufbuende Vorlesungen Virtuelle Mschinen Progrmmoptimierung Progrmmiersprchen Prktikum Compilerbu Huptseminre Mteril: Aufzeichnung der Vorlesungen über TTT die Folien selbst Literturliste online ( Bibliothek) Tools zur Visulisierung der Virtuellen Mschinen Tools, um Komponenten eines Compilers zu generieren 2 / 160

3 Orgnistorisches Zeiten: Vorlesung: Mi. 14:15-15:45 Uhr Übung: wird per Onlinebstimmung geklärt Abschlussprüfung Klusur, Termin über TUM-online Erfolgreiches Lösen der Aufgben wird ls Bonus von 0.3 ngerechnet. 3 / 160

4 Vorläufiger Inhlt Grundlgen Reguläre Ausdrücke und Automten Von der Spezifizierung mit mehreren Regulären Ausdrücken zur Implementtion mit Automten Reduzierte kontextfreie Grmmtiken und Kellerutomten Bottom-Up Syntxnlyse Attributsysteme Typüberprüfung Codegenerierung für Stckmschinen Registerverteilung Einfche Optimierung 4 / 160

5 Themengebiet: Einführung 5 / 160

6 Interpreter Progrmm Eingbe Interpreter Ausgbe Vorteil: Keine Vorberechnung uf dem Progrmmtext erforderlich keine/geringe Strtup-Zeit Nchteil: Während der Ausführung werden die Progrmm-Bestndteile immer wieder nlysiert längere Lufzeit 6 / 160

7 Prinzip eines Übersetzers: Progrmm Übersetzer Code Code Eingbe Mschine Ausgbe Zwei Phsen: 1 Übersetzung des Progrmm-Texts in ein Mschinen-Progrmm; 2 Ausführung des Mschinen-Progrmms uf der Eingbe. 7 / 160

8 Übersetzer Eine Vorberechnung uf dem Progrmm gestttet u.. eine geschickte(re) Verwltung der Vriblen; Erkennung und Umsetzung globler Optimierungsmöglichkeiten. Nchteil Die Übersetzung selbst duert einige Zeit Vorteil Die Ausführung des Progrmme wird effizienter lohnt sich bei ufwendigen Progrmmen und solchen, die mehrmls lufen. 8 / 160

9 Übersetzer llgemeiner Aufbu eines Übersetzers: Progrmmtext Compiler Anlyse Interndrstellung Synthese Compiler Code 9 / 160

10 Übersetzer llgemeiner Aufbu eines Übersetzers: Progrmmtext Compiler Anlyse Interndrstellung Synthese Compiler Code 9 / 160

11 Übersetzer Die Anlyse-Phse ist selbst unterteilt in mehrere Schritte Progrmmtext Anlyse (nnotierter) Syntxbum 9 / 160

12 Übersetzer Die Anlyse-Phse ist selbst unterteilt in mehrere Schritte Progrmmtext Anlyse Scnner Token-Strom lexiklische Anlyse: Aufteilung in Sinneinheiten (nnotierter) Syntxbum 9 / 160

13 Übersetzer Die Anlyse-Phse ist selbst unterteilt in mehrere Schritte Progrmmtext Anlyse Scnner Token-Strom Prser Syntxbum lexiklische Anlyse: Aufteilung in Sinneinheiten syntktische Anlyse: Erkennen der hierrchischen Struktur (nnotierter) Syntxbum 9 / 160

14 Übersetzer Die Anlyse-Phse ist selbst unterteilt in mehrere Schritte Progrmmtext Anlyse Scnner Token-Strom Prser Syntxbum Type Checker... lexiklische Anlyse: Aufteilung in Sinneinheiten syntktische Anlyse: Erkennen der hierrchischen Struktur semntische Anlyse: Überprüfung/Ermittlung semntischer Eigenschften (nnotierter) Syntxbum 9 / 160

15 Themengebiet: Lexiklische Anlyse 10 / 160

16 Die lexiklische Anlyse Progrmmtext Scnner Token-Strom 11 / 160

17 Die lexiklische Anlyse xyz + 42 Scnner xyz / 160

18 Die lexiklische Anlyse xyz + 42 Scnner xyz + 42 Ein Token ist eine Folge von Zeichen, die zusmmen eine Einheit bilden. Tokens werden in Klssen zusmmen gefsst. Zum Beispiel: Nmen (Identifier) wie xyz, pi,... Konstnten wie 42, 3.14, bc,... Opertoren wie +,... reservierte Worte wie if, int, / 160

19 Die lexiklische Anlyse I O C xyz + 42 Scnner xyz + 42 Ein Token ist eine Folge von Zeichen, die zusmmen eine Einheit bilden. Tokens werden in Klssen zusmmen gefsst. Zum Beispiel: Nmen (Identifier) wie xyz, pi,... Konstnten wie 42, 3.14, bc,... Opertoren wie +,... reservierte Worte wie if, int, / 160

20 Die lexiklische Anlyse Sind Tokens erst einml klssifiziert, knn mn die Teilwörter vorverrbeiten: Wegwerfen irrelevnter Teile wie Leerzeichen, Kommentre,... Aussondern von Prgms, d.h. Direktiven n den Compiler, die nicht Teil des Progrmms sind, wie include-anweisungen; Ersetzen der Token bestimmter Klssen durch ihre Bedeutung / Interndrstellung, etw bei: Konstnten; Nmen: die typischerweise zentrl in einer Symbol-Tbelle verwltet, evt. mit reservierten Worten verglichen (soweit nicht vom Scnner bereits vorgenommen) und gegebenenflls durch einen Index ersetzt werden. Sieber 12 / 160

21 Die lexiklische Anlyse Diskussion: Scnner und Sieber werden i.. in einer Komponente zusmmen gefsst, indem mn dem Scnner nch Erkennen eines Tokens gestttet, eine Aktion uszuführen Scnner werden i.. nicht von Hnd progrmmiert, sondern us einer Spezifiktion generiert: Spezifiktion Genertor Scnner 13 / 160

22 Die lexiklische Anlyse - Generierung: Vorteile Produktivität Die Komponente lässt sich schneller herstellen Korrektheit Die Komponente relisiert (beweisbr) die Spezifiktion. Effizienz Der Genertor knn die erzeugte Progrmmkomponente mit den effizientesten Algorithmen ussttten. 14 / 160

23 Die lexiklische Anlyse - Generierung: Vorteile Produktivität Die Komponente lässt sich schneller herstellen Korrektheit Die Komponente relisiert (beweisbr) die Spezifiktion. Effizienz Der Genertor knn die erzeugte Progrmmkomponente mit den effizientesten Algorithmen ussttten. Einschränkungen Spezifizieren ist uch Progrmmieren nur eventuell einfcher Generieren sttt Implementiere lohnt sich nur für Routine-Aufgben... und ist nur für Probleme möglich, die sehr gut verstnden sind 14 / 160

24 Die lexiklische Anlyse - Generierung:... in unserem Fll: Spezifiktion Genertor Scnner 15 / 160

25 Die lexiklische Anlyse - Generierung:... in unserem Fll: 0 0 [1-9][0-9]* Genertor [1 9] [0 9] Spezifiktion von Token-Klssen: Reguläre Ausdrücke; Generierte Implementierung: Endliche Automten + X 15 / 160

26 Lexiklische Anlyse Kpitel 1: Grundlgen: Reguläre Ausdrücke 16 / 160

27 Reguläre Ausdrücke Grundlgen Progrmmtext benutzt ein endliches Alphbet Σ von Eingbe-Zeichen, z.b. ASCII Die Menge der Textbschnitte einer Token-Klsse ist i.. regulär. Reguläre Sprchen knn mn mithilfe regulärer Ausdrücke spezifizieren. 17 / 160

28 Reguläre Ausdrücke Grundlgen Progrmmtext benutzt ein endliches Alphbet Σ von Eingbe-Zeichen, z.b. ASCII Die Menge der Textbschnitte einer Token-Klsse ist i.. regulär. Reguläre Sprchen knn mn mithilfe regulärer Ausdrücke spezifizieren. Definition Reguläre Ausdrücke Die Menge E Σ der (nicht-leeren) regulären Ausdrücke ist die kleinste Menge E mit: ɛ E (ɛ neues Symbol nicht us Σ); E für lle Σ; (e 1 e 2 ), (e 1 e 2 ), e 1 E sofern e 1, e 2 E. Stephen Kleene 17 / 160

29 Reguläre Ausdrücke... im Beispiel: (( b ) ) ( b) (( b) ( b)) 18 / 160

30 Reguläre Ausdrücke... im Beispiel: (( b ) ) ( b) (( b) ( b)) Achtung: Wir unterscheiden zwischen Zeichen, 0, $,... und Met-Zeichen (,, ),... Um (hässliche) Klmmern zu spren, benutzen wir Opertor-Präzedenzen: und lssen weg > > 18 / 160

31 Reguläre Ausdrücke... im Beispiel: (( b ) ) ( b) (( b) ( b)) Achtung: Wir unterscheiden zwischen Zeichen, 0, $,... und Met-Zeichen (,, ),... Um (hässliche) Klmmern zu spren, benutzen wir Opertor-Präzedenzen: > > und lssen weg Rele Spezifiktions-Sprchen bieten zusätzliche Konstrukte: und verzichten uf ɛ e? (ɛ e) e + (e e ) 18 / 160

32 Reguläre Ausdrücke Spezifiktionen benötigen eine Semntik...im Beispiel: Spezifiktion Semntik bb {bb} b {, b} b {b n n 0} Für e E Σ definieren wir die spezifizierte Sprche [e] Σ induktiv durch: [ɛ] = {ɛ} [] = {} [e ] = ([[e]) [e 1 e 2 ] = [[e 1 ] [e 2 ] [e 1 e 2 ] = [[e 1 ] [e 2 ] 19 / 160

33 Bechte: Die Opertoren (_),, sind die entsprechenden Opertionen uf Wort-Mengen: (L) = {w 1... w k k 0, w i L} L 1 L 2 = {w 1 w 2 w 1 L 1, w 2 L 2 } 20 / 160

34 Bechte: Die Opertoren (_),, sind die entsprechenden Opertionen uf Wort-Mengen: (L) = {w 1... w k k 0, w i L} L 1 L 2 = {w 1 w 2 w 1 L 1, w 2 L 2 } Reguläre Ausdrücke stellen wir intern ls mrkierte geordnete Bäume dr: * (b ɛ). ɛ b Innere Knoten: Opertor-Anwendungen; Blätter: einzelne Zeichen oder ɛ. 20 / 160

35 Reguläre Ausdrücke Beispiel: Identifier in Jv: le = [-za-z_\$] di = [0-9] Id = {le} ({le} {di})* 21 / 160

36 Reguläre Ausdrücke Beispiel: Identifier in Jv: le = [-za-z_\$] di = [0-9] Id = {le} ({le} {di})* Flot = {di}* (\.{di} {di}\.) {di}*((e E)(\+ \-)?{di}+)? 21 / 160

37 Reguläre Ausdrücke Beispiel: Identifier in Jv: le = [-za-z_\$] di = [0-9] Id = {le} ({le} {di})* Flot = {di}* (\.{di} {di}\.) {di}*((e E)(\+ \-)?{di}+)? Bemerkungen: le und di sind Zeichenklssen. Definierte Nmen werden in {, } eingeschlossen. Zeichen werden von Met-Zeichen durch \ unterschieden. 21 / 160

38 Lexiklische Anlyse Kpitel 2: Grundlgen: Endliche Automten 22 / 160

39 Endliche Automten im Beispiel: ɛ ɛ b 23 / 160

40 Endliche Automten im Beispiel: ɛ b ɛ Knoten: Zustände; Knten: Übergänge; Beschriftungen: konsumierter Input 23 / 160

41 Endliche Automten Definition Ein nicht-deterministischer endlicher Automt (NFA) ist ein Tupel A = (Q, Σ, δ, I, F) wobei: Michel Rbin Dn Scott Q Σ I Q F Q δ eine endliche Menge von Zuständen; ein endliches Eingbe-Alphbet; die Menge der Anfngszustände; die Menge der Endzustände und die Menge der Übergänge (die Übergngs-Reltion) ist. 24 / 160

42 Endliche Automten Definition Ein nicht-deterministischer endlicher Automt (NFA) ist ein Tupel A = (Q, Σ, δ, I, F) wobei: Michel Rbin Dn Scott Q Σ I Q F Q δ eine endliche Menge von Zuständen; ein endliches Eingbe-Alphbet; die Menge der Anfngszustände; die Menge der Endzustände und die Menge der Übergänge (die Übergngs-Reltion) ist. Für NFAs gilt: Definition Ist δ : Q Σ Q eine Funktion und I = 1, heißt A deterministisch (DFA). 24 / 160

43 Endliche Automten Berechnungen sind Pfde im Grphen. kzeptierende Berechnungen führen von I nch F. Ein kzeptiertes Wort ist die Beschriftung eines kzeptierenden Pfdes... ɛ b ɛ 25 / 160

44 Endliche Automten Berechnungen sind Pfde im Grphen. kzeptierende Berechnungen führen von I nch F. Ein kzeptiertes Wort ist die Beschriftung eines kzeptierenden Pfdes... b ɛ ɛ 25 / 160

45 Endliche Automten Dzu definieren wir den trnsitiven Abschluss δ von δ ls kleinste Menge δ mit: (p, ɛ, p) δ und (p, xw, q) δ sofern (p, x, p 1 ) δ und (p 1, w, q) δ. δ beschreibt für je zwei Zustände, mit welchen Wörtern mn vom einen zum ndern kommt Die Menge ller kzeptierten Worte, d.h. die von A kzeptierte Sprche können wir kurz beschreiben ls: L(A) = {w Σ i I, f F : (i, w, f ) δ } 26 / 160

46 Lexiklische Anlyse Kpitel 3: Reguläre Ausdrücke in NFAs umwndeln 27 / 160

47 In linerer Zeit vom Regulären Ausdruck zum NFA e = ɛ ɛ ɛ ɛ e = e = b ɛ b ɛ e = b ɛ b ɛ e = ɛ ɛ ɛ Thompson s Algorithmus Produziert O(n) Zustände für Reguläre Ausdrücke der Länge n. Ken Thompson 28 / 160

48 Berry-Sethi Verfhren Berry-Sethi Algorithmus Produziert fix n + 1 Zustände ohne ɛ-übergänge Gerrd Berry Rvi Sethi und demonstriert Gleichungssysteme und Attributgrmmtiken Idee: Der Automt verfolgt (konzepionell mithilfe einer Mrke ), im Syntxbum des regulären Ausdrucks, wohin mn in e mit der Eingbe w gelngen knn. 29 / 160

49 Berry-Sethi Verfhren... im Beispiel:. ( b) ( b) *. b b 30 / 160

50 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

51 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

52 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

53 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

54 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

55 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

56 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

57 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

58 Berry-Sethi Verfhren... im Beispiel:. w = bb : *. b b 30 / 160

59 Berry-Sethi Verfhren Bechte: Gelesen wird nur n den Blättern. Die Nvigtion im Bum erfolgt ohne Lesen, d.h. mit ɛ-übergängen. Für eine formle Konstruktion müssen wir die Automtenzustände bezeichnen. Dzu benutzen wir (hier) einfch den Teilusdruck des Knotens im Syntxbum Leider gibt es eventuell mehrere gleiche Teilusdrücke == Wir numerieren die Blätter durch / 160

60 Berry-Sethi Verfhren... im Beispiel:. *. b b 32 / 160

61 Berry-Sethi Verfhren... im Beispiel:. *. 2 b 0 1 b / 160

62 Berry-Sethi Verfhren... im Beispiel:. * b b 32 / 160

63 Berry-Sethi Verfhren Die Konstruktion: Zustände: r, r r Knoten von e; Anfngszustnd: e; Endzustnd: e ; Übergngsreltion: Für Blätter r i x benötigen wir: ( r, x, r ). Die übrigen Übergänge sind: r Übergänge r 1 r 2 ( r, ɛ, r 1 ) ( r, ɛ, r 2 ) (r 1, ɛ, r ) (r 2, ɛ, r ) r 1 r 2 ( r, ɛ, r 1 ) (r 1, ɛ, r 2 ) (r 2, ɛ, r ) r r 1 r 1? Übergänge ( r, ɛ, r ) ( r, ɛ, r 1 ) (r 1, ɛ, r 1 ) (r 1, ɛ, r ) ( r, ɛ, r ) ( r, ɛ, r 1 ) (r 1, ɛ, r ) 33 / 160

64 Berry-Sethi Verfhren Diskussion: Die meisten Übergänge dienen dzu, im Ausdruck zu nvigieren Der Automt ist i.. nichtdeterministisch 34 / 160

65 Berry-Sethi Verfhren Diskussion: Die meisten Übergänge dienen dzu, im Ausdruck zu nvigieren Der Automt ist i.. nichtdeterministisch Strtegie: Vermeide die Generierung der ɛ-übergänge Benötigte Knoten-Eigenschften: empty knn der Teilusdruck r ɛ einlesen? first die Menge der Lesezustände unterhlb von r, die potentiell ls erste bei einem Abstieg erreicht werden. next die Menge der Lesezustände rechts von r, die potentiell beim Wiederufstieg von r erreicht werden. lst die Menge der Lesezustände unterhlb von r, die beim Abstieg potentiell ls letzte erreicht werden. Idee: Generiere diese Attribute für die Knoten über DFS! 34 / 160

66 Berry-Sethi Verfhren: 1. Schritt empty[r] = t gdw. ɛ [r ]... im Beispiel:. * b b 35 / 160

67 Berry-Sethi Verfhren: 1. Schritt empty[r] = t gdw. ɛ [r ]... im Beispiel:. * f 2 f f. f f b b 35 / 160

68 Berry-Sethi Verfhren: 1. Schritt empty[r] = t gdw. ɛ [r ]... im Beispiel:. * f f 2 f f. f f f b b 35 / 160

69 Berry-Sethi Verfhren: 1. Schritt empty[r] = t gdw. ɛ [r ]... im Beispiel:. t f *. f f 2 f f f f f b b 35 / 160

70 Berry-Sethi Verfhren: 1. Schritt empty[r] = t gdw. ɛ [r ]... im Beispiel: f f. t f *. f f 2 f f f f b b 35 / 160

71 Berry-Sethi Verfhren: 1. Schritt Implementierung: DFS post-order Trversierung Für Blätter r i x ist empty[r] = (x ɛ). Andernflls: empty[r 1 r 2 ] = empty[r 1 ] empty[r 2 ] empty[r 1 r 2 ] = empty[r 1 ] empty[r 2 ] empty[r1 ] = t empty[r 1?] = t 36 / 160

72 Berry-Sethi Verfhren: 2. Schritt Die Menge der ersten Lesezustände: Die Menge der Lesezustände, die von r us (d.h. beim Absteigen in den Teilbum r) mit ufeinnderfolgenden ɛ-trnsitionen erreicht werden können: first[r] = {i in r ( r, ɛ, i x ) δ, x ɛ}... im Beispiel: f. t f *. f f 2 f f f f f b b 37 / 160

73 Berry-Sethi Verfhren: 2. Schritt Die Menge der ersten Lesezustände: Die Menge der Lesezustände, die von r us (d.h. beim Absteigen in den Teilbum r) mit ufeinnderfolgenden ɛ-trnsitionen erreicht werden können: first[r] = {i in r ( r, ɛ, i x ) δ, x ɛ}... im Beispiel: 0 f 0 f. t f *. 2 f f f f f f b b 37 / 160

74 Berry-Sethi Verfhren: 2. Schritt Die Menge der ersten Lesezustände: Die Menge der Lesezustände, die von r us (d.h. beim Absteigen in den Teilbum r) mit ufeinnderfolgenden ɛ-trnsitionen erreicht werden können: first[r] = {i in r ( r, ɛ, i x ) δ, x ɛ}... im Beispiel: 0 f 0 01 f. t f * f f f f f f b b 37 / 160

75 Berry-Sethi Verfhren: 2. Schritt Die Menge der ersten Lesezustände: Die Menge der Lesezustände, die von r us (d.h. beim Absteigen in den Teilbum r) mit ufeinnderfolgenden ɛ-trnsitionen erreicht werden können: first[r] = {i in r ( r, ɛ, i x ) δ, x ɛ}... im Beispiel: 0 f 0 01 f t f * f f f f f f b b 37 / 160

76 Berry-Sethi Verfhren: 2. Schritt Die Menge der ersten Lesezustände: Die Menge der Lesezustände, die von r us (d.h. beim Absteigen in den Teilbum r) mit ufeinnderfolgenden ɛ-trnsitionen erreicht werden können: first[r] = {i in r ( r, ɛ, i x ) δ, x ɛ}... im Beispiel: 01 0 f f t f * f f f f f f b b 37 / 160

77 Berry-Sethi Verfhren: 2. Schritt Implementierung: DFS post-order Trversierung Für Blätter r i x ist first[r] = {i x ɛ}. Andernflls: first[r 1 r 2 ] = first[r { 1 ] first[r 2 ] first[r1 ] first[r first[r 1 r 2 ] = 2 ] flls empty[r 1 ] = t first[r 1 ] flls empty[r 1 ] = f first[r1 ] = first[r 1] first[r 1?] = first[r 1 ] 38 / 160

78 Berry-Sethi Verfhren: 3. Schritt Die Menge nächster Lesezustände: Die Menge der Lesezustände in einem Teilbum rechts neben r, die möglicherweise ls nächstes erreicht werden. next[r] = {i (r, ɛ, i x ) δ, x ɛ}... im Beispiel: 0 f t * f 012 f. 2 f f f f f f b b 39 / 160

79 Berry-Sethi Verfhren: 3. Schritt Die Menge nächster Lesezustände: Die Menge der Lesezustände in einem Teilbum rechts neben r, die möglicherweise ls nächstes erreicht werden. next[r] = {i (r, ɛ, i x ) δ, x ɛ}... im Beispiel: 0 f t * f 012 f. 2 f f f f f f b b 39 / 160

80 Berry-Sethi Verfhren: 3. Schritt Die Menge nächster Lesezustände: Die Menge der Lesezustände in einem Teilbum rechts neben r, die möglicherweise ls nächstes erreicht werden. next[r] = {i (r, ɛ, i x ) δ, x ɛ}... im Beispiel: 0 f t * f 012 f. 2 f f f f f f b b 39 / 160

81 Berry-Sethi Verfhren: 3. Schritt Die Menge nächster Lesezustände: Die Menge der Lesezustände in einem Teilbum rechts neben r, die möglicherweise ls nächstes erreicht werden. next[r] = {i (r, ɛ, i x ) δ, x ɛ}... im Beispiel: f t * f 012 f. 2 f f f f f f b b 39 / 160

82 Berry-Sethi Verfhren: 3. Schritt Die Menge nächster Lesezustände: Die Menge der Lesezustände in einem Teilbum rechts neben r, die möglicherweise ls nächstes erreicht werden. next[r] = {i (r, ɛ, i x ) δ, x ɛ}... im Beispiel: 012 f t f * f 3 4 f f f f f f b b 39 / 160

83 Berry-Sethi Verfhren: 3. Schritt Implementierung: DFS pre-order Trversierung Für die Wurzel hben wir: next[e] = Ansonsten mchen wir eine Fllunterscheidung über den Kontext: r Regeln r 1 r 2 next[r 1 ] = next[r] next[r 2 ] = next[r] { first[r2 ] next[r] flls empty[r r 1 r 2 next[r 1 ] = 2 ] = t first[r 2 ] flls empty[r 2 ] = f next[r 2 ] = next[r] r1 next[r 1 ] = first[r 1 ] next[r] r 1? next[r 1 ] = next[r] 40 / 160

84 Berry-Sethi Verfhren: 4. Schritt Die Menge letzter Lesezustände: Die Menge der Lesezustände, die möglicherweise ls letzte beim Wiederufstieg us dem Teilbum unter r erreicht werden: lst[r] = {i in r ( i x, ɛ, r ) δ, x ɛ}... im Beispiel: 012 f t f * f 3 4 f f f f f f b b 41 / 160

85 Berry-Sethi Verfhren: 4. Schritt Die Menge letzter Lesezustände: Die Menge der Lesezustände, die möglicherweise ls letzte beim Wiederufstieg us dem Teilbum unter r erreicht werden: lst[r] = {i in r ( i x, ɛ, r ) δ, x ɛ}... im Beispiel: 012 f t f * f 3 4 f f f f f f b b 41 / 160

86 Berry-Sethi Verfhren: 4. Schritt Die Menge letzter Lesezustände: Die Menge der Lesezustände, die möglicherweise ls letzte beim Wiederufstieg us dem Teilbum unter r erreicht werden: lst[r] = {i in r ( i x, ɛ, r ) δ, x ɛ}... im Beispiel: f t f * f f f f f f f b b 41 / 160

87 Berry-Sethi Verfhren: 4. Schritt Implementierung: DFS post-order Trversierung Für Blätter r i x ist lst[r] = {i x ɛ}. Andernflls: lst[r 1 r 2 ] = { lst[r 1 ] lst[r 2 ] lst[r1 ] lst[r lst[r 1 r 2 ] = 2 ] flls empty[r 2 ] = t lst[r 2 ] flls empty[r 2 ] = f lst[r1 ] = lst[r 1] lst[r 1?] = lst[r 1 ] 42 / 160

88 Berry-Sethi Verfhren: Integrtion Konstruktion: Erstelle Automt us Attributen des Syntxbums: Zustände: { e} {i i Bltt} Strtzustnd: e Endzustände: lst[e] flls empty[e] = f. { e} lst[e] sonst. Übergänge: ( e,, i ) flls i first[e] und i mit beschriftet ist. (i,, i ) flls i next[i] und i mit beschriftet ist. Den resultierenden Automten bezeichnen wir mit A e. 43 / 160

89 Berry-Sethi Verfhren... im Beispiel: b 0 b 1 2 b 3 4 b Bemerkung: Die Konstruktion heißt Berry-Sethi- oder uch Glushkov-Konstruktion. Sie wird in XML zur Definition von Content Models benutzt Ds Ergebnis ist vielleicht nicht, ws wir erwrtet hben / 160

90 Lexiklische Anlyse Kpitel 4: NFAs deterministisch mchen 45 / 160

91 Der erwrtete Automt:, b, b Bemerkung: in einen Zustnd eingehende Knten hben hier nicht unbedingt die gleiche Beschriftung Dfür ist die Berry-Sethi-Konstruktion direkter In Wirklichkeit benötigen wir ber deterministische Automten Teilmengen-Konstruktion 46 / 160

92 Teilmengenkonstruktion... im Beispiel: b 0 b 1 2 b 3 4 b 47 / 160

93 Teilmengenkonstruktion... im Beispiel: b 0 b 1 2 b 3 4 b / 160

94 Teilmengenkonstruktion... im Beispiel: b 0 b 1 2 b 3 4 b 02 b b 1 47 / 160

95 Teilmengenkonstruktion... im Beispiel: b 0 b 1 2 b 3 4 b b b 1 47 / 160

96 Teilmengenkonstruktion... im Beispiel: b 0 b 1 2 b 3 4 b b b 02 1 b b 023 b / 160

97 Teilmengenkonstruktion Stz: Zu jedem nichtdeterministischen Automten A = (Q, Σ, δ, I, F) knn ein deterministischer Automt P(A) konstruiert werden mit L(A) = L(P(A)) 48 / 160

98 Teilmengenkonstruktion Stz: Zu jedem nichtdeterministischen Automten A = (Q, Σ, δ, I, F) knn ein deterministischer Automt P(A) konstruiert werden mit L(A) = L(P(A)) Konstruktion: Zustände: Teilmengen von Q; Anfngszustnd: I; Endzustände: {Q Q Q F }; Übergngsfunktion: δ P (Q, ) = {q Q p Q : (p,, q) δ}. 48 / 160

99 Teilmengenkonstruktion Achtung: Leider gibt es exponentiell viele Teilmengen von Q Um nur nützliche Teilmengen zu betrchten, strten wir mit der Menge Q P = {I} und fügen weitere Zustände nur nch Bedrf hinzu... d.h., wenn sie von einem Zustnd in Q P us erreichbr sind Trotz dieser Optimierung knn der Ergebnisutomt riesig sein... ws ber in der Prxis (so gut wie) nie uftritt 49 / 160

100 Teilmengenkonstruktion Achtung: Leider gibt es exponentiell viele Teilmengen von Q Um nur nützliche Teilmengen zu betrchten, strten wir mit der Menge Q P = {I} und fügen weitere Zustände nur nch Bedrf hinzu... d.h., wenn sie von einem Zustnd in Q P us erreichbr sind Trotz dieser Optimierung knn der Ergebnisutomt riesig sein... ws ber in der Prxis (so gut wie) nie uftritt In Tools wie grep wird deshlb zu der DFA zu einem regulären Ausdruck nicht ufgebut! Stttdessen werden während der Abbrbeitung der Eingbe genu die Mengen konstruiert, die für die Eingbe notwendig sind / 160

101 Teilmengenkonstruktion... im Beispiel: b b b 0 b 1 2 b 3 4 b / 160

102 Teilmengenkonstruktion... im Beispiel: b b b 0 b 1 2 b 3 4 b / 160

103 Teilmengenkonstruktion... im Beispiel: b b b 0 b 1 2 b 3 4 b 02 b / 160

104 Teilmengenkonstruktion... im Beispiel: b b b 0 b 1 2 b 3 4 b 02 b / 160

105 Teilmengenkonstruktion... im Beispiel: b b b 0 b 1 2 b 3 4 b 02 b / 160

106 Bemerkungen: Bei einem Eingbewort der Länge n werden mximl O(n) Mengen konstruiert Ist eine Menge bzw. eine Knte des DFA einml konstruiert, heben wir sie in einer Hsh-Tbelle uf. Bevor wir einen neuen Übergng konstruieren, sehen wir erst nch, ob wir diesen nicht schon hben 51 / 160

107 Bemerkungen: Bei einem Eingbewort der Länge n werden mximl O(n) Mengen konstruiert Ist eine Menge bzw. eine Knte des DFA einml konstruiert, heben wir sie in einer Hsh-Tbelle uf. Bevor wir einen neuen Übergng konstruieren, sehen wir erst nch, ob wir diesen nicht schon hben Zusmmenfssend finden wir: Stz: Zu jedem regulären Ausdruck e knn ein deterministischer Automt A = P(A e ) konstruiert werden mit L(A) = [e] 51 / 160

108 Lexiklische Anlyse Kpitel 5: Design eines Scnners 52 / 160

109 Design eines Scnners Eingbe (vereinfcht): eine Menge von Regeln: e 1 { ction 1 } e 2 { ction 2 }... e k { ction k } 53 / 160

110 Design eines Scnners Eingbe (vereinfcht): eine Menge von Regeln: e 1 { ction 1 } e 2 { ction 2 }... e k { ction k } Ausgbe: ein Progrmm, ds... von der Eingbe ein mximles Präfix w liest, ds e 1... e k erfüllt;... ds minimle i ermittelt, so dss w [e i ];... für w ction i usführt. 53 / 160

111 Implementierung: Idee: Konstruiere den DFA P(A e ) = (Q, Σ, δ, {q 0 }, F) zu dem Ausdruck e = (e 1... e k ); Definiere die Mengen: F 1 = {q F q lst[e 1 ] } F 2 = {q (F\F 1 ) q lst[e 2 ] }... F k = {q (F\(F 1... F k 1 )) q lst[e k ] } Für Eingbe w gilt: δ (q 0, w) F i genu dnn wenn der Scnner für w ction i usführen soll 54 / 160

112 Implementierung: Idee (Fortsetzung): Der Scnner verwltet zwei Zeiger A, B und die zugehörigen Zustände q A, q B... Der Zeiger A merkt sich die letzte Position in der Eingbe, nch der ein Zustnd q A F erreicht wurde; Der Zeiger B verfolgt die ktuelle Position. s t d o u t. w r i t e l n ( " H l l o " ) ; A B 55 / 160

113 Implementierung: Idee (Fortsetzung): Der Scnner verwltet zwei Zeiger A, B und die zugehörigen Zustände q A, q B... Der Zeiger A merkt sich die letzte Position in der Eingbe, nch der ein Zustnd q A F erreicht wurde; Der Zeiger B verfolgt die ktuelle Position. w r i t e l n ( " H l l o " ) ; A B q 0 55 / 160

114 Implementierung: Idee (Fortsetzung): Ist der ktuelle Zustnd q B =, geben wir Eingbe bis zur Postion A us und setzen: B := A; A := ; q B := q 0 ; q A := w r i t e l n ( " H l l o " ) ; A B / 160

115 Implementierung: Idee (Fortsetzung): Ist der ktuelle Zustnd q B =, geben wir Eingbe bis zur Postion A us und setzen: B := A; A := ; q B := q 0 ; q A := w r i t e l n ( " H l l o " ) ; A B 4 56 / 160

116 Implementierung: Idee (Fortsetzung): Ist der ktuelle Zustnd q B =, geben wir Eingbe bis zur Postion A us und setzen: B := A; A := ; q B := q 0 ; q A := ( " H l l o " ) ; w r i t e l n A B q 0 56 / 160

117 Erweiterung: Zustände Gelegentlich ist es nützlich, verschiedene Scnner-Zustände zu unterscheiden. In unterschiedlichen Zuständen sollen verschiedene Tokenklssen erknnt werden können. In Abhängigkeit der gelesenen Tokens knn der Scnner-Zustnd geändert werden Beispiel: Kommentre Innerhlb eines Kommentrs werden Identifier, Konstnten, Kommentre,... nicht erknnt 57 / 160

118 Eingbe (verllgemeinert): eine Menge von Regeln: stte { e 1 { ction 1 yybegin(stte 1 ); } e 2 { ction 2 yybegin(stte 2 ); }... e k { ction k yybegin(stte k ); } } Der Aufruf yybegin (stte i ); setzt den Zustnd uf stte i. Der Strtzustnd ist (z.b. bei JFlex) YYINITIAL.... im Beispiel: YYINITIAL / { yybegin(comment); } COMMENT { / { yybegin(yyinitial); }. \n { } } 58 / 160

119 Bemerkungen:. mtcht lle Zeichen ungleich \n. Für jeden Zustnd generieren wir den entsprechenden Scnner. Die Methode yybegin (STATE); schltet zwischen den verschiedenen Scnnern um. Kommentre könnte mn uch direkt mithilfe einer geeigneten Token-Klsse implementieren. Deren Beschreibung ist ber ungleich komplizierter Scnner-Zustände sind insbesondere nützlich bei der Implementierung von Präprozessoren, die in einen Text eingestreute Spezifiktionen expndieren sollen. 59 / 160

120 Themengebiet: Syntktische Anlyse 60 / 160

121 Die syntktische Anlyse Token-Strom Prser Syntxbum Die syntktische Anlyse versucht, Tokens zu größeren Progrmmeinheiten zusmmen zu fssen. 61 / 160

122 Die syntktische Anlyse Token-Strom Prser Syntxbum Die syntktische Anlyse versucht, Tokens zu größeren Progrmmeinheiten zusmmen zu fssen. Solche Einheiten können sein: Ausdrücke; Sttements; bedingte Verzweigungen; Schleifen; / 160

123 Diskussion: Auch Prser werden i.. nicht von Hnd progrmmiert, sondern us einer Spezifiktion generiert: Spezifiktion Genertor Prser 62 / 160

124 Diskussion: Auch Prser werden i.. nicht von Hnd progrmmiert, sondern us einer Spezifiktion generiert: E E{op}E Genertor Spezifiktion der hierrchischen Struktur: kontextfreie Grmmtiken Generierte Implementierung: Kellerutomten + X 62 / 160

125 Syntktische Anlyse Kpitel 1: Grundlgen: Kontextfreie Grmmtiken 63 / 160

126 Grundlgen: Kontextfreie Grmmtiken Progrmme einer Progrmmiersprche können unbeschränkt viele Tokens enthlten, ber nur endlich viele Token-Klssen Als endliches Terminl-Alphbet T wählen wir drum die Menge der Token-Klssen. Die Schchtelung von Progrmm-Konstrukten lässt sich elegnt mit Hilfe von kontextfreien Grmmtiken beschreiben / 160

127 Grundlgen: Kontextfreie Grmmtiken Progrmme einer Progrmmiersprche können unbeschränkt viele Tokens enthlten, ber nur endlich viele Token-Klssen Als endliches Terminl-Alphbet T wählen wir drum die Menge der Token-Klssen. Die Schchtelung von Progrmm-Konstrukten lässt sich elegnt mit Hilfe von kontextfreien Grmmtiken beschreiben... Definition: Eine kontextfreie Grmmtik (CFG) ist ein 4-Tupel G = (N, T, P, S) mit: Nom Chomsky John Bckus N die Menge der Nichtterminle, T die Menge der Terminle, P die Menge der Produktionen oder Regeln, und S N ds Strtsymbol 64 / 160

128 Konventionen Die Regeln kontextfreier Grmmtiken sind von der Form: A α mit A N, α (N T) 65 / 160

129 Konventionen Die Regeln kontextfreier Grmmtiken sind von der Form: A α mit A N, α (N T)... im Beispiel: S S b S ɛ Spezifizierte Sprche: { n b n n 0} 65 / 160

130 Konventionen Die Regeln kontextfreier Grmmtiken sind von der Form: A α mit A N, α (N T)... im Beispiel: S S b S ɛ Spezifizierte Sprche: { n b n n 0} Konventionen: In Beispielen ist die Spezifiktion der Nichtterminle und Terminle i.. implizit: Nichtterminle sind: A, B, C,..., exp, stmt,...; Terminle sind:, b, c,..., int, nme,...; 65 / 160

131 ... weitere Beispiele: S stmt stmt if while rexp ; if if ( rexp ) stmt else stmt while while ( rexp ) stmt rexp int lexp lexp = rexp... lexp nme / 160

132 ... weitere Beispiele: S stmt stmt if while rexp ; if if ( rexp ) stmt else stmt while while ( rexp ) stmt rexp int lexp lexp = rexp... lexp nme... Weitere Konventionen: Für jedes Nichtterminl smmeln wir die rechten Regelseiten und listen sie gemeinsm uf Die j-te Regel für A können wir durch ds Pr (A, j) bezeichnen (j 0). 66 / 160

133 Weitere Grmmtiken: E E+E 0 E E 1 ( E ) 2 nme 3 int 4 E E+T 0 T 1 T T F 0 F 1 F ( E ) 0 nme 1 int 2 Die beiden Grmmtiken beschreiben die gleiche Sprche 67 / 160

134 Weitere Grmmtiken: E E+E 0 E E 1 ( E ) 2 nme 3 int 4 E E+T 0 T 1 T T F 0 F 1 F ( E ) 0 nme 1 int 2 Die beiden Grmmtiken beschreiben die gleiche Sprche 67 / 160

135 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E 68 / 160

136 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T 68 / 160

137 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T 68 / 160

138 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T T F + T 68 / 160

139 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T T F + T T int + T 68 / 160

140 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T T F + T T int + T F int + T 68 / 160

141 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T T F + T T int + T F int + T nme int + T 68 / 160

142 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T T F + T T int + T F int + T nme int + T nme int + F 68 / 160

143 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: E E + T T + T T F + T T int + T F int + T nme int + T nme int + F nme int + int 68 / 160

144 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: Definition E E + T T + T T F + T T int + T F int + T nme int + T nme int + F nme int + int Eine Ableitung ist eine Reltion uf Wörtern über N T, mit α α gdw. α = α 1 A α 2 α = α 1 β α 2 für ein A β P 68 / 160

145 Den reflexiven und trnsitiven Abschluss von schreiben wir: 68 / 160 Ableitung Grmmtiken sind Wortersetzungssysteme. Die Regeln geben die möglichen Ersetzungsschritte n. Eine Folge solcher Ersetzungsschritte α 0... α m heißt Ableitung.... im Beispiel: Definition E E + T T + T T F + T T int + T F int + T nme int + T nme int + F nme int + int Eine Ableitung ist eine Reltion uf Wörtern über N T, mit α α gdw. α = α 1 A α 2 α = α 1 β α 2 für ein A β P

146 Ableitung Bemerkungen: Die Reltion hängt von der Grmmtik b In jedem Schritt einer Ableitung können wir: eine Stelle uswählen, wo wir ersetzen wollen, sowie eine Regel, wie wir ersetzen wollen. Die von G spezifizierte Sprche ist: L(G) = {w T S w} 69 / 160

147 Ableitung Bemerkungen: Die Reltion hängt von der Grmmtik b In jedem Schritt einer Ableitung können wir: eine Stelle uswählen, wo wir ersetzen wollen, sowie eine Regel, wie wir ersetzen wollen. Die von G spezifizierte Sprche ist: L(G) = {w T S w} Achtung: Die Reihenfolge, in der disjunkte Teile bgeleitet werden, ist unerheblich 69 / 160

148 Ableitungsbum Ableitungen eines Symbols stellt mn ls Ableitungsbum dr:... im Beispiel: E 0 E 0 E + T 1 T + T 0 T F + T 2 T int + T 1 F int + T 1 nme int + T 1 nme int + F 2 nme int + int T 1 F 1 E 1 T 0 + F 2 int T 1 F 2 int nme Ein Ableitungsbum für A N: innere Knoten: Regel-Anwendungen Wurzel: Regel-Anwendung für A Blätter: Terminle oder ɛ Die Nchfolger von (B, i) entsprechen der rechten Seite der Regel 70 / 160

149 Spezielle Ableitungen Bechte: Neben beliebigen Ableitungen betrchtet mn solche, bei denen stets ds linkeste (bzw. rechteste) Vorkommen eines Nichtterminls ersetzt wird. Diese heißen Links- (bzw. Rechts-) Ableitungen und werden durch Index L bzw. R gekennzeichnet. Links-(bzw. Rechts-) Ableitungen entsprechen einem links-rechts (bzw. rechts-links) preorder-dfs-durchluf durch den Ableitungsbum Reverse Rechts-Ableitungen entsprechen einem links-rechts postorder-dfs-durchluf durch den Ableitungsbum 71 / 160

150 Spezielle Ableitungen... im Beispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int nme 72 / 160

151 Spezielle Ableitungen... im Beispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int nme Links-Ableitung: (E, 0) (E, 1) (T, 0) (T, 1) (F, 1) (F, 2) (T, 1) (F, 2) 72 / 160

152 Spezielle Ableitungen... im Beispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int nme Links-Ableitung: (E, 0) (E, 1) (T, 0) (T, 1) (F, 1) (F, 2) (T, 1) (F, 2) Rechts-Ableitung: (E, 0) (T, 1) (F, 2) (E, 1) (T, 0) (F, 2) (T, 1) (F, 1) 72 / 160

153 Spezielle Ableitungen... im Beispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int nme Links-Ableitung: (E, 0) (E, 1) (T, 0) (T, 1) (F, 1) (F, 2) (T, 1) (F, 2) Rechts-Ableitung: (E, 0) (T, 1) (F, 2) (E, 1) (T, 0) (F, 2) (T, 1) (F, 1) Reverse Rechts-Ableitung: (F, 1) (T, 1) (F, 2) (T, 0) (E, 1) (F, 2) (T, 1) (E, 0) 72 / 160

154 Eindeutige Grmmtiken Die Konktention der Blätter des Ableitungsbums t bezeichnen wir uch mit yield(t).... im Beispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int nme liefert die Konktention: nme int + int. 73 / 160

155 Eindeutige Grmmtiken Definition: Die Grmmtik G heißt eindeutig, flls es zu jedem w T mximl einen Ableitungsbum t von S gibt mit yield(t) = w.... in unserem Beispiel: E E+E 0 E E 1 ( E ) 2 nme 3 int 4 E E+T 0 T 1 T T F 0 F 1 F ( E ) 0 nme 1 int 2 Die zweite ist eindeutig, die erste nicht 74 / 160

156 Fzit: Ein Ableitungsbum repräsentiert eine mögliche hierrchische Struktur eines Worts. Bei Progrmmiersprchen sind wir nur n Grmmtiken interessiert, bei denen die Struktur stets eindeutig ist Ableitungsbäume stehen in eins-zu-eins-korrespondenz mit Links-Ableitungen wie uch (reversen) Rechts-Ableitungen. Links-Ableitungen entsprechen einem Topdown-Aufbu des Ableitungsbums. Reverse Rechts-Ableitungen entsprechen einem Bottom-up-Aufbu des Ableitungsbums. 75 / 160

157 Syntktische Anlyse Kpitel 2: Grundlgen: Kellerutomten 76 / 160

158 Grundlgen: Kellerutomten Durch kontextfreie Grmmtiken spezifizierte Sprchen können durch Kellerutomten (Pushdown Automt) kzeptiert werden: Der Keller wird z.b. benötigt, um korrekte Klmmerung zu überprüfen 77 / 160

159 Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 78 / 160

160 Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 Konventionen: Wir unterscheiden nicht zwischen Kellersymbolen und Zuständen Ds rechteste / oberste Kellersymbol repräsentiert den Zustnd Jeder Übergng liest / modifiziert einen oberen Abschnitt des Kellers 78 / 160

161 Kellerutomten Definition: Ein Kellerutomt (PDA) ist ein Tupel M = (Q, T, δ, q 0, F) mit: Q T q 0 Q F Q eine endliche Menge von Zuständen; ds Eingbe-Alphbet; der Anfngszustnd; die Menge der Endzustände und δ Q + (T {ɛ}) Q Friederich Buer Klus Smelson eine endliche Menge von Übergängen 79 / 160

162 Kellerutomten Definition: Ein Kellerutomt (PDA) ist ein Tupel M = (Q, T, δ, q 0, F) mit: Q T q 0 Q F Q eine endliche Menge von Zuständen; ds Eingbe-Alphbet; der Anfngszustnd; die Menge der Endzustände und δ Q + (T {ɛ}) Q Friederich Buer Klus Smelson eine endliche Menge von Übergängen Mithilfe der Übergänge definieren wir Berechnungen von Kellerutomten Der jeweilige Berechnungszustnd (die ktuelle Konfigurtion) ist ein Pr: (γ, w) Q T bestehend us dem Kellerinhlt und dem noch zu lesenden Input. 79 / 160

163 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 80 / 160

164 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) 80 / 160

165 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) (1 1, b b b) 80 / 160

166 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) (1 1, b b b) (1 1 1, b b b) 80 / 160

167 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) (1 1, b b b) (1 1 1, b b b) ( , b b b) 80 / 160

168 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) (1 1, b b b) (1 1 1, b b b) ( , b b b) (1 1 2, b b) 80 / 160

169 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) (1 1, b b b) (1 1 1, b b b) ( , b b b) (1 1 2, b b) (1 2, b) 80 / 160

170 ... im Beispiel: Zustände: 0, 1, 2 Anfngszustnd: 0 Endzustände: 0, b 2 12 b 2 (0, b b b) (1 1, b b b) (1 1 1, b b b) ( , b b b) (1 1 2, b b) (1 2, b) (2, ɛ) 80 / 160

171 Ein Berechnungsschritt wird durch die Reltion (Q T ) 2 beschrieben, wobei (α γ, x w) (α γ, w) für (γ, x, γ ) δ 81 / 160

172 Ein Berechnungsschritt wird durch die Reltion (Q T ) 2 beschrieben, wobei (α γ, x w) (α γ, w) für (γ, x, γ ) δ Bemerkungen: Die Reltion hängt ntürlich vom Kellerutomten M b Die reflexive und trnsitive Hülle von bezeichnen wir mit Dnn ist die von M kzeptierte Sprche: L(M) = {w T f F : (q 0, w) (f, ɛ)} 81 / 160

173 Ein Berechnungsschritt wird durch die Reltion (Q T ) 2 beschrieben, wobei (α γ, x w) (α γ, w) für (γ, x, γ ) δ Bemerkungen: Die Reltion hängt ntürlich vom Kellerutomten M b Die reflexive und trnsitive Hülle von bezeichnen wir mit Dnn ist die von M kzeptierte Sprche: L(M) = {w T f F : (q 0, w) (f, ɛ)} Wir kzeptieren lso mit Endzustnd und leerem Keller 81 / 160

174 Deterministischer Kellerutomt Definition: Der Kellerutomt M heißt deterministisch, flls jede Konfigurtion mximl eine Nchfolge-Konfigurtion ht. Ds ist genu dnn der Fll wenn für verschiedene Übergänge (γ 1, x, γ 2 ), (γ 1, x, γ 2 ) δ gilt: Ist γ 1 ein Suffix von γ 1, dnn muss x x x ɛ x sein. 82 / 160

175 Deterministischer Kellerutomt Definition: Der Kellerutomt M heißt deterministisch, flls jede Konfigurtion mximl eine Nchfolge-Konfigurtion ht. Ds ist genu dnn der Fll wenn für verschiedene Übergänge (γ 1, x, γ 2 ), (γ 1, x, γ 2 ) δ gilt: Ist γ 1 ein Suffix von γ 1, dnn muss x x x ɛ x sein.... im Beispiel: b 2 12 b 2... ist ds ntürlich der Fll 82 / 160

176 Kellerutomten Stz: Zu jeder kontextfreien Grmmtik G = (N, T, P, S) knn ein Kellerutomt M konstruiert werden mit L(G) = L(M). M. Schützenberger Antony Öttinger Der Stz ist für uns so wichtig, dss wir zwei Konstruktionen für Automten ngeben, motiviert durch die beiden speziellen Ableitungsmöglichkeiten: M L G M R G zur Bildung von Linksbleitungen zur Bildung von reversen Rechtsbleitungen 83 / 160

177 Syntktische Anlyse Kpitel 3: Top-down Prsing 84 / 160

178 Item-Kellerutomt Konstruktion: Item-Kellerutomt M L G == Rekonstruiere eine Linksbleitung. Expndiere Nichtterminle mithilfe einer Regel. Verifiziere sukzessive, dss die gewählte Regel mit der Eingbe übereinstimmt. Die Zustände sind jetzt Items (= Regeln mit Punkt): [A α β], A α β P Der Punkt gibt n, wieweit die Regel bereits bgerbeitet wurde 85 / 160

179 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

180 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

181 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

182 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

183 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

184 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

185 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

186 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

187 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

188 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

189 Item-Kellerutomt Beispiel Unser Beispiel: S A B A B b S AB A B b b 86 / 160

190 Item-Kellerutomt Beispiel Wir fügen zur Initilisierung eine Regel: S S hinzu und konstruieren: Anfngszustnd: [S S] Endzustnd: [S S ] Zustndsübergngsreltion: [S S] ɛ [S S] [S A B] [S A B] ɛ [S A B] [A ] [A ] [A ] [S A B] [A ] ɛ [S A B] [S A B] ɛ [S A B] [B b] [B b] b [B b ] [S A B] [B b ] ɛ [S A B ] [S S] [S A B ] ɛ [S S ] 87 / 160

191 Item-Kellerutomt Der Item-Kellerutomt M L G ht drei Arten von Übergängen: Expnsionen: ([A α B β], ɛ, [A α B β] [B γ]) für A α B β, B γ P Shifts: ([A α β],, [A α β]) für A α β P Reduce: ([A α B β] [B γ ], ɛ, [A α B β]) für A α B β, B γ P Items der Form: [A α ] heißen uch vollständig Der Item-Kellerutomt schiebt den Punkt einml um den Ableitungsbum herum / 160

192 Item-Kellerutomt Diskussion: Die Expnsionen einer Berechnung bilden eine Linksbleitung Leider muss mn bei den Expnsionen nichtdeterministisch zwischen verschiedenen Regeln uswählen Zur Korrektheit der Konstruktion zeigt mn, dss für jedes Item [A α B β] gilt: ([A α B β], w) ([A α B β], ɛ) gdw. B w LL-Prsing bsiert uf dem Item-Kellerutomten und versucht, die Expnsionen deterministisch zu mchen / 160

193 Item-Kellerutomt Beispiel: S ɛ S b Die Übergänge des zugehörigen Item-Kellerutomt: 0 [S S] ɛ [S S] [S ] 1 [S S] ɛ [S S] [S S b] 2 [S S b] [S S b] 3 [S S b] ɛ [S S b] [S ] 4 [S S b] ɛ [S S b] [S S b] 5 [S S b] [S ] ɛ [S S b] 6 [S S b] [S S b ] ɛ [S S b] 7 [S S b] b [S S b ] 8 [S S] [S ] ɛ [S S ] 9 [S S] [S S b ] ɛ [S S ] Konflikte gibt es zwischen den Übergängen (0, 1) bzw. zwischen (3, 4). 90 / 160

194 Topdown Prsing Problem: Konflikte zwischen Übergängen verhindern die Implementierung des Item-Kellerutomten ls deterministischer Kellerutomt. 91 / 160

195 Topdown Prsing Problem: Konflikte zwischen Übergängen verhindern die Implementierung des Item-Kellerutomten ls deterministischer Kellerutomt. Idee 1: GLL Prsing Bei jedem Konflikt wird virtuell der Stck komplett kopiert und prllel weiter geführt. 91 / 160

196 Topdown Prsing Problem: Konflikte zwischen Übergängen verhindern die Implementierung des Item-Kellerutomten ls deterministischer Kellerutomt. Idee 1: GLL Prsing Bei jedem Konflikt wird virtuell der Stck komplett kopiert und prllel weiter geführt. Idee 2: Recursive Descent & Bcktrcking Tiefensuche nch einer pssenden Ableitung. 91 / 160

197 Topdown Prsing Problem: Konflikte zwischen Übergängen verhindern die Implementierung des Item-Kellerutomten ls deterministischer Kellerutomt. Idee 1: GLL Prsing Bei jedem Konflikt wird virtuell der Stck komplett kopiert und prllel weiter geführt. Idee 2: Recursive Descent & Bcktrcking Tiefensuche nch einer pssenden Ableitung. Idee 3: Recursive Descent & Lookhed Konflikte werden durch Betrchten des/der nächsten Zeichens gelöst. 91 / 160

198 Struktur des LL(1)-Prsers: δ M Ausgbe Der Prser sieht ein Fenster der Länge 1 der Eingbe; er relisiert im Wesentlichen den Item-Kellerutomten; die Tbelle M[q, w] enthält die jeweils zu wählende Regel 92 / 160

199 Topdown Prsing Idee: Benutze den Item-Kellerutomten. Benutze ds nächste Zeichen, um die Regeln für die Expnsionen zu bestimmen Eine Grmmtik heißt LL(1), flls dies immer eindeutig möglich ist. 93 / 160

200 Topdown Prsing Idee: Benutze den Item-Kellerutomten. Benutze ds nächste Zeichen, um die Regeln für die Expnsionen zu bestimmen Eine Grmmtik heißt LL(1), flls dies immer eindeutig möglich ist. Definition: Eine reduzierte Grmmtik heißt dnn LL(1), Philip Lewis flls für je zwei verschiedene Regeln A α, A α Ableitung S L u A β mit u T gilt: Richrd Sterns P und jede First 1 (α β) First 1 (α β) = 93 / 160

201 Topdown Prsing Beispiel 1: S if ( E ) S else S while ( E ) S E ; E id ist LL(1), d First 1 (E) = {id} 94 / 160

202 Topdown Prsing Beispiel 1: S if ( E ) S else S while ( E ) S E ; E id Beispiel 2: ist LL(1), d First 1 (E) = {id} S if ( E ) S else S if ( E ) S while ( E ) S E ; E id... ist nicht LL(k) für jedes k > / 160

203 Vorusschu-Mengen Definition: Für eine Menge L T definieren wir: First 1 (L) = {ɛ ɛ L} {u T v T : uv L} Beispiel: ɛ b b b b b b 95 / 160

204 Vorusschu-Mengen Definition: Für eine Menge L T definieren wir: First 1 (L) = {ɛ ɛ L} {u T v T : uv L} Beispiel: ɛ b b b b b b die Präfixe der Länge 1 95 / 160

205 Vorusschu-Mengen Rechenregeln: First 1 (_) ist verträglich mit Vereinigung und Konktention: First 1 ( ) = First 1 (L 1 L 2 ) = First 1 (L 1 ) First 1 (L 2 ) First 1 (L 1 L 2 ) = First 1 (First 1 (L 1 ) First 1 (L 2 )) := First 1 (L 1 ) First 1 (L 2 ) 1 Konktention 96 / 160

206 Vorusschu-Mengen Rechenregeln: First 1 (_) ist verträglich mit Vereinigung und Konktention: First 1 ( ) = First 1 (L 1 L 2 ) = First 1 (L 1 ) First 1 (L 2 ) First 1 (L 1 L 2 ) = First 1 (First 1 (L 1 ) First 1 (L 2 )) := First 1 (L 1 ) First 1 (L 2 ) Beobchtung: 1 Konktention Seien L 1, L 2 T {ɛ} mit L 1 = L 2. Dnn ist: { L L 1 L 2 = 1 flls ɛ L 1 (L 1 \{ɛ}) L 2 sonst Sind lle Regeln von G produktiv, sind lle Mengen First 1 (A) nichtleer. 96 / 160

207 Vorusschu-Mengen Für α (N T) sind wir interessiert n der Menge: First 1 (α) = First 1 ({w T α w}) Idee: Behndle ɛ seprt: F ɛ Sei empty(x) = true gdw. X ɛ. F ɛ (X 1... X m ) = j i=1 F ɛ(x i ) flls empty(x 1 )... empty(x j 1 ) 97 / 160

208 Vorusschu-Mengen Für α (N T) sind wir interessiert n der Menge: First 1 (α) = First 1 ({w T α w}) Idee: Behndle ɛ seprt: F ɛ Sei empty(x) = true gdw. X ɛ. F ɛ (X 1... X m ) = j i=1 F ɛ(x i ) flls empty(x 1 )... empty(x j 1 ) Definiere die ɛ-freien First 1 -Mengen ls Ungleichungssystem F ɛ () = {} flls T F ɛ (A) F ɛ (X j ) flls A X 1... X m P, empty(x 1 )... empty(x j 1 ) 97 / 160

209 Vorusschu-Mengen im Beispiel... E E + T 0 T 1 T T F 0 F 1 F ( E ) 0 nme 1 int 2 wobei empty(e) = empty(t) = empty(f) = flse. 98 / 160

210 Vorusschu-Mengen im Beispiel... E E + T 0 T 1 T T F 0 F 1 F ( E ) 0 nme 1 int 2 wobei empty(e) = empty(t) = empty(f) = flse.... erhlten wir: F ɛ (S ) F ɛ (E) F ɛ (E) F ɛ (E) F ɛ (E) F ɛ (T) F ɛ (T) F ɛ (T) F ɛ (T) F ɛ (F) F ɛ (F) { (, nme, int} 98 / 160

211 Schnelle Berechnung von Vorusschu-Mengen Beobchtung: Die Form der Ungleichungen dieser Ungleichungssysteme ist: x y bzw. x d für Vriblen x, y und d D. Solche Systeme heißen reine Vereinigungs-Probleme Diese Probleme können mit linerem Aufwnd gelöst werden im Beispiel: D = 2 {,b,c} x 0 {} x 1 {b} x 1 x 0 x 1 x 3 x 2 {c} x 2 x 1 x 3 {c} x 3 x 2 x 3 x 3 b 0 1 c 3 2 c 99 / 160

212 Schnelle Berechnung von Vorusschu-Mengen Frnk DeRemer & Tom Pennello b 0 1 c 3 2 c Vorgehen: Konstruiere den Vriblen-Abhängigkeitsgrph zum Ungleichungssystem. 100 / 160

213 Schnelle Berechnung von Vorusschu-Mengen Frnk DeRemer & Tom Pennello b 0 1 c 3 2 c Vorgehen: Konstruiere den Vriblen-Abhängigkeitsgrph zum Ungleichungssystem. Innerhlb einer strken Zusmmenhngskomponente ( Trjn) hben lle Vriblen den gleichen Wert 100 / 160

214 Schnelle Berechnung von Vorusschu-Mengen Frnk DeRemer & Tom Pennello b 0 1 c 3 2 c Vorgehen: Konstruiere den Vriblen-Abhängigkeitsgrph zum Ungleichungssystem. Innerhlb einer strken Zusmmenhngskomponente ( Trjn) hben lle Vriblen den gleichen Wert Ht eine SZK keine eingehenden Knten, erhält mn ihren Wert, indem mn die kleinste obere Schrnke ller Werte in der SZK berechnet 100 / 160

215 Schnelle Berechnung von Vorusschu-Mengen b c Frnk DeRemer & Tom Pennello Vorgehen: Konstruiere den Vriblen-Abhängigkeitsgrph zum Ungleichungssystem. Innerhlb einer strken Zusmmenhngskomponente ( Trjn) hben lle Vriblen den gleichen Wert Ht eine SZK keine eingehenden Knten, erhält mn ihren Wert, indem mn die kleinste obere Schrnke ller Werte in der SZK berechnet Gibt es eingehende Knten, muss mn zusätzlich die Werte n deren Strtknoten hinzufügen 100 / 160

216 Schnelle Berechnung von Vorusschu-Mengen... für unsere Beispiel-Grmmtik: First 1 : S E T F (, int, nme 101 / 160

217 Item-Kellerutomt ls LL(1)-Prser zurück zum Beispiel: S ɛ S b Die Übergänge des zugehörigen Item-Kellerutomt: 0 [S S] ɛ [S S] [S ] 1 [S S] ɛ [S S] [S S b] 2 [S S b] [S S b] 3 [S S b] ɛ [S S b] [S ] 4 [S S b] ɛ [S S b] [S S b] 5 [S S b] [S ] ɛ [S S b] 6 [S S b] [S S b ] ɛ [S S b] 7 [S S b] b [S S b ] 8 [S S] [S ] ɛ [S S ] 9 [S S] [S S b ] ɛ [S S ] Konflikte gibt es zwischen den Übergängen (0, 1) bzw. zwischen (3, 4). 102 / 160

218 Item-Kellerutomt ls LL(1)-Prser Ist G eine LL(1)-Grmmtik, können wir eine Vorusschu-Tbelle mit Items und Nichtterminlen indizieren: Wir setzen M[B, w] = i genu dnn wenn (B, i) die Regel B γ ist und: w First 1 (γ) {First 1 (β) S L u B β }.... im Beispiel: S ɛ S b i 0 S ɛ b S i 1 i n A 1 A n β 1 β 0 i B β γ w First 1( ) 103 / 160

219 Item-Kellerutomt ls LL(1)-Prser i 0 S i 1 A 1 β 0 i n A n β 1 i B β γ w First 1( ) Ungleichungssystem für Follow 1 (B) = {First 1 (β) S L u B β } Follow 1 (S) {ɛ} Follow 1 (B) F ɛ (X j ) flls A α B X 1... X m P, empty(x 1 )... empty(x j 1 ) Follow 1 (B) Follow 1 (A) flls A α B X 1... X m P, empty(x 1 )... empty(x m ) 104 / 160

220 Item-Kellerutomt ls LL(1)-Prser Im Beispiel: S ɛ S b Die Übergänge des zugehörigen Item-Kellerutomt: 0 [S S] ɛ [S S] [S ] 1 [S S] ɛ [S S] [S S b] 2 [S S b] [S S b] 3 [S S b] ɛ [S S b] [S ] 4 [S S b] ɛ [S S b] [S S b] 5 [S S b] [S ] ɛ [S S b] 6 [S S b] [S S b ] ɛ [S S b] 7 [S S b] b [S S b ] 8 [S S] [S ] ɛ [S S ] 9 [S S] [S S b ] ɛ [S S ] Vorusschutbelle: ɛ b S / 160

221 Topdown-Prsing Diskussion Einer prktischen Implementtion von LL(1)-Prsern über recursive Descent steht nichts im Wege Jedoch knn nur eine Teilmenge der deterministisch kontextfreien Sprchen uf diesem Weg gelesen werden. 106 / 160

222 Topdown-Prsing Diskussion Einer prktischen Implementtion von LL(1)-Prsern über recursive Descent steht nichts im Wege Jedoch knn nur eine Teilmenge der deterministisch kontextfreien Sprchen uf diesem Weg gelesen werden. Ausweg: Schritt von LL(1) uf LL(k) Die Größe der uftretenden Mengen steigt mit k rpide Leider reichen uch LL(k) Prser nicht us, um lle deterministisch kontextfreien Sprchen zu erkennen. In prktischen Systemen wird drum meist nur der Fll k = 1 implementiert / 160

223 Syntktische Anlyse Kpitel 4: Bottom-up Anlyse 107 / 160

224 Bottom-up Anlyse Achtung: Viele Grmmtiken sind nicht LL(k)! Eine Grund dfür ist: Definition Die Grmmtik G heißt links-rekursiv, flls A + A β für ein A N, β (T N) 108 / 160

225 Bottom-up Anlyse Achtung: Viele Grmmtiken sind nicht LL(k)! Eine Grund dfür ist: Definition Die Grmmtik G heißt links-rekursiv, flls A + A β für ein A N, β (T N) Beispiel: E E + T 0 T 1 T T F 0 F 1 F ( E ) 0 nme 1 int 2... ist links-rekursiv 108 / 160

226 Bottom-up Anlyse Stz: Ist die Grmmtik G reduziert und links-rekursiv, dnn ist G nicht LL(k) für jedes k. Beweis: Sei A A β α P und A erreichbr von S Annhme: G ist LL(k) 109 / 160

227 Bottom-up Anlyse Stz: Ist die Grmmtik G reduziert und links-rekursiv, dnn ist G nicht LL(k) für jedes k. Beweis: Sei A A β α P und A erreichbr von S Annhme: G ist LL(k) A n A S A β n β γ First k( ) 109 / 160

228 Bottom-up Anlyse Stz: Ist die Grmmtik G reduziert und links-rekursiv, dnn ist G nicht LL(k) für jedes k. Beweis: Sei A A β α P und A erreichbr von S Annhme: G ist LL(k) A n A S A β n β γ α First k( ) 109 / 160

229 Bottom-up Anlyse Stz: Ist die Grmmtik G reduziert und links-rekursiv, dnn ist G nicht LL(k) für jedes k. Beweis: Sei A A β α P und A erreichbr von S Annhme: G ist LL(k) A n A S A β n β γ A β α First k( ) 109 / 160

230 Bottom-up Anlyse Stz: Ist die Grmmtik G reduziert und links-rekursiv, dnn ist G nicht LL(k) für jedes k. Beweis: Sei A A β α P und A erreichbr von S Annhme: G ist LL(k) First k (α β n γ) First k (α β n+1 γ) = 109 / 160

231 Bottom-up Anlyse Stz: Ist die Grmmtik G reduziert und links-rekursiv, dnn ist G nicht LL(k) für jedes k. Beweis: Sei A A β α P und A erreichbr von S Annhme: G ist LL(k) First k (α β n γ) First k (α β n+1 γ) = Fll 1: β ɛ Widerspruch!!! Fll 2: β w ɛ == First k (α β k γ) First k (α β k+1 γ) 109 / 160

232 Shift-Reduce-Prser Idee: Wir verzögern die Entscheidung ob wir reduzieren bis wir wissen, ob die Eingbe einer rechten Seite entspricht! Donld Knuth Konstruktion: Shift-Reduce-Prser M R G Die Eingbe wird sukzessive uf den Keller geschoben. Liegt oben uf dem Keller eine vollständige rechte Seite (ein Hndle) vor, wird dieses durch die zugehörige linke Seite ersetzt (reduziert) 110 / 160

1.1 Grundlagen: Reguläre Ausdrücke

1.1 Grundlagen: Reguläre Ausdrücke 11 Grundlgen: Reguläre Ausdrücke Progrmmtext enutzt ein endliches Alphet Σ von Einge-Zeichen, zb ASCII :-) Die Menge der Textschnitte einer Token-Klsse ist i regulär Reguläre Sprchen knn mn mithile regulärer

Mehr

FORMALE SYSTEME. 6. Vorlesung: Reguläre Ausdrücke. TU Dresden, 27. Oktober Markus Krötzsch

FORMALE SYSTEME. 6. Vorlesung: Reguläre Ausdrücke. TU Dresden, 27. Oktober Markus Krötzsch FORMALE SYSTEME 6. Vorlesung: Reguläre Ausdrücke Mrkus Krötzsch TU Dresden, 27. Oktober 2016 Rückblick Mrkus Krötzsch, 27. Oktober 2016 Formle Systeme Folie 2 von 29 Wiederholung: Opertionen uf Automten

Mehr

Lösung zur Klausur. Grundlagen der Theoretischen Informatik. 1. Zeigen Sie, dass die folgende Sprache regulär ist: w {a, b} w a w b 0 (mod 3) }.

Lösung zur Klausur. Grundlagen der Theoretischen Informatik. 1. Zeigen Sie, dass die folgende Sprache regulär ist: w {a, b} w a w b 0 (mod 3) }. Lösung zur Klusur Grundlgen der Theoretischen Informtik 1. Zeigen Sie, dss die folgende Sprche regulär ist: { w {, } w w 0 (mod 3) }. Lösung: Wir nennen die Sprche L. Eine Sprche ist genu dnn regulär,

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012. Sprachen. Grammatiken (Einführung)

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012. Sprachen. Grammatiken (Einführung) Wörter, Grmmtiken und die Chomsky-Hierrchie Sprchen und Grmmtiken Wörter Automten und Formle Sprchen lis Theoretische Informtik Sommersemester 2012 Dr. Snder Bruggink Üungsleitung: Jn Stückrth Alphet Ein

Mehr

dem Verfahren aus dem Beweis zu Satz 2.20 erhalten wir zunächst die folgenden beiden ε-ndeas für die Sprachen {a} {b} und {ε} {a} +

dem Verfahren aus dem Beweis zu Satz 2.20 erhalten wir zunächst die folgenden beiden ε-ndeas für die Sprachen {a} {b} und {ε} {a} + Lösungen zu Üungsltt 3 Aufge 1. Es gilt L(( ) ) = ({} {}) {} = ({} {}) ({} {} + ). Mit dem Verfhren us dem Beweis zu Stz 2.20 erhlten wir zunächst die folgenden eiden -NDEAs für die Sprchen {} {} und {}

Mehr

Präfixcodes und der Huffman Algorithmus

Präfixcodes und der Huffman Algorithmus Präfixcodes und der Huffmn Algorithmus Präfixcodes und Codebäume Im Folgenden werden wir Codes untersuchen, die in der Regel keine Blockcodes sind. In diesem Fll können Codewörter verschiedene Länge hben

Mehr

Umwandlung von endlichen Automaten in reguläre Ausdrücke

Umwandlung von endlichen Automaten in reguläre Ausdrücke Umwndlung von endlichen Automten in reguläre Ausdrücke Wir werden sehen, wie mn us einem endlichen Automten M einen regulären Ausdruck γ konstruieren knn, der genu die von M kzeptierte Sprche erzeugt.

Mehr

Deterministische endliche Automaten

Deterministische endliche Automaten Endliche Automten Idee: endlicher Automt A ht endlich viele innere Zustände liest Einge wєσ* zeichenweise von links nch rechts git zum Schluß eine J/Nein Antwort A Lesekopf w 1 w 2 w n gelesenes Symol

Mehr

Endliche Automaten. S. Kuske: Endliche Automaten; 6.Novenber 2006

Endliche Automaten. S. Kuske: Endliche Automaten; 6.Novenber 2006 1 Endliche Automten Einfches Modellierungswekzeug (z.b. UML-Sttechrts) Verrbeiten Wörter/Ereignisfolgen Erkennen Sprchen Erluben schnelle Sprcherkennung Anwendungsbereiche: Objektorientierte Modellierung,

Mehr

5. Übung Algorithmen II

5. Übung Algorithmen II Johnnes Singler, Prof. Snders 1 Johnnes Singler: KIT Universität des Lndes Bden-Württemberg und ntionles Forschungszentrum in der Helmholtz-Gemeinschft Institut für Theoretische www.kit.edu Informtik Orgnistorisches

Mehr

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt:

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 8. Grundlgen der Informtionstheorie 8.1 Informtionsgehlt, Entropie, Redundnz Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* ller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 1.

Mehr

Hausaufgabe 2 (Induktionsbeweis):

Hausaufgabe 2 (Induktionsbeweis): Prof. Dr. J. Giesl Formle Sprhen, Automten, Prozesse SS 2010 Üung 3 (Age is 12.05.2010) M. Brokshmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder Hinweise: Die Husufgen sollen in Gruppen von je 2 Studierenden

Mehr

1 Grundlagen der Theorie formaler Sprachen

1 Grundlagen der Theorie formaler Sprachen 1 Grundlgen der Theorie formler Sprchen Wir eginnen dmit, dss wir in diesem Kpitel zunchst einige grundlegende Begriffe und Methoden us der Theorie formler Sprchen, insesondere der regulären Sprchen, wiederholen.

Mehr

Seminar Quantum Computation - Finite Quanten-Automaten und Quanten-Turingmaschinen

Seminar Quantum Computation - Finite Quanten-Automaten und Quanten-Turingmaschinen Seminr Quntum Computtion - Finite Qunten-Automten und Qunten-Turingmschinen Sebstin Scholz sscholz@informtik.tu-cottbus.de Dezember 3. Einleitung Aus der klssischen Berechenbrkeitstheorie sind die odelle

Mehr

Definition Suffixbaum

Definition Suffixbaum Suffix-Bäume Definition Suche nch einer Menge von Mustern Längste gemeinsme Zeichenkette Pltzreduktion Suffixbäume für Muster Alle Pre Suffix-Präfix Übereinstimmung Sich wiederholende Strukturen Definition

Mehr

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre Vorlesung Einführung in die mthemtische Sprche und nive Mengenlehre 1 Allgemeines RUD26 Erwin-Schrödinger-Zentrum (ESZ) RUD25 Johnn-von-Neumnn-Hus Fchschft Menge ller Studenten eines Institutes Fchschftsrt

Mehr

2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004

2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004 Universität Krlsruhe Theoretische Informtik Fkultät für Informtik WS 2003/04 ILKD Prof. Dr. D. Wgner 14. April 2004 2. Klusur zur Vorlesung Informtik III Wintersemester 2003/2004 Lösung! Bechten Sie: Bringen

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederun 1. Motivtion / Grundlen 2. Sortierverfhren 3. Elementre Dtenstrukturen / Anwendunen 4. Bäume / Grphen 5. Hshin 6. Alorithmische Geometrie 3/1, Folie 1 2010 Prof. Steffen Lne - HD/FbI - Dtenstrukturen

Mehr

Theoretische Informatik und Logik Übungsblatt 2 (2013S) Lösung

Theoretische Informatik und Logik Übungsblatt 2 (2013S) Lösung Theoretische Informtik und Logik Üungsltt 2 (2013S) en Aufge 2.1 Geen Sie jeweils eine kontextfreie Grmmtik n, welche die folgenden Sprchen erzeugt, sowie einen Aleitungsum für ein von Ihnen gewähltes

Mehr

14 E N D L I C H E AU T O M AT E N erstes beispiel: ein getränkeautomat

14 E N D L I C H E AU T O M AT E N erstes beispiel: ein getränkeautomat 14 E N D L I H E AU T O M AT E N 14.1 erstes beispiel: ein getränkeutomt Als erstes Beispiel betrchten wir den folgenden primitiven Getränkeutomten (siehe Abbildung 14.1). Mn knn nur 1-Euro-Stücke einwerfen

Mehr

1.6 Bruchterme. 1 Einführung und Repetition 2. 2 Multiplikation und Division von Bruchtermen 3. 3 Die Addition von zwei Bruchtermen-Methode I 3

1.6 Bruchterme. 1 Einführung und Repetition 2. 2 Multiplikation und Division von Bruchtermen 3. 3 Die Addition von zwei Bruchtermen-Methode I 3 .6 Bruchterme Inhltsverzeichnis Einführung und Repetition 2 2 Multipliktion und Division von Bruchtermen 3 3 Die Addition von zwei Bruchtermen-Methode I 3 4 Doppelbrüche 5 5 Die Addition von zwei Bruchtermen

Mehr

Reguläre Sprachen und endliche Automaten

Reguläre Sprachen und endliche Automaten 2 Reguläre Sprchen und endliche Automten Sei Σ = {, b,...} ein endliches Alphbet. Ein endliches Wort über Σ ist eine Folge w = 0... n 1, wobei i Σ für i = 0,...,n 1. Wir schreiben w für die Länge von w,

Mehr

Versuchsplanung. Grundlagen. Extrapolieren unzulässig! Beobachtungsbereich!

Versuchsplanung. Grundlagen. Extrapolieren unzulässig! Beobachtungsbereich! Versuchsplnung 22 CRGRAPH www.crgrph.de Grundlgen Die Aufgbe ist es Versuche so zu kombinieren, dss die Zusmmenhänge einer Funktion oder eines Prozesses bestmöglich durch eine spätere Auswertung wiedergegeben

Mehr

8 Integralrechnung. 8.1 Das Riemann-Integral

8 Integralrechnung. 8.1 Das Riemann-Integral 8 Integrlrechnung Der Integrlbegriff ist wie der Ableitungsbegriff motiviert durch die physiklische Beschreibung von Bewegungsbläufen (Geschwindigkeit, Beschleunigung). Er ist u.. uch von Bedeutung bei

Mehr

Rekursiv aufzählbare Sprachen

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

Mehr

Protokoll zur Vorlesung Theoretische Informatik I

Protokoll zur Vorlesung Theoretische Informatik I Protokoll zur Vorlesung Theoretishe Informtik I! " # $ % # & ' ( % ) * + & " & & &, " ' % + - + # + & '. / 0 1 # 0 & 2 & # & 3 4 & 5 # 0 + & 6 & ' + 7 7 3 8 4 & 7 + + + % ( % 6 # 9 & 5 # 0 + & 3 8. : &

Mehr

Domäne und Bereich. Relationen zwischen Mengen/auf einer Menge. Anmerkungen zur Terminologie. r Relationen auf/in einer Menge.

Domäne und Bereich. Relationen zwischen Mengen/auf einer Menge. Anmerkungen zur Terminologie. r Relationen auf/in einer Menge. Reltionen zwischen Mengen/uf einer Menge! Eine Reltion R A B (mit A B) ist eine Reltion zwischen der Menge A und der Menge B, oder uch: von A nch B. Drstellung: c A! Wenn A = B, d.h. R A A, heißt R eine

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs

Mehr

Kontextsensitive Sprachen. Christian Scheideler Universität Paderborn WS 2014

Kontextsensitive Sprachen. Christian Scheideler Universität Paderborn WS 2014 Kontextsensitive Sprchen Christin Scheideler Universität Pderorn WS 2014 Kontextsensitive Sprchen Definition 5.1.4 Eine Grmmtik heißt kontextsensitiv oder vom Typ Chomsky-1 flls für jede Regel u v gilt

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

Falls die Werte von X als Ergebnisse eines Zufallsvorgangs resultieren, wird X zu einer stetigen Zufallsvariable.

Falls die Werte von X als Ergebnisse eines Zufallsvorgangs resultieren, wird X zu einer stetigen Zufallsvariable. Sttistik I für Sttistiker, Mthemtiker und Informtiker Lösungen zu Bltt 11 Gerhrd Tutz, Jn Ulbricht, Jn Gertheiss WS 7/8 Theorie: Stetige Zufllsvriblen Begriff Stetigkeit: Eine Vrible oder ein Merkml X

Mehr

Endliche Automaten. Prof. Dr. W. Vogler. Sommersemester 2007

Endliche Automaten. Prof. Dr. W. Vogler. Sommersemester 2007 Endliche Automten Prof. Dr. W. Vogler Sommersemester 2007 1 INHALTSVERZEICHNIS i Inhltsverzeichnis 1 Wörter und Monoide 1 2 Endliche Automten 4 3 Anwendung: Diophntische Gleichungen 9 4 Minimierung endlicher

Mehr

Brückenkurs Lineare Gleichungssysteme und Vektoren

Brückenkurs Lineare Gleichungssysteme und Vektoren Brückenkurs Linere Gleichungssysteme und Vektoren Dr Alessndro Cobbe 30 September 06 Linere Gleichungssyteme Ws ist eine linere Gleichung? Es ist eine lgebrische Gleichung, in der lle Vriblen nur mit dem

Mehr

Digitaltechnik. 3 Sequenzielle. Schaltungen. Revision 1.1

Digitaltechnik. 3 Sequenzielle. Schaltungen. Revision 1.1 igitltechnik 3 Sequenzielle Schltungen A Revision 1.1 Trnsitionssysteme Synchroner sequenzieller Entwurf Timing-Anlyse Pipelining Mely und Moore Mschinen Zustndsmschinen in Verilog Sequentielle Schltungen

Mehr

4 Parser und Übersetzer

4 Parser und Übersetzer 4 Prser und Übersetzer Ein Prser ist ein Progrmm, ds eine Zeichenreihe in ihre syntktischen Bestndteile zerlegt und erkennt, ob die Zeichenreihe vorgegebenen Syntxregeln entspricht oder nicht. Ein Übersetzer

Mehr

- 1 - VB Inhaltsverzeichnis

- 1 - VB Inhaltsverzeichnis - - VB Inhltsverzeichnis Inhltsverzeichnis... Die Inverse einer Mtrix.... Definition der Einheitsmtrix.... Bedingung für die inverse Mtrix.... Berechnung der Inversen Mtrix..... Ds Verfhren nch Guß mit

Mehr

Kapitel 10. Integration. Josef Leydold Mathematik für VW WS 2015/16 10 Integration 1 / 35

Kapitel 10. Integration. Josef Leydold Mathematik für VW WS 2015/16 10 Integration 1 / 35 Kpitel 0 Integrtion Josef Leydold Mthemtik für VW WS 205/6 0 Integrtion / 35 Flächeninhlt Berechnen Sie die Inhlte der ngegebenen Flächen! f (x) = Fläche: A = f (x) = +x 2 Approximtion durch Treppenfunktion

Mehr

11.1 Kontextsensitive und allgemeine Grammatiken

11.1 Kontextsensitive und allgemeine Grammatiken Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert

Mehr

Spiele und logische Komplexitätsklassen

Spiele und logische Komplexitätsklassen Spiele und logische Komplexitätsklssen Mrtin Horsch 26. Jnur 2006 Inhlt des Seminrvortrges Ehrenfeucht-Frïssé-Spiel mit k Mrken Formeln mit k Vrilen und logische Komplexitätsklssen k-vrileneigenschft logischer

Mehr

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S Formale Grundlagen (WIN) Franz Binder Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Das Alphabet Σ sei eine endliche

Mehr

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage Alfred V. Aho Monic S. Lm Rvi Sethi Jeffrey D. Ullmn it informtik Compiler Prinzipien, Techniken und Werkzeuge 2., ktulisierte Auflge Lexiklische Anlyse 3.1 Die Rolle des Lexers... 135 3.2 Eingbepuffer...

Mehr

Prozeßalgebren. Prof. Dr. Ursula Goltz

Prozeßalgebren. Prof. Dr. Ursula Goltz Prozeßlgebren Prof Dr Ursul Goltz Stnd: 24 Oktober 2012 Vorwort Ds vorliegende Skript ist die Ausrbeitung einer Vorlesung, die wesentliche Grundbegriffe us dem weiten Feld der Prozeßlgebren einführt Dbei

Mehr

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

Vorkurs Mathematik DIFFERENTIATION

Vorkurs Mathematik DIFFERENTIATION Vorkurs Mthemtik 6 DIFFERENTIATION Beispiel (Ableitung von sin( )). Es seien f() = sin g() = h() =f(g()) = sin. (f () =cos) (g () =) Also ist die Ableitung von h: h () =f (g())g () =cos = cos. Mn nennt

Mehr

Teil V: Formale Sprachen

Teil V: Formale Sprachen Formle Sprchen Teil V: Formle Sprchen 1. Sprchen und Grmmtiken 2. Endliche Automten Frnz-Josef Rdermcher & Uwe Schöning, Fkultät für Ingeneurwissenschften und Informtik, Universität Ulm, 2008/09 Formle

Mehr

6.4 Klassendiagramme in UML Übersicht

6.4 Klassendiagramme in UML Übersicht 6.4 Klssendigrmme in UML Übersicht Mod-6.19 1. UML (Unified Modelling Lnguge): die derzeit wichtigste Sprche zur Modellierung von Systemen 2. Als Zusmmenfssung mehrerer Modellierungssprchen 1997 in der

Mehr

Grundlagen in Mathematik für die 1. Klassen der HMS und der FMS

Grundlagen in Mathematik für die 1. Klassen der HMS und der FMS Grundlgen in Mthemtik für die. Klssen der HMS und der FMS Einleitung In der Mthemtik wird häufig uf bereits Gelerntem und Beknntem ufgebut. Wer die Grundlgen nicht beherrscht, ht deshlb oft Mühe und Schwierigkeiten,

Mehr

Logarithmen zu speziellen und häufig gebrauchten Basen haben eigene Namen: Der Logarithmus zur Basis 10 heißt dekadischer oder Zehnerlogarithmus:

Logarithmen zu speziellen und häufig gebrauchten Basen haben eigene Namen: Der Logarithmus zur Basis 10 heißt dekadischer oder Zehnerlogarithmus: 0 Dr Andres M Seifert Sternstunden in Mthe, Physik und Technik wwwsternstunden-odenwldde Logrithmen Die Gleichung vom Typ b wird mit Hilfe des Logrithmus gelöst Der Logrithmus von zur Bsis b ist die Zhl,

Mehr

Differenzial- und Integralrechnung III

Differenzial- und Integralrechnung III Differenzil- und Integrlrechnung III Riner Huser April 2012 1 Einleitung 1.1 Polynome und Potenzfunktionen Die Polynome oder Polynomfunktionen lssen sich durch die endliche Anzhl von n+1 Prmetern i R in

Mehr

Mathematik. Name, Vorname:

Mathematik. Name, Vorname: Kntonsschule Zürich Birch Fchmittelschule Aufnhmeprüfung 2007 Nme, Vornme: Nr.: Zeit: 90 Minuten erlubte Hilfsmittel: Tschenrechner us der Sekundrschule, lso weder progrmmierbr noch grfik- oder lgebrfähig

Mehr

Universität Stuttgart Wintersemester 2014/2015

Universität Stuttgart Wintersemester 2014/2015 Universität Stuttgrt Wintersemester 2014/2015 Fkultät 5, Institut IPVS Christoph Stch Übungen zu PSE ufgbenbltt 1. EBNF I Gegeben sei dieses Regelsystem einer EBNF: S = B c B ; = ( C); B = ( b b B); C

Mehr

Übungen zu Wurzeln III

Übungen zu Wurzeln III A.Nenner rtionl mchen: Nenner ist Qudrtwurzel: 5 bc 1.).).).) 5.) 1 15 9 bc.).) 8.) 9.) 10.) 5 5 B.Nenner rtionl mchen: Nenner ist höhere Wurzel: 1 1 9 5 1 1.).).).) 5.).) 5 C.Nenner rtionl mchen: Nenner

Mehr

8. Sprachhierarchien und Komplexität

8. Sprachhierarchien und Komplexität Kpitel 8: Sprchhierrchien und Komplexität 129 8 Sprchhierrchien und Komplexität 81 Formlismus der PS-grmmr 811 Ursprüngliche Definition Von dem meriknischen Logiker E Post 1936 ls rewrite oder Post production

Mehr

13 Rekonfigurierende binäre Suchbäume

13 Rekonfigurierende binäre Suchbäume 13 Rekonfigurierende inäre Suchäume U.-P. Schroeder, Uni Pderorn inäräume, die zufällig erzeugt wurden, weisen für die wesentlichen Opertionen Suchen, Einfügen und Löschen einen logrithmischen ufwnd uf.

Mehr

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19 1/19 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 16. Januar 2008 2/19 Reguläre Ausdrücke vierte Art (neben Typ-3-Grammatiken, deterministischen und nicht-deterministischen

Mehr

c dl SPiC (Teil C, SS 11) 13 Zeiger und Felder 13.1 Zeiger Einführung 13 1 Zeigervariable := Behälter für Verweise ( Adresse) Beispiel int x = 5;

c dl SPiC (Teil C, SS 11) 13 Zeiger und Felder 13.1 Zeiger Einführung 13 1 Zeigervariable := Behälter für Verweise ( Adresse) Beispiel int x = 5; Überblick: Teil C Systemnhe Softwreentwicklung Einordnung: Zeiger (Pointer) Literl: Drstellung eines Wertes 0110 0001 12 Progrmmstruktur und Module Vrible: Bezeichnung chr ; eines Dtenobjekts Behälter

Mehr

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ. Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ. (ii) ε ist ein regulärer Ausdruck über Σ. (iii) Für jedes a Σ ist a ein regulärer

Mehr

A.25 Stetigkeit und Differenzierbarkeit ( )

A.25 Stetigkeit und Differenzierbarkeit ( ) A.5 Stetigkeit / Differenzierbrkeit A.5 Stetigkeit und Differenzierbrkeit ( ) Eine Funktion ist wenn die Kurve nicht unterbrochen wird, lso wenn mn sie zeichnen knn, ohne den Stift vom Bltt bzusetzen.

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Flächenberechnung - Umfang und Fläche von Rechteck und Quadrat

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Flächenberechnung - Umfang und Fläche von Rechteck und Quadrat Unterrichtsmterilien in digitler und in gedruckter Form Auszug us: Flächenberechnung - Umfng und Fläche von Rechteck und Qudrt Ds komplette Mteril finden Sie hier: Downlod bei School-Scout.de Inhltsverzeichnis

Mehr

Boole'sche Algebra. Inhaltsübersicht. Binäre Funktionen, Boole'sche Algebren, Schaltalgebra. Verknüpfungen der mathematischen Logik

Boole'sche Algebra. Inhaltsübersicht. Binäre Funktionen, Boole'sche Algebren, Schaltalgebra. Verknüpfungen der mathematischen Logik Boole'sche Algebr Binäre Funktionen, Boole'sche Algebren, Schltlgebr Inhltsübersicht Verknüpfungen der mthemtischen Logik Boole sche Algebren Grundelemente der Schltlgebr Regeln der Schltlgebr Normlformen

Mehr

UNIVERSITÄT KARLSRUHE Institut für Analysis HDoz. Dr. P. C. Kunstmann Dipl.-Math. M. Uhl. Sommersemester 2009

UNIVERSITÄT KARLSRUHE Institut für Analysis HDoz. Dr. P. C. Kunstmann Dipl.-Math. M. Uhl. Sommersemester 2009 UNIVERSIÄ KARLSRUHE Institut für Anlysis HDoz. Dr. P. C. Kunstmnn Dipl.-Mth. M. Uhl Sommersemester 9 Höhere Mthemti II für die Fchrichtungen Eletroingenieurwesen, Physi und Geodäsie inlusive Komplexe Anlysis

Mehr

4 Stetigkeit. 4.1 Intervalle

4 Stetigkeit. 4.1 Intervalle 4 Stetigkeit Der Grenzwertbegriff für Zhlenfolgen lässt sich uf Funktionen übertrgen. Funktionen (oder Abbildungen) wren bereits im Kpitel über Mengen ufgetreten. Hier wird nun der Fll betrchtet, dss Definitionsbereich

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

LUDWIG-MAXIMILIANS-UNIVERSITÄT MÜNCHEN. 7. Übung/Lösung Mathematik für Studierende der Biologie 25.11.2015

LUDWIG-MAXIMILIANS-UNIVERSITÄT MÜNCHEN. 7. Übung/Lösung Mathematik für Studierende der Biologie 25.11.2015 LUDWIG-MAXIMILIANS-UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR BIOLOGIE Prof. Anres Herz, Dr. Stefn Häusler emil: heusler@biologie.uni-muenchen.e Deprtment Biologie II Telefon: 089-280-74800 Großhernerstr. 2 Fx:

Mehr

1. Formale Sprachen Formale Sprachen

1. Formale Sprachen Formale Sprachen 1. Formle Sprchen Formle Sprchen 1. Formle Sprchen 1.1. Ws ist eine formle Sprche? Wenn mn einen Gednken in einer ntürlichen Sprche usdrücken will, kommt es im wesentlichen uf 2 Aspekte n: 1. Der korrekte

Mehr

Versuchsumdruck. Schaltungsvarianten des Operationsverstärkers

Versuchsumdruck. Schaltungsvarianten des Operationsverstärkers Hchschule STDIENGANG Wirtschftsingenieurwesen Bltt n 6 Aschffenburg Prf. Dr.-Ing.. Bchtler, Armin Huth Versuch 2 Versin. m 23.3.2 Versuchsumdruck Schltungsrinten des Opertinserstärkers Inhlt Verwendete

Mehr

Entwurf und Realisierung analoger und digitaler Filter

Entwurf und Realisierung analoger und digitaler Filter Signl- und Messwert- Verrbeitung Dr. K. Schefer Entwurf und Relisierung nloger und digitler Filter Im Rhmen dieses Versuchs wollen wir uns mit der Dimensionierung von nlogen und digitlen Filtern und mit

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften

Mehr

Identifizierbarkeit von Sprachen

Identifizierbarkeit von Sprachen FRIEDRICH SCHILLER UNIVERSITÄT JENA Fkultät für Mthemtik und Informtik INSTITUT für INFORMATIK VORLESUNG IM WINTERSEMESTER STOCHASTISCHE GRAMMATIKMODELLE Ernst Günter Schukt-Tlmzzini 06. Quelle: /home/schukt/ltex/folien/sprchmodelle-00/ssm-06.tex

Mehr

1KOhm + - y = x LED leuchtet wenn Schalter x gedrückt ist

1KOhm + - y = x LED leuchtet wenn Schalter x gedrückt ist . Ohm = LED leuchtet wenn chlter gedrückt ist 2. Ohm = NICH ( = NO ) LED leuchtet wenn chlter nicht gedrückt ist = ist die Negtion von? Gibt es so einen kleinen chlter (Mikrotster)? 2. Ohm = UND LED leuchtet

Mehr

Exportmodul Artikel-Nr.: 20208

Exportmodul Artikel-Nr.: 20208 Seite 1 / 5 V5.32 Exportmodul Artikel-Nr.: 20208 Erweiterungsmodul für ds ELV-TimeMster Komplettsystem Hndbuch und Beschreibungen Ab der Version 5 befinden sich die Kurznleitung und ds gesmte Hndbuch ls

Mehr

Mathematik schriftlich

Mathematik schriftlich WS KV Chur Abschlussprüfungen 00 für die Berufsmtur kufmännische Richtung Mthemtik schriftlich LÖSUNGEN Kndidtennummer Nme Vornme Dtum der Prüfung Bewertung mögliche erteilte Punkte Punkte. Aufgbe 0. Aufgbe

Mehr

Unterrichts- und Prüfungsplanung M306 Modulverantwortlicher: Beat Kündig Modulpartner: R. Rubin

Unterrichts- und Prüfungsplanung M306 Modulverantwortlicher: Beat Kündig Modulpartner: R. Rubin Dokument Dtum (Version) Gültig für 200 / 0 Seite von 7 Unterrichts- und Prüfungsplnung M306 Modulverntwortlicher: Bet Kündig Modulprtner: R. Rubin Lernschritt-Nr. Hndlungsziele Zielsetzung unter Berücksichtigung

Mehr

Sponsored Search Markets

Sponsored Search Markets Sponsored Serch Mrkets ngelehnt n [EK1], Kpitel 15 Seminr Mschinelles Lernen, WS 21/211 Preise Slots b c Interessenten y z 19. Jnur 211 Jn Philip Mtuschek Sponsored Serch Mrkets Folie 1 Them dieses Vortrgs

Mehr

Automaten, Spiele, und Logik

Automaten, Spiele, und Logik Automaten, Spiele, und Logik Woche 2 25. April 2014 Inhalt der heutigen Vorlesung 1. Reguläre Ausdrücke 2. der Satz von Kleene 3. Brzozowski Methode 4. grep und perl Reguläre Ausdrücke Rekursive Definition,

Mehr

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN Universität Heidelberg / Institut für Informatik 7. Juli 24 Prof. Dr. Klaus Ambos-Spies Nadine Losert Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 2 LÖSUNGEN Aufgabe Verwenden

Mehr

2.4 Kontextsensitive und Typ 0-Sprachen

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

Mehr

Analysis mit dem Voyage 1

Analysis mit dem Voyage 1 Anlysis mit dem Voyge 1 1. Kurvendiskussion Gegeben ist die Funktionschr Den Nenner erhält mn mit Hilfe der Funktion getdenom. Zeros liefert die Nullstellen des Nenners und dmit die Werte, die us dem Definitionsbereich

Mehr

Integralrechnung. www.mathe-total.de. Aufgabe 1

Integralrechnung. www.mathe-total.de. Aufgabe 1 Integrlrechnung Aufgbe Bestimme die Fläche zwischen der Kurve der Funktion f() = und -Achse über dem Intervll I = [; 3] näherungsweise. Bestimme die Obersumme und Teile ds Intervll I in drei gleich große

Mehr

Thema 13 Integrale, die von einem Parameter abhängen, Integrale von Funktionen auf Teilmengen von R n

Thema 13 Integrale, die von einem Parameter abhängen, Integrale von Funktionen auf Teilmengen von R n Them 13 Integrle, die von einem Prmeter bhängen, Integrle von Funktionen uf Teilmengen von R n Wir erinnern drn, dß eine Funktion h : [, b] R eine Treppenfunktion ist, flls es eine Unterteilung x < x 1

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

3 Module in C. 4 Gültigkeit von Namen. 5 Globale Variablen (2) Gültig im gesamten Programm

3 Module in C. 4 Gültigkeit von Namen. 5 Globale Variablen (2) Gültig im gesamten Programm 3 Module in C 5 Glole Vrilen!!!.c Quelldteien uf keinen Fll mit Hilfe der #include Anweisung in ndere Quelldteien einkopieren Bevor eine Funktion us einem nderen Modul ufgerufen werden knn, muss sie deklriert

Mehr

Theoretische Informatik Testvorbereitung Moritz Resl

Theoretische Informatik Testvorbereitung Moritz Resl Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen

Mehr

Bestimmtes (Riemannsches) Integral / Integral als Grenzwert einer Summe : Bedeutung: Fläche unter einer Funktion innerhalb bestimmter Grenzen

Bestimmtes (Riemannsches) Integral / Integral als Grenzwert einer Summe : Bedeutung: Fläche unter einer Funktion innerhalb bestimmter Grenzen III. Integrlrechnung : Bestimmtes (Riemnnsches Integrl / Integrl ls Grenzwert einer Summe : Bedeutung: Fläche unter einer Funktion innerhl estimmter Grenzen yf( y n y n ( Δ Berechnung der Fläche A unter

Mehr

Grundwissen am Ende der Jahrgangsstufe 9. Wahlpflichtfächergruppe II / III

Grundwissen am Ende der Jahrgangsstufe 9. Wahlpflichtfächergruppe II / III Grundwissen m Ende der Jhrgngsstufe 9 Whlpflichtfächergruppe II / III Funktionsbegriff Gerdengleichungen ufstellen und zu gegebenen Gleichungen die Grphen der Gerden zeichnen Ssteme linerer Gleichungen

Mehr

4 Die Integralfunktion*

4 Die Integralfunktion* Übungsmteril 1 Die Integrlfuntion* In den vorigen Kpiteln hben wir bereits ds unbestimmte und ds bestimmte Integrl und deren Eigenschften ennengelernt. Ersteres liefert die Menge der Stmmfuntionen einer

Mehr

Monte Carlo Methoden. Kapitel 3. 3.1 Simple Sampling

Monte Carlo Methoden. Kapitel 3. 3.1 Simple Sampling Kpitel 3 Monte Crlo Methoden Historisch wird der Begriff der Monte Crlo Methode 1947 geprägt [38] 1 und zum ersten MlzweiJhrespäter im Titel einer Veröffentlichung verwendet [39]. Wie der Nme nklingen

Mehr

-25/1- DIE RÖHRENDIODE

-25/1- DIE RÖHRENDIODE -25/1- DIE RÖHRENDIODE ufgben: Messverfhren: Vorkenntnisse: Lehrinhlt: Litertur: ufnhme der Kennlinie einer Röhrendiode und einiger rbeitskennlinien. Bestimmung des Exponenten der Schottky-Lngmuirschen

Mehr

Numerische Mathematik I

Numerische Mathematik I Numerische Mthemtik I Dr. Wolfgng Metzler Universität Kssel unter Mitwirkung von Dipl.-Mth. Mrtin Steigemnn Sommersemester 2005 ii c 2005 Dr. Wolfgng Metzler, Fchbereich Mthemtik und Informtik der Universität

Mehr

Dreiecke als Bausteine

Dreiecke als Bausteine e ls usteine Jedes Viereck lässt sich in zwei e zerlegen. Wirklich jedes? Konstruktion eines s bei drei beknnten Seiten bmessen einer Strecke mit dem Geodreieck. Zirkelschlg um einen Punkt mit der zweiten

Mehr

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.

Mehr

Kapitel 13. Taylorentwicklung Motivation

Kapitel 13. Taylorentwicklung Motivation Kpitel 13 Tylorentwicklung 13.1 Motivtion Sei D R offen. Sie erinnern sich: Eine in D stetig differenzierbre Funktion f : D R wird durch die linere Funktion g(x) = f() + f ()(x ) in einer Umgebung von

Mehr

Theoretische Informatik. Reguläre Sprachen und Automaten

Theoretische Informatik. Reguläre Sprachen und Automaten Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante

Mehr

Mathe Warm-Up, Teil 1 1 2

Mathe Warm-Up, Teil 1 1 2 Mthe Wrm-Up, Teil 1 1 2 HEUTE: 1. Elementre Rechenopertionen: Brüche, Potenzen, Logrithmus, Wurzeln 2. Summen- und Produktzeichen 3. Gleichungen/Ungleichungen 1 orientiert sich n den Kpiteln 3,4,6,8 des

Mehr

Nutzung der Abwärme aus Erneuerbare-Energie-Anlagen

Nutzung der Abwärme aus Erneuerbare-Energie-Anlagen 5 2014 Sonderdruck us BWK 5-2014 Wichtige Kennzhlen und effiziente Plnung für die dezentrle Wärmewende Nutzung der Abwärme us Erneuerbre-Energie-Anlgen Wichtige Kennzhlen und effiziente Plnung für die

Mehr

311 Leistungsanpassung

311 Leistungsanpassung Physiklisches Grundprktikum 311 Leistungsnpssung 1. Aufgben 1.1 Mit einem Wechselspnnungsgenertor ist ein Verbrucher (Schiebewiderstnd) zu speisen. Dessen Leistungsufnhme P ist in Abhängigkeit seines Widerstndswertes

Mehr

b f(x)p(x) dx = f(ξ) 2e 2 , Hess f (2, 0) =

b f(x)p(x) dx = f(ξ) 2e 2 , Hess f (2, 0) = Es seien U R n offen und ψ : U R n stetig differenzierbr. Weiter sei f : U R zweiml stetig differenzierbr. Kennzeichnen Sie whre Aussgen mit W und flsche Aussgen mit F. F Flls dψ(x) ein Isomorphismus für

Mehr

Theoretische Informatik 2

Theoretische Informatik 2 Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder

Mehr

Schriftliche Prüfungsarbeit zum mittleren Schulabschluss 2007 im Fach Mathematik

Schriftliche Prüfungsarbeit zum mittleren Schulabschluss 2007 im Fach Mathematik Sentsverwltung für Bildung, Wissenschft und Forschung Schriftliche Prüfungsrbeit zum mittleren Schulbschluss 007 im Fch Mthemtik 30. Mi 007 Arbeitsbeginn: 10.00 Uhr Berbeitungszeit: 10 Minuten Zugelssene

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten

Mehr