A history of data-flow languages

Data-flow refers both to a language-level paradigm of computation and to a family of processor architectures based on this paradigm. This article elaborates data-flow language issues and the evolution of data-flow languages. In considering limits to the expressive power of these languages, underlying architectural issues are discussed. Although the article attempts to present a complete history of data-flow languages, it concentrates on those languages that specifically belong to this class and have been implemented for a data-flow machine. In many cases, the distinctions between issues of language semantics and machine architecture are unclear. Usually we have found that this reflects the evolution of data-flow, and the close association between language and architecture development. In some sections of the article, it may appear that there is an imbalance in the amount of detail presented when compared with other sections. This imbalance is proportional to the publications and the amount of information readily available for the topics.<<ETX>>

[1]  James R. McGraw,et al.  Streams and iteration in VAL: Additions to a data flow Language , 1982, ICDCS.

[2]  Michael J. Wise EPILOG = PROLOG + Data Flow: arguments for combining PROLOG with a data driven mechanism , 1982, SIGP.

[3]  Arthur H. Veen,et al.  The RC Compiler for the DTN Dataflow Computer , 1990, J. Parallel Distributed Comput..

[4]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[5]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[6]  Alison Davis,et al.  A Sample management application program in a graphi-cal data-driven programming language , 1981 .

[7]  Naohisa Takahashi,et al.  A data flow processor array system: Design and analysis , 1983, ISCA '83.

[8]  Robert M. Keller,et al.  Data Flow Program Graphs , 1982, Computer.

[9]  John W. Backus Programming language semantics and closed applicative languages , 1973, POPL '73.

[10]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[11]  A. H. Veen,et al.  The misconstrued semicolon: reconciling imperative languages and dataflow machines , 1986 .

[12]  Ryuzo Hasegawa,et al.  Parallel Execution of Logic Programs based on Dataflow Concept , 1984, Fifth Generation Computer Systems.

[13]  C. Kosack,et al.  LABORATORY , 1949, American journal of public health and the nation's health.

[14]  Edward Paul Katz A realization of relational semantics in an automatic programming system. , 1978 .

[15]  John Glauert,et al.  SISAL: streams and iteration in a single-assignment language. Language reference manual, Version 1. 1 , 1983 .

[16]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[17]  Jean-Luc Gaudiot,et al.  Advanced Topics in Data-Flow Computing , 1991 .

[18]  Chris Hankin,et al.  Structured data flow programming , 1982, SIGP.

[19]  C. S. Wetherell Error Data Values in the Data-Flow Language VAL , 1982, TOPL.

[20]  R. R. Seeber,et al.  Associative logic for highly parallel systems , 1963, AFIPS '63 (Fall).

[21]  William W. Wadge,et al.  Lucid, a nonprocedural language with iteration , 1977, CACM.

[22]  L. G. Tesler,et al.  A language design for concurrent processes , 1899, AFIPS Spring Joint Computing Conference.

[23]  John Glauert,et al.  SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 , 1985 .

[24]  Jack B. Dennis,et al.  A language design for structured concurrency , 1976, Design and Implementation of Programming Languages.

[25]  K. R. Traub,et al.  A COMPILER FOR THE MIT TAGGED-TOKEN DATAFLOW ARCHITECTURE , 1986 .

[26]  R. Karp,et al.  Properties of a model for parallel computations: determinacy , 1966 .

[27]  John Cocke,et al.  Configurable computers: a new class of general purpose machines , 1972, International Sympoisum on Theoretical Programming.

[28]  Ryuzo Hasegawa,et al.  List Processing with a Data Flow Machine , 1982, RIMS Symposium on Software Science and Engineering.

[29]  James R. McGraw,et al.  The VAL Language: Description and Analysis , 1982, TOPL.

[30]  S. S. Thakkar Selected reprints on dataflow and reduction architectures , 1987 .

[31]  Jack B. Dennis,et al.  VAL -- A Value-Oriented Algorithmic Language (Preliminary Reference Manual), , 1979 .

[32]  Gregory M. Papadopoulos,et al.  Implementation of a general purpose dataflow multiprocessor , 1991 .

[33]  Jack B. Dennis,et al.  The MIT Data Flow Engineering Model , 1983, IFIP Congress.

[34]  Dan I. Moldovan DATA-FLOW COMPUTING , 1993 .

[35]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[36]  Simon F. Wail Implementing a conventional language for a dataflow architecture , 1991, Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing.

[37]  Hiroki Honda,et al.  A Compilation Scheme for Macro-Dataflow Computation on Hierarchical Multiprocessor Systems , 1990, ICPP.

[38]  Ronald H. Perrott,et al.  Parallel programming , 1988, International computer science series.

[39]  Jack B. Dennis,et al.  Building blocks for data flow prototypes , 1980, ISCA '80.

[40]  Michael J. Wise,et al.  A parallel Prolog: The construction of a data driven model , 1982, LFP '82.

[41]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[42]  Toshitsugu Yuba,et al.  A performance evaluation of a Lisp-based data-driven machine (EM-3) , 1983, ISCA '83.

[43]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[44]  Toshitsugu Yuba Research and Development Efforts on Dataflow Computer Architecture in Japan , 1986 .

[45]  Paul R. Kosinski A data flow language for operating systems programming , 1973 .

[46]  James Mcgraw,et al.  Graph transformation algorithms for array memory optimization in applicative languages , 1987 .

[47]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[48]  Michael J. Wise Prolog multiprocessors , 1986 .

[49]  Donald D. Chamberlin The "single-assignment" approach to parallel processing , 1972, AFIPS '71 (Fall).

[50]  Kazunori Ueda,et al.  The Fifth Generation Project: Personal Perspectives , 1993, Commun. ACM.

[51]  Sang Yong Han A language for the specification and representation of programs in a data flow model of computation , 1983 .

[52]  Jack B. Dennis,et al.  A computer architecture for highly parallel signal processing , 1974, ACM '74.

[53]  Wil Plouffe,et al.  An asynchronous programming language and computing machine , 1978 .

[54]  W. R. Sutherland,et al.  The on-line graphical specification of computer procedures , 1966 .

[55]  John McCarthy,et al.  Recursive Functions of Symbolic Expressions , 1983 .

[56]  William W. Wadge,et al.  Lucid - A Formal System for Writing and Proving Programs , 1976, SIAM J. Comput..

[57]  Arvind,et al.  The Evolution of Dataflow Architectures: from Static Dataflow to P-RISC , 1993, Int. J. High Speed Comput..

[58]  Paul Klint,et al.  An overview of the SUMMER programming language , 1980, POPL '80.

[59]  A. L. Davis,et al.  The architecture and system method of DDM1: A recursively structured Data Driven Machine , 1978, ISCA '78.

[60]  Jarvis Dean Brock Operational Semantics of a Data Flow Language. , 1978 .

[61]  John W. Young,et al.  An abstract formulation of data processing problems , 1958, ACM '58.

[62]  Keshav Pingali,et al.  I-structures: data structures for parallel computing , 1986, Graph Reduction.

[63]  D. Comte,et al.  Parallelism, control and synchronization expression in a single assignment language , 1978, SIGP.

[64]  Shreekant S. Thakkar Dataflow and Reduction Architectures, Selected Reprints On , 1987 .

[65]  Ed Ashcroft,et al.  Some common misconceptions about Lucid , 1980, SIGP.

[66]  Arvind,et al.  The U-Interpreter , 1982, Computer.

[67]  C. L. Hankin,et al.  The data flow programming language CAJOLE - an informal introduction , 1981, SIGP.

[68]  John H. Williams,et al.  Design and Implementation of Programming Languages , 1977 .

[69]  Jack B. Dennis,et al.  Data flow schemas , 1972, International Sympoisum on Theoretical Programming.

[70]  Alan Lynn Davis Spl: a structured programming language. , 1972 .

[71]  Jack B. Dennis,et al.  A preliminary architecture for a basic data-flow processor , 1974, ISCA '75.

[72]  L. B. Montz SAFETY AND OPTIMIZATION TRANSFORMATIONS FOR DATA FLOW PROGRAMS , 1980 .

[73]  David C. Cann,et al.  Compilation techniques for high-performance applicative computation , 1989 .

[74]  William W. Wadge An Extensional Treatment of Dataflow Deadlock , 1979, Semantics of Concurrent Computation.

[75]  Duane Albert Adams,et al.  A computation model with data flow sequencing , 1968 .

[76]  David A. Padua,et al.  A Second Opinion on Data Flow Machines and Languages , 1982, Computer.