Dataflow Programming Languages [closed]

In a control flow language, you have a stream of instructions which operate on external data. Conditional execution, jumps and procedure calls change the instruction stream to be executed. This could be seen as instructions flowing through data (for example, instructions operate on registers which are loaded with data by instructions – the data is static unless the instruction stream moves it). A control flow “if” statement jumps to the correct branch in the instruction stream, but the data does not get moved.

In a dataflow language, you have a stream of data which is passed from instruction to instruction to be processed. Conditional execution, jumps and procedure calls route the data to different instructions. This could be seen as data flowing through otherwise static instructions like how electrical signals flow through circuits or water flows through pipes. A dataflow “if” statement would route the data to the correct branch.

Some examples of dataflow features and languages:

  • Spreadsheets are essentially dataflow
  • Unix pipes
  • Futures and promises are dataflow or dataflow-like constructs found in many modern languages
  • The messaging in the actor model is dataflow
  • Some languages have dataflow features:
    • Oz has dataflow variables
    • Groovy has GPars
    • Clojure has clojure.contrib.dataflow, Reagi and Javelin

Textual languages

  • VHDL, Verilog and other hardware description languages are essentially dataflow
  • Chuck
  • Cunieform
  • Lustre, used in defence, aerospace and power plant industries
  • Ptolemy II
  • Nyquist

Visual Languages

  • LabVIEW (screenshot [source])
  • Max/MSP (screenshot [source])
  • Pure Data (screenshot [source])
  • Reaktor (screenshot [source])
  • SCADE (screenshot [source]), the graphical programming environment for Lustre
  • SynthMaker (screenshot [source]) and FlowStone
  • vvvv (screenshot [source])
  • Expecco (screenshot [source])
  • Shake (screenshot [source])
  • [BLOK] (screenshot [source])
  • Quartz Composer (screenshot [source])
  • AudioMulch (screenshot [source])

Products which embed a visual dataflow language:

  • Blender
  • Voreen (screenshot)
  • Unreal Engine’s Kismet (screenshot)
  • ANKHOR FlowSheet (screenshot)
  • Dynamo for Autodesk Revit (screenshot)
  • LiveBlox (screenshot)

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)