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
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
Kurth Göttingen, 30. 11. 2007
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
1. Der Begriff "Programmierparadigma"
Paradigma:
grundlegende Denkweise
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Paradigma:
"Beschreibt eine Menge von Theorien,Standards und Methoden, die gemeinsameinen Weg repräsentieren, Wissen zu organisieren"
Thomas Kuhn 1970: The Structureof Scientific Revolutions
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Paradigma:
"Beschreibt eine Menge von Theorien,Standards und Methoden, die gemeinsameinen Weg repräsentieren, Wissen zu organisieren"
Thomas Kuhn 1970: The Structureof Scientific Revolutions
Paradigmenwechsel: schwierig.Revolution im Denken!
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
wurde aufgegriffen von Robert Floyd 1978:
Turing Award Lecture
"The Paradigmsof 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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Welche Paradigmen werden nahegelegtdurch Probleme...
... der Ökologie ?
... der Grafik ?
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Bildquelle:
www.lusttoeter.de/images/rehli.jpg (20.11.2007)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Organismen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Organismen
Aufbau beschreiben
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Organismen
Verhalten(unter bestimmtenBedingungen)
Aufbau beschreiben
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Organismen
Verhalten(unter bestimmtenBedingungen)
Aufbau beschreiben
Gesetzmäßigkeiten(Regeln) bestimmen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Organismen
Verhalten(unter bestimmtenBedingungen)
Prozesse
Aufbau beschreiben
Gesetzmäßigkeiten(Regeln) bestimmen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ökologie:
Organismen
Verhalten(unter bestimmtenBedingungen)
Prozesse
Aufbau beschreiben
Gesetzmäßigkeiten(Regeln) bestimmenAblauf berechnen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungGrafisches System:
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungGrafisches System:
Objekte(mit Attributen)
regelmäßigeStrukturen
Prozesse
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
2. Einige wichtige Programmierparadigmen
- für numerische Simulation von Prozessen:
imperatives Paradigma
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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)
"Befehls-Programmierung"
Computer = ?
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
imperativ:
"Befehls-Programmierung"
Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
(ein) Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
(ein) Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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); }
(ein) Nachteil des imperativen Paradigmas:
simultane, parallele Zuweisung wird nicht unterstützt
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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); }
Beispiel für imperatives Grafik-Programmieren:
Turtle-Geometrie
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Turtle:
zeichnende Schildkröte, die auf Befehle hört
Variablen: Position, Orientierung, Schrittweite, ...
Turtle:
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0 RU(90)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0 RU(90)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0 RU(90) F0
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0 RU(90) F0
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0 RU(90) F0 RU(90) LMul(0.5) F0
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
F0 RU(90) F0 RU(90) LMul(0.5) F0
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
anderes Beispiel:
for ((1:20)) ( for ((1:36))
( F0 RU(165) F0 RU(165) ) RU(270) )
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
anderes Beispiel:
for ((1:20)) ( for ((1:36))
( F0 RU(165) F0 RU(165) ) RU(270) )
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Erweiterung auf 3D-Grafik:
Turtle-Rotationen um 3 Achsen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Erweiterung auf 3D-Grafik:
Turtle-Rotationen um 3 Achsen
head
left
up
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Erweiterung auf 3D-Grafik:
Turtle-Rotationen um 3 Achsen
RHRL
RU
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
zurück zum Beispiel:
Objekte(mit Attributen)
Organismen
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
class Blatt
{
float blattflaeche;float trockenmasse;
float npp(){ ..... }
void seneszenz(){ ..... }
}
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
regelmäßigeStrukturen
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Regelsysteme zur Ersetzung von Zeichen in Zeichenketten
Beispiel: L-Systeme (Lindenmayer-Systeme)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Aristid Lindenmayer (1925-1989)
Bildquelle: home.wtal.de/schwebin/lsyspics/einflsys01.jpg (20.11.2007)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
A
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
A
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
B
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
B
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
AB
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
AB
parallele Ersetzung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
BAB
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
BAB
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
ABBAB
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
Ableitungskette:
A B AB BAB ABBAB BABABBAB
ABBABBABABBAB BABABBABABBABBABABBAB
...
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel:
Startwort A
Regelmenge:
A BB AB
Ableitungskette:
A B AB BAB ABBAB BABABBAB
ABBABBABABBAB BABABBABABBABBABABBAB
...
wie lang ist die n-te Zeichenkette in dieser Ableitung?
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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:
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
.
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Beispiel: Fichtenmodell (3D)
mit L-System erzeugt
(auf Basis von Messungen)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
ein anderer regelbasierter Mechanismus:
Graph-Grammatiken
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
ein anderer regelbasierter Mechanismus:
Graph-Grammatiken
Regel:
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
ein anderer regelbasierter Mechanismus:
Graph-Grammatiken
Regel:
Anwendung:
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
● imperativ
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
● imperativ
- Veränderung von Variablen
- Turtle-Geometrie
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
● imperativ
- Veränderung von Variablen
- Turtle-Geometrie
● objektorientiert
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
● imperativ
- Veränderung von Variablen
- Turtle-Geometrie
● objektorientiert
● regelbasiert
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
● imperativ
- Veränderung von Variablen
- Turtle-Geometrie
● objektorientiert
● regelbasiert
- L-Systeme
- Graph-Grammatiken
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:
Programmierparadigmen
● imperativ
- Veränderung von Variablen
- Turtle-Geometrie
● objektorientiert
● regelbasiert
- L-Systeme
- Graph-Grammatiken
● weitere: funktional; nebenläufig; chemisch ...
3. Synthese: Die Sprache XL
„eXtended L-system language“
Programmiersprache, die parallele Graph-Grammatiken einfach verfügbar macht
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
imperativ objektorientiert regelbasiert
Java
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
imperativ objektorientiert regelbasiert
Java
XL
Die Sprache XL
Sprachspezifikation: Kniemeyer (2007)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Ole Kniemeyer (1977- )
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Eigenschaften der Sprache XL:
● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Eigenschaften der Sprache XL:
● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte
● Steuerung der Regelanwendung durch Kontrollstrukturen möglich
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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 ] );
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Eigenschaften der Sprache XL:
● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte
● Steuerung der Regelanwendung durch Kontrollstrukturen möglich
● parallele Regelanwendung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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 Rneu = f(R, B), Bneu = g(R, B)
in XL korrekt:
R := f(R, B); B := g(R, B);
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
4. Anwendungsbeispiele
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
4. Anwendungsbeispiele
- realistische Darstellung eines Brettspiels
„Mensch ärgere dich nicht“
(Kniemeyer 2007,
AGTIVE'07 Tool Contest)
.
.
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Spielzüge durch Regeln gesteuert
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Spielzüge durch Regeln gesteuert
Figuren, Spielfelder etc. sind Objekte
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Regeln für Verhalten
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
Regeln für Verhalten
z.B. Schwarm-Organismen
„virtual birds“ = boids
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
zahlreiche Grafik-Anwendungen einfach realisierbar, z.B. virtuelles Wachstum entlang einer Oberfläche (regelgesteuert)
Bischof 2006
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
5. Das VR-Paradigma
VR = Virtual Reality
interaktives Paradigma
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
5. Das VR-Paradigma
VR = Virtual Reality
interaktives Paradigma
Erweiterung des objektorientierten Paradigmas
Vorstellung:Der Benutzer wird Teil der virtuellen Weltund erlebt die Objekte als real
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
● Interaktivität
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
● Interaktivität
● Immersion
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
● Interaktivität
● Immersion
● virtuelle Raumzeit
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
● Interaktivität
● Immersion
● virtuelle Raumzeit
● Identifikation mit einem Objekt der virtuellen Welt (Avatar)
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 Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung
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)
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● Programmierparadigmen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● Programmierparadigmen
● imperativ, objektorientiert, regelbasiert
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● Programmierparadigmen
● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● Programmierparadigmen
● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten
● Sprache XL- vereint die drei Paradigmen
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● 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...
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung
● 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. 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
Danke für die Aufmerksamkeit!
(Buck-Sorlin 2007, mit GroIMP / XL)
http://www-gs.informatik.tu-cottbus.de/deutsch/ank.htm