Data stream oriented programming

from Wikipedia, the free encyclopedia

The data stream-oriented programming assumes a continuous data stream , mostly signal data, which is changed and output in real time. Well-known examples are Simulink , Pure Data or LabVIEW .

history

Stream-Oriented Programming was invented by J. Paul Morrison in the early 1970s - an early implementation of this technology has been in constant use in Canada's largest banks since then.

Data stream-oriented programming was initially strongly influenced by the IBM simulation languages ​​of the time, especially GPSS . But its roots go back to Melvin Conway's outstanding work on coroutines .

Objects

The individual elements that create and change the data stream are called objects. Their behavior can be influenced by parameters. They can be roughly divided into the following categories:

source

A source is an object that generates a data stream. It has at least one output that can serve as an input for another object.

  • External sources: External sources obtain their data from outside the program, mostly from data or from input devices (e.g. microphone or video camera).
  • Internal sources: Internal sources generate a certain, predefined data stream. This can be a constant value, but also sine curves or the like.

node

Nodes have at least one input to which a data stream can be applied. They perform specified operations on the data stream (e.g. addition of the input signals). The result is available at the output or outputs and can be processed further.

Reduce

Sinks are responsible for outputting the data stream, so they have inputs but no outputs. They can either stand for a file that is being written to or for an output device, e.g. B. a speaker or screen.

Data stream

The data stream is mostly audio or video data, more rarely pure numerical values. It always flows from the exit of an object to all associated inputs of objects until it reaches a sink.

application areas

The pure data stream-oriented programming is currently used on the one hand by media artists to create multimedia , interactive and distributed works (see also: digital art ) . On the other hand, the music software Reaktor is popular among artists of electronic music genres, which offers purely graphical functionality similar to Pure Data , but more tailored to the creation of virtual music devices.

This type of programming has long been established in control engineering and increasingly also in the development of embedded systems .

Individual evidence

  1. ^ J. Paul Morrison, Flow-Based Programming , http://jpaulmorrison.com/fbp/ . Retrieved June 10, 2010
  2. ^ ME Conway, Design of a separable transition-diagram compiler , Communications of the ACM, Vol. 6, No. July 7, 1963