Datenstromorientierte Programmierung

Datenstromorientierte Programmierung

Datenstromorientierte Programmierung geht von einem kontinuierlichen Datenstrom, meist Signaldaten, der in Echtzeit verändert und ausgegeben wird. Bekannte Beispiele sind Simulink, Pure Data oder LabVIEW.

Inhaltsverzeichnis

Geschichte

Datenstromorientierte Programmierung wurde Anfang der 1970er Jahre von J. Paul Morrison erfunden, eine frühe Implementierung dieser Technologie ist seit damals in den größten kanadischen Banken in ständigem Gebrauch.[1]

Datenstromorientierte Programmierung war zu Beginn stark von damaligen IBM Simulationssprachen beeinflusst, besonders von GPSS, aber seine Wurzeln reichen bis zu Melvin Conways herausragender Arbeit über Coroutines zurück.[2]

Seit 2009 basieren die Marketinginstrumente mehrerer Konzerne auf Konzepten datenstromorientierter Programmierung, unter anderem: Trelliswerk LLC[3], Proto Software, Inc.[4], InforSense[5], Accelrys[6], und Knime[7].

Objekte

Die einzelnen Elemente, die den Datenstrom erzeugen und verändern, werden als Objekte bezeichnet. Man kann sie grob in folgende Kategorien einteilen. Ihr Verhalten kann durch Parameter beeinflusst werden.

Quelle

Als Quelle wird ein Objekt bezeichnet, das einen Datenstrom erzeugt. Es hat mindestens einen Ausgang, der einem anderen Objekt als Eingang dienen kann.

  • Externe Quellen: Externe Quellen beziehen ihre Daten von außerhalb des Programms, meist aus Daten oder von Eingabegeräten (z. B.: Mikrofon oder Videokamera).
  • Interne Quellen: Interne Quellen erzeugen einen bestimmten, vordefinierten Datenstrom. Dies kann ein konstanter Wert sein, aber auch Sinus-Kurven oder ähnliches.

Knoten

Knoten haben mindestens einen Eingang, an denen ein Datenstrom angelegt werden kann. Sie führen auf dem Datenstrom festgelegte Operationen durch (z. B. Addition der Eingangssignale). Das Ergebnis ist an dem oder den Ausgängen verfügbar und kann weiterverarbeitet werden.

Senken

Senken sind für die Ausgabe des Datenstroms verantwortlich, sie haben daher zwar Eingänge, jedoch keine Ausgänge. Sie können entweder für eine Datei stehen, in die geschrieben wird oder für ein Ausgabegerät, also z. B. ein Lautsprecher oder Bildschirm.

Datenstrom

Beim Datenstrom handelt es sich meist um Audio- oder Videodaten, seltener auch um reine Zahlenwerte. Er fließt immer vom Ausgang eines Objektes zu allen damit verbundenen Eingängen von Objekten bis er in eine Senke gelangt.

Anwendungsgebiete

Wegen ihrer nur kompliziert auf klassische Programmierkonzepte abbildbaren Struktur ist es in der datenstromorientierten Programmierung schwerer, "normale" Anwendungen zu entwickeln. Hier wird mangels Möglichkeiten stattdessen meist die in vielen Punkten ähnliche funktionale Programmierung verwendet. Zum Beispiel lassen sich in Haskell Quellen und Senken als Monaden und Knoten als Funktionen implementieren, wobei die Ein-/Ausgänge dann den Funktionsparametern und -rückgaben entsprechen.

Die reine datenstromorientierte Programmierung wird zur Zeit einerseits von Medienkünstlern verwendet, um multimediale, interaktive und verteilte Werke zu gestalten (siehe auch: Digitale Kunst). Andererseits ist unter Künstlern der elektronischen Musikrichtungen die Musiksoftware Reaktor beliebt, die rein grafisch eine Pure Data-ähnliche, jedoch mehr auf die Erstellung von virtuellen Musikgeräten zugeschnittene, Funktionalität bietet.

Seit langem etabliert ist diese Art der Programmierung in der Regelungstechnik und zunehmend auch in der Entwicklung eingebetteter Systeme.

Einzelnachweise

  1. J. Paul Morrison, Flow-Based Programming, http://jpaulmorrison.com/fbp/. Abgerufen am 10. Juni 2010
  2. M.E. Conway, Design of a separable transition-diagram compiler, Communications of the ACM, Vol. 6, No. 7, July 1963
  3. Trelliswerk LLC: About Flow-Based Programming. Abgerufen am 10. Juli 2006.
  4. Proto Software Inc.: Proto components: Reuse that actually works. Abgerufen am 25. Juli 2006.
  5. InforSense: Knowledge Discovery Environment. Abgerufen am 29. Januar 2009.
  6. Scitegic: Scitegic Pipeline Pilot. Abgerufen am 29. Januar 2009.
  7. Knime: Konstanz Information Miner. Abgerufen am 29. Januar 2009.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Datenstromorientierte Programmiersprachen — Datenstromorienterte Programmierung geht von einem kontinuierlichen Datenfluss aus, meist Signaldaten, der in Echtzeit verändert und ausgegeben wird. Bekannte Beispiele sind Simulink, Pure Data oder LabVIEW. Inhaltsverzeichnis 1 Objekte 1.1… …   Deutsch Wikipedia

  • Grafische Programmierung — Als Grafische Programmiersprache, kurz VPL für Visual Programming Language, bezeichnet man eine Programmiersprache, in der ein Programm, Algorithmus oder Systemverhalten durch grafische Elemente und deren Anordnung definiert wird. Da Grafische… …   Deutsch Wikipedia

  • Graphische Programmierung — Als Grafische Programmiersprache, kurz VPL für Visual Programming Language, bezeichnet man eine Programmiersprache, in der ein Programm, Algorithmus oder Systemverhalten durch grafische Elemente und deren Anordnung definiert wird. Da Grafische… …   Deutsch Wikipedia

  • Programmierparadigma — Ein Programmierparadigma ist ein fundamentaler Programmierstil.[1] Programmierparadigmen unterscheiden sich durch ihre Konzepte für die Repräsentation von statischen (wie beispielsweise Objekte, Methoden, Variablen, Konstanten) und dynamischen… …   Deutsch Wikipedia

  • Pure data — Ein Programm in Pure Data Pure Data (Abkürzung: Pd) ist eine datenstromorientierte Programmiersprache und Entwicklungsumgebung, die visuelle Programmierung benutzt. Sie wird vor allem zur Erstellung von interaktiver Multimedia Software eingesetzt …   Deutsch Wikipedia

  • Graphische Programmiersprache — Als Grafische Programmiersprache, kurz VPL für Visual Programming Language, bezeichnet man eine Programmiersprache, in der ein Programm, Algorithmus oder Systemverhalten durch grafische Elemente und deren Anordnung definiert wird. Da Grafische… …   Deutsch Wikipedia

  • Datenstrom — Mit Datenströmen (englisch: data streams) bezeichnet man in der Informatik kontinuierliche Abfolgen von Datensätzen, deren Ende nicht im Voraus abzusehen ist. Die einzelnen Datensätze sind dabei von beliebigem, aber festem Typ. Die Menge der… …   Deutsch Wikipedia

  • VVVV — ist eine grafische Entwicklungsumgebung, die von der vvvv group (Joreg, Max Wolf, Sebastian Gregor, Sebastian Oschatz) entwickelt wird. vvvv dient der Erzeugung und Manipulation von Video , Grafik und Datenströmen in Echtzeit. Inhaltsverzeichnis… …   Deutsch Wikipedia

  • Vvvv — ist eine grafische Entwicklungsumgebung, die von der vvvv group (Joreg, Max Wolf, Sebastian Gregor, Sebastian Oschatz) entwickelt wird. vvvv dient der Erzeugung und Manipulation von Video , Grafik und Datenströmen in Echtzeit. Inhaltsverzeichnis… …   Deutsch Wikipedia

  • Pure Data — Ein Programm in Pure Data Pure Data (Abkürzung: Pd) ist eine datenstromorientierte Programmiersprache und Entwicklungsumgebung, die visuelle Programmierung benutzt. Sie wird vor allem zur Erstellung von interaktiver Multimedia Software eingesetzt …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”