Data flow
A data flow architecture or language performs a computation when all the
operands are available.
Data flow is one kind of
data driven architecture, the other is
demand driven. It is a technique for specifying parallel computation at a fine-grain level, usually in the form of two-dimensional graphs in which instructions that are available for concurrent execution are written alongside each other while those that must be executed in sequence are written one under the other. Data dependencies between instructions are indicated by directed arcs.
Instructions do not reference memory since the data dependence arcs allow data to be transmitted directly from the producing instruction to the consuming one.
Data flow schemes differ chiefly in the way that they handle
re-entrant code.
Static schemes disallow it, dynamic schemes use either "code copying" or "tagging" at every point of reentry.
An example of a data flow architecture is
MIT's
VAL machine.