Dataflow Programming Languages

Anton picture Anton · Jan 20, 2009 · Viewed 40.5k times · Source

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

Answer

user21037 picture user21037 · Jun 4, 2009

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:

Textual languages

Visual Languages

Products which embed a visual dataflow language: