Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dataflow Programming Languages [closed]

Tags:

dataflow

What is a dataflow programming language? Why use it? And are there any benefits to it?

like image 731
Anton Avatar asked Jan 20 '09 15:01

Anton


People also ask

What is a data flow programming language?

Dataflow programming languages are ones that focus on the state of the program and cause operations to occur according to any change in the state. Dataflow programming languages are inherently parallel, because the operations rely on inputs that when met will cause the operation to execute.

What code can data flow be written in?

Libraries. Apache Beam: Java/Scala SDK that unifies streaming (and batch) processing with several execution engines supported (Apache Spark, Apache Flink, Google Dataflow etc.) SystemC: Library for C++, mainly aimed at hardware design. TensorFlow: A machine-learning library based on dataflow programming.

Why is LabVIEW deemed as a dataflow programming language?

The LabVIEW dataflow programming paradigm allows the LabVIEW execution system to run the two loops in different threads. In many text-based programming languages, you must explicitly create and handle threads.

What is data flow programming in LabVIEW?

In LabVIEW graphical programming, the order in which code executes is determined by the way that data gets transferred across wires on the block diagram. That's called data flow programming.


1 Answers

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)
like image 197
24 revs, 8 users 79%user21037 Avatar answered Nov 25 '22 08:11

24 revs, 8 users 79%user21037