Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Kathrin Gieseking Geändert vor über 10 Jahren
1
Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus, Lehrstuhl Grafische Systeme
2
1. Begriff "Programmierparadigma" Kurth Göttingen, 30. 11. 2007
3
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen Kurth Göttingen, 30. 11. 2007
4
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL Kurth Göttingen, 30. 11. 2007
5
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele Kurth Göttingen, 30. 11. 2007
6
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma Kurth Göttingen, 30. 11. 2007
7
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Kurth Göttingen, 30. 11. 2007
8
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 1.Der Begriff "Programmierparadigma" Paradigma: grundlegende Denkweise
9
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Paradigma: "Beschreibt eine Menge von Theorien, Standards und Methoden, die gemeinsam einen Weg repräsentieren, Wissen zu organisieren" Thomas Kuhn 1970: The Structure of Scientific Revolutions
10
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Paradigma: "Beschreibt eine Menge von Theorien, Standards und Methoden, die gemeinsam einen Weg repräsentieren, Wissen zu organisieren" Thomas Kuhn 1970: The Structure of Scientific Revolutions Paradigmenwechsel: schwierig. Revolution im Denken!
11
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung wurde aufgegriffen von Robert Floyd 1978: Turing Award Lecture "The Paradigms of Programming" Robert W. Floyd (1936-2001) Bildquelle: http://delivery.acm.org/10.1145/1290000/1283934/a1978- floyd.pdf?key1=1283934&key2=6725076911&coll=GUIDE&dl=GUIDE&CFID=45530762&CFTOKEN= 68670312
12
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Welche Paradigmen werden nahegelegt durch Probleme...... der Ökologie ?... der Grafik ?
13
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Bildquelle: www.lusttoeter.de /images/rehli.jpg (20.11.2007)
14
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen
15
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen Aufbau beschreiben
16
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Aufbau beschreiben
17
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen
18
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Prozesse Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen
19
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Prozesse Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen Ablauf berechnen
20
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Grafisches System:
21
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Grafisches System: Objekte (mit Attributen) regelmäßige Strukturen Prozesse
22
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 2. Einige wichtige Programmierparadigmen -für numerische Simulation von Prozessen: imperatives Paradigma
23
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 2. Einige wichtige Programmierparadigmen -für numerische Simulation von Prozessen: imperatives Paradigma (auch: von-Neumann-Paradigma, Kontrollfluss-Paradigma) John von Neumann (1903-1957) Bildquelle: hps.elte.hu/~redei/Utrecht/JVN1950S%20.jpg (20.11.2007)
24
"Befehls-Programmierung" Computer = ? 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung imperativ:
25
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten (diese Veränderungen können Seiteneffekte haben). 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
26
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten (diese Veränderungen können Seiteneffekte haben). Programm = ? 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
27
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten (diese Veränderungen können Seiteneffekte haben). Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
28
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten (diese Veränderungen können Seiteneffekte haben). Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmiersprachen, die dieses Paradigma unterstützen: Fortran, Pascal, C,..., Teile von Java,... 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
29
Beispiel: x = 0; while (x < 100) x = x + 1; Inhalt der Variable x wird verändert Schleife legt Kontrollfluss fest Beachte: "=" steht hier nicht für math. Gleichheit, sondern für Zuweisung (prozesshaft)! 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
30
(ein) Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
31
(ein) Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch R neu = f(R, B), B neu = g(R, B) Anfängerfehler beim Programmieren: for (i =... ) { R = f(R, B); B = g(R, B); }
32
(ein) Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch R neu = f(R, B), B neu = g(R, B) Anfängerfehler beim Programmieren: for (i =... ) { R = f(R, B); B = g(R, B); }
33
Beispiel für imperatives Grafik-Programmieren: Turtle-Geometrie 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Turtle: zeichnende Schildkröte, die auf Befehle hört Variablen: Position, Orientierung, Schrittweite,...
34
Turtle: 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
35
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0
36
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0
37
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90)
38
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90)
39
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90) F0
40
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90) F0
41
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90) F0 RU(90) LMul(0.5) F0
42
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90) F0 RU(90) LMul(0.5) F0
43
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung anderes Beispiel: for ((1:20)) ( for ((1:36)) ( F0 RU(165) F0 RU(165) ) RU(270) )
44
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung anderes Beispiel: for ((1:20)) ( for ((1:36)) ( F0 RU(165) F0 RU(165) ) RU(270) )
45
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen
46
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen head left up
47
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen RH RL RU
48
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung zurück zum Beispiel: Objekte (mit Attributen) Organismen
49
Objektorientiertes Paradigma Computer = Umgebung für virtuelle Objekte Programm = Auflistung von (Objekt-) Klassen, d.h. allgemeiner Spezifikationen von Objekten Programmiersprachen: Smalltalk, Simula, C++, Java,... 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
50
Beispiel: class Blatt { float blattflaeche; float trockenmasse; float npp() {..... } void seneszenz() {..... } } 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
51
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung regelmäßige Strukturen
52
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
53
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Programm = Menge von Transformationsregeln 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
54
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Programm = Menge von Transformationsregeln Programmiersprachen: L-System-Sprachen, KI-Sprachen, Prolog,... 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
55
Regelsysteme zur Ersetzung von Zeichen in Zeichenketten Beispiel: L-Systeme (Lindenmayer-Systeme) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
56
Regelsysteme zur Ersetzung von Zeichen in Zeichenketten in jedem Arbeitsschritt parallele Ersetzung aller Zeichen, auf die eine Regel anwendbar ist von A. Lindenmayer (Botaniker) 1968 eingeführt Beispiel: L-Systeme (Lindenmayer-Systeme) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Aristid Lindenmayer (1925-1989) Bildquelle: home.wtal.de/schwebin/lsyspics/einflsys01.jpg (20.11.2007)
57
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB
58
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB A
59
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB A
60
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB B
61
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB B
62
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB AB
63
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB AB parallele Ersetzung
64
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB
65
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB
66
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB ABBAB
67
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB Ableitungskette: A B AB BAB ABBAB BABABBAB ABBABBABABBAB BABABBABABBABBABABBAB...
68
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Startwort A Regelmenge: A B B AB Ableitungskette: A B AB BAB ABBAB BABABBAB ABBABBABABBAB BABABBABABBABBABABBAB... wie lang ist die n-te Zeichenkette in dieser Ableitung?
69
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Geometrische Interpretation von L-Systemen Turtle-Befehlsvorrat wird Teilmenge des L-System-Alphabets Symbole, die nicht Turtle-Befehle sind, werden von der Turtle ignoriert. Verbindung mit dem imperativen Paradigma für die Grafik:
70
Beispiel für ein Fraktal: Koch'sche Kurve Start RU(90) F(10); F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
71
Beispiel für ein Fraktal: Koch'sche Kurve Start RU(90) F(10); F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
72
Beispiel für ein Fraktal: Koch'sche Kurve Start RU(90) F(10); F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
73
Beispiel für ein Fraktal: Koch'sche Kurve Start RU(90) F(10); F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
74
Beispiel für ein Fraktal: Koch'sche Kurve Start RU(90) F(10); F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
75
Beispiel für ein Fraktal: Koch'sche Kurve Start RU(90) F(10); F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung.
76
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel: Fichtenmodell (3D) mit L-System erzeugt (auf Basis von Messungen)
77
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung ein anderer regelbasierter Mechanismus: Graph-Grammatiken
78
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung ein anderer regelbasierter Mechanismus: Graph-Grammatiken Regel:
79
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung ein anderer regelbasierter Mechanismus: Graph-Grammatiken Regel: Anwendung:
80
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen
81
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen imperativ
82
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen imperativ - Veränderung von Variablen - Turtle-Geometrie
83
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen imperativ - Veränderung von Variablen - Turtle-Geometrie objektorientiert
84
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen imperativ - Veränderung von Variablen - Turtle-Geometrie objektorientiert regelbasiert
85
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen imperativ - Veränderung von Variablen - Turtle-Geometrie objektorientiert regelbasiert - L-Systeme - Graph-Grammatiken
86
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung: Programmierparadigmen imperativ - Veränderung von Variablen - Turtle-Geometrie objektorientiert regelbasiert - L-Systeme - Graph-Grammatiken weitere: funktional; nebenläufig; chemisch...
87
3. Synthese: Die Sprache XL eXtended L-system language Programmiersprache, die parallele Graph- Grammatiken einfach verfügbar macht 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
88
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung imperativobjektorientiertregelbasiert Java
89
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung imperativobjektorientiertregelbasiert Java XL
90
Die Sprache XL Sprachspezifikation: Kniemeyer (2007) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ole Kniemeyer (1977- )
91
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte
92
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich
93
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich Beispiel: Regeln für einen stochastischen Baum Start ==> L(100) D(5) A; A ==> F0 LMul(0.7) DMul(0.7) if (probability(0.5)) ( [ RU(50) A ] [ RU(-10) A ] ) else ( [ RU(-50) A ] [ RU(10) A ] );
94
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich parallele Regelanwendung
95
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich parallele Regelanwendung parallele Ausführung von Zuweisungen möglich
96
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich parallele Regelanwendung parallele Ausführung von Zuweisungen möglich nochmal das Beispiel von Floyd: Räuber-Beute-System, beschrieben durch R neu = f(R, B), B neu = g(R, B) in XL korrekt: R := f(R, B); B := g(R, B);
97
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich parallele Regelanwendung parallele Ausführung von Zuweisungen möglich mengenwertige Ausdrücke
98
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte Steuerung der Regelanwendung durch Kontrollstrukturen möglich parallele Regelanwendung parallele Ausführung von Zuweisungen möglich mengenwertige Ausdrücke Graph-Abfragen (queries) zur Analyse der aktuellen Struktur
99
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ein XL-Compiler wird zur Verfügung gestellt von der freien Software GroIMP (Growth-grammar related Interactive Modelling Platform) http://www.grogra.de dort auch Link auf Download-Seite
100
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 4. Anwendungsbeispiele
101
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 4. Anwendungsbeispiele -realistische Darstellung eines Brettspiels Mensch ärgere dich nicht (Kniemeyer 2007, AGTIVE'07 Tool Contest)
107
.
112
.
113
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Spielzüge durch Regeln gesteuert
114
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Spielzüge durch Regeln gesteuert Figuren, Spielfelder etc. sind Objekte
115
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Spielzüge durch Regeln gesteuert Figuren, Spielfelder etc. sind Objekte Prozesse sind imperativ programmiert, z.B. Raytracing für die realistische Darstellung des Spielfeldes
116
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Regeln für Verhalten
117
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Regeln für Verhalten z.B. Schwarm-Organismen virtual birds = boids
118
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Realisierung in XL leicht möglich (Hemmerling 2007) Schwarm-Organismen Regeln: orientiere dich zum Schwarmzentrum halte gleiche Richtung ein wie der Schwarm weiche nächstem Nachbar aus wenn ein Leittier vorhanden ist: folge dem Leittier passe Geschwindigkeit der des Leittiers an
119
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung zahlreiche Grafik-Anwendungen einfach realisierbar, z.B. virtuelles Wachstum entlang einer Oberfläche (regelgesteuert) Bischof 2006
120
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 5. Das VR-Paradigma VR = Virtual Reality interaktives Paradigma
121
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 5. Das VR-Paradigma VR = Virtual Reality interaktives Paradigma Erweiterung des objektorientierten Paradigmas Vorstellung: Der Benutzer wird Teil der virtuellen Welt und erlebt die Objekte als real
122
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Interaktivität
123
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Interaktivität Immersion
124
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Interaktivität Immersion virtuelle Raumzeit
125
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Interaktivität Immersion virtuelle Raumzeit Identifikation mit einem Objekt der virtuellen Welt (Avatar)
126
Beispiel: Virtual Forester (Lanwert 2007) Einsatz geplant im E-Learning an der Fakultät für Forstwissenschaften und Waldökologie (noch in der Experimentalphase) 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung
127
Virtual Forester: Bestandesbeschreibung auf Basis von VRML forstliche Eingriffe in den Bestand interaktiv möglich Multiuser-fähig (Client-Server-Prinzip) Kopplung mit Wachstumsmodell auf Server (z.Zt. in XL programmiertes Modell, austauschbar)
128
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung
129
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen
130
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen imperativ, objektorientiert, regelbasiert
131
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen imperativ, objektorientiert, regelbasiert - regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten
132
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen imperativ, objektorientiert, regelbasiert - regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten Sprache XL - vereint die drei Paradigmen
133
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen imperativ, objektorientiert, regelbasiert - regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten Sprache XL - vereint die drei Paradigmen - parallele Graph-Grammatiken (L-Systeme als Spezialfall), parallele Zuweisungen, Graph-Abfragen...
134
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen imperativ, objektorientiert, regelbasiert - regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten Sprache XL - vereint die drei Paradigmen - parallele Graph-Grammatiken (L-Systeme als Spezialfall), parallele Zuweisungen, Graph-Abfragen... - vorteilhaft in der Ökologie (Interaktionen, Verhalten, Netzwerke, Strukturen und Funktionen...) und für Grafik-Modelle
135
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Zusammenfassung Programmierparadigmen imperativ, objektorientiert, regelbasiert - regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten Sprache XL - vereint die drei Paradigmen - parallele Graph-Grammatiken (L-Systeme als Spezialfall), parallele Zuweisungen, Graph-Abfragen... - vorteilhaft in der Ökologie (Interaktionen, Verhalten, Netzwerke, Strukturen und Funktionen...) und für Grafik-Modelle zusätzlich: Virtual Reality - Paradigma
136
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Weiterführendes Material Literaturhinweise unter www.grogra.de insbes.: W. K., Specification of morphological models with L-systems and relational growth grammars. IMAGE, 5 (2007), Themenheft; http://www-gs.informatik.tu-cottbus.de/ima_lsy.pdf Buch: P. Prusinkiewicz / A. Lindenmayer: The Algorithmic Beauty of Plants. Springer, Berlin 1990; http://algorithmicbotany.org/papers/abop/abop.pdf Tutorial, integriert in die Software GroIMP (Download unter www.grogra.de ) Publikationsseite des Lehrstuhls Grafische Systeme, BTU Cottbus: http://www-gs.informatik.tu-cottbus.de/deutsch/publ.htm
137
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Diese Folien werden zur Verfügung gestellt unter der URL http://www-gs.informatik.tu-cottbus.de/deutsch/ank.htm BTU Cottbus ( www.tu-cottbus.de ) - Fakultäten und Einrichtungen - Fakultät 1 - Die Fakultät - Lehrstuhl Grafische Systeme - Announcements
138
Danke für die Aufmerksamkeit! (Buck-Sorlin 2007, mit GroIMP / XL) http://www-gs.informatik.tu-cottbus.de/deutsch/ank.htm
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.