Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus,

Ähnliche Präsentationen


Präsentation zum Thema: "Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus,"—  Präsentation transkript:

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)

102

103

104

105

106

107 .

108

109

110

111

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


Herunterladen ppt "Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus,"

Ähnliche Präsentationen


Google-Anzeigen