TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK. Compilerbau I. Dr. Michael Petter, Dr. Axel Simon. SoSe / 160
|
|
- Siegfried Ritter
- vor 6 Jahren
- Abrufe
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
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
MehrFORMALE 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
MehrLö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,
MehrAutomaten 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
Mehrdem 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 {}
MehrPrä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
MehrUmwandlung 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.
MehrDeterministische 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
MehrEndliche 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,
Mehr5. Ü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
MehrDef.: 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.
MehrHausaufgabe 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
Mehr1 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.
MehrSeminar 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
MehrDefinition 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
MehrVorlesung. 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
Mehr2. 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
Mehr1. 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
MehrTheoretische 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
Mehr14 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
Mehr1.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
MehrRegulä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,
MehrVersuchsplanung. 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
Mehr8 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
MehrRekursiv 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
MehrProtokoll 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. : &
MehrDomä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
Mehr1 Σ 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
MehrKontextsensitive 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
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrFalls 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
MehrEndliche 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
MehrBrü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
MehrDigitaltechnik. 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
Mehr4 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
- - 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
MehrKapitel 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
Mehr11.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
MehrSpiele 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
MehrFormale 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
MehrAlfred 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...
MehrProzeß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
MehrKapitel 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
MehrVorkurs 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
MehrTeil 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
Mehr6.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
MehrGrundlagen 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,
MehrLogarithmen 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,
MehrDifferenzial- 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
MehrMathematik. 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
MehrUniversitä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
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
Mehr8. 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
Mehr13 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.
MehrFormale 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
Mehrc 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
MehrDefinition (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
MehrA.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.
MehrUnterrichtsmaterialien 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
MehrBoole'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
MehrUNIVERSITÄ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
Mehr4 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
MehrProgrammiersprachen 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
MehrLUDWIG-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:
Mehr1. 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
MehrVersuchsumdruck. 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
MehrEntwurf 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
Mehr1 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
MehrIdentifizierbarkeit 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
Mehr1KOhm + - 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
MehrExportmodul 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
MehrMathematik 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
MehrUnterrichts- 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
MehrSponsored 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
MehrAutomaten, 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
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
Mehr2.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
MehrAnalysis 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
MehrIntegralrechnung. 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
MehrThema 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
Mehr8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
Mehr3 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
MehrTheoretische 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
MehrBestimmtes (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
MehrGrundwissen 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
Mehr4 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
MehrMonte 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 ufgben: Messverfhren: Vorkenntnisse: Lehrinhlt: Litertur: ufnhme der Kennlinie einer Röhrendiode und einiger rbeitskennlinien. Bestimmung des Exponenten der Schottky-Lngmuirschen
MehrNumerische 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
MehrDreiecke 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
MehrSatz 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.
MehrKapitel 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
MehrTheoretische 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
MehrMathe 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
MehrNutzung 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
Mehr311 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
Mehrb 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
MehrTheoretische 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
MehrSchriftliche 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
MehrFormale 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