1.4k likes | 1.58k Views
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.
E N D
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
Kurth Göttingen, 30. 11. 2007 1. Begriff "Programmierparadigma"
Kurth Göttingen, 30. 11. 2007 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen
Kurth Göttingen, 30. 11. 2007 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL
Kurth Göttingen, 30. 11. 2007 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele
Kurth Göttingen, 30. 11. 2007 1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma
Kurth Göttingen, 30. 11. 2007 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 • Der Begriff "Programmierparadigma" • Paradigma: • grundlegende Denkweise
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
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!
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
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 ?
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)
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Organismen Aufbau beschreiben
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Verhalten (unter bestimmten Bedingungen) Organismen Aufbau beschreiben
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Verhalten (unter bestimmten Bedingungen) Organismen Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Verhalten (unter bestimmten Bedingungen) Organismen Aufbau beschreiben Prozesse Gesetzmäßigkeiten (Regeln) bestimmen
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Ökologie: Verhalten (unter bestimmten Bedingungen) Organismen Aufbau beschreiben Prozesse Gesetzmäßigkeiten (Regeln) bestimmen Ablauf berechnen
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Grafisches System:
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
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
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)
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung imperativ: "Befehls-Programmierung" Computer = ?
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung "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 "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 "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 "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 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 (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 (ein) Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch Rneu = f(R, B), Bneu = g(R, B) Anfängerfehler beim Programmieren: for (i = ... ) { R = f(R, B); B = g(R, B); }
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung (ein) Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch Rneu = f(R, B), Bneu = g(R, B) Anfängerfehler beim Programmieren: for (i = ... ) { R = f(R, B); B = g(R, B); }
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Beispiel für imperatives Grafik-Programmieren: Turtle-Geometrie Turtle: zeichnende Schildkröte, die auf Befehle hört Variablen: Position, Orientierung, Schrittweite, ...
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung Turtle:
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90)
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90)
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90) F0
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung F0 RU(90) F0
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
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
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) )
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) )
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
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 left head up
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 RL RH RU
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
1. Begriff "Programmierparadigma" 2. Einige wichtige Programmierparadigmen 3. Synthese: Die Sprache XL 4. Anwendungsbeispiele 5. Das VR-Paradigma 6. Zusammenfassung 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 Beispiel: class Blatt { float blattflaeche; float trockenmasse; float npp() { ..... } void seneszenz() { ..... } }