Dataflow programming

The stream -oriented programming is based on a continuous stream, usually the data signal which is varied in real time and output from. Well-known examples are Simulink, Pure Data or LabVIEW.

History

The stream -oriented programming was invented in the early 1970s by J. Paul Morrison - an early implementation of this technology is in the largest Canadian banks in constant use since then.

Stream -oriented programming was heavily influenced at the beginning of the then IBM simulation languages, especially of GPSS. But its roots date back to Melvin Conway's outstanding work on coroutines.

Since 2009, the marketing instruments of several groups based on stream- oriented programming concepts, including: Trelliswerk LLC, Proto Software, Inc., InforSense, Accelrys, and KNIME.

Objects

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

Source

As a source of an object will be referred to, which generates a data stream. It has at least one output, which can serve another object as input.

  • External sources: External sources derive their data from outside the program, mostly from data or input devices (eg microphone or video camera).
  • Internal sources: Internal sources produce 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 created. Perform on the data stream set operations ( such as addition of the input signals ). The result is at or outputs available and can be processed further.

Reduce

Sinks are responsible for the issue of the data stream, thus they have indeed inputs, but no outputs. You can either stand for a file that is posted or for an output device, eg a speaker or screen.

Data stream

When data stream is usually to record audio or video data, less commonly, to pure numbers. He always flows from the output of an object to all associated inputs of objects until it reaches a sink.

Areas of application

Because of their complicated only be mapped to classical programming concepts structure is to develop in the stream- oriented programming harder "normal" applications. Here, similar in many respects functional programming is lack of opportunities instead mostly used. For example, in Haskell can be sources and sinks as monads and node implemented as functions, where the inputs and outputs then correspond to the function parameters and redemptions.

The pure stream- oriented programming is one hand used at the time of media artists to make interactive multimedia and distributed plants (see also: Digital Art ). On the other hand, is among artists of electronic music styles, the music software reactor popular, purely graphically a Pure Data - similar, but more tailored to the creation of virtual music instruments, functionality.

It has long been established, this kind of programming in control theory and increasingly in the development of embedded systems.

219638
de