Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie?

Post on 21-Jan-2016

34 views 0 download

description

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. - PowerPoint PPT Presentation

Transcript of Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie?

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