Data Flow Computing - Software Development

Data flow computing is one of the most radical approaches for multiprocessing. A computation is represented by its data flow graph and scheduling of each operator is done at run-time when all of its operands' values are available. This paper addresses the problem of language design for a data flow environment. It briefly surveys several alternatives for a data flow language and then focuses on one specific effort: the Massachusetts Institute of Technology's VAL. This language stresses implicit concurrency. Both programmer and translator can easily identify and exploit concurrency because VAL disallows all forms of side-effects and aliasing. The paper concludes with an analysis of the language and areas of continued research. While substantial progress has been made, much remains to be done in the areas of language design, translation, and use.