The DataFlow Approach

by Tuğrul Yazar | October 18, 2012 15:33

In 1982, it has been more than 15 years since the dataflow approach to algorithm designing are discussed in computer science. Computer journal publishes a special issue with the foreword of Tilak Agerwala; he says;

…We have discussed two characteristics of the von Neumann model of computation: global updatable memory and a single program counter. It will become clear shortly that the data flow model has neither of these. First, the data flow model deals only with values and not with names of value containers (i.e., addresses). This concept is also fundamental to purely functional or applicative languages, and hence these languages have no built-in notion of global updatable memory. An operator in these languages produces a value which is used by other operators. Second, the data flow model has nothing like an instruction counter: an instruction is enabled if and only if all the required input values have been computed. Enabled instructions consume input values, execute, and produce sets of output values which are sent to other instructions that need these values. An instruction in data flow has no other side effects, and a language based on data flow concepts does not introduce sequencing constraints other than the ones imposed by data dependencies in the algorithm. Thus, in principle, it is possible to expose all of the parallelism in a data flow program.

A program in a high-level data flow language is directly translatable into a graph whose nodes represent functions and whose arcs represent data dependencies between functions. In the graph values are represented as tokens on the arcs. This graph is similar to the one generated by an optimizing Fortran compiler after the data flow analysis phase. The advantage of data flow languages is that the graph can be generated with little analysis. In fact, data flow languages were originally defined as graphical languages.

Agerwala, T., and Arvind, (1982), “Data Flow Systems”, Computer, Vol.15, No.2, Feb.1982, pp.10-13

Source URL: https://www.designcoding.net/the-dataflow-approach/