Abstract
All data flow models describe computation in terms of locally controlled events; each event is the “firing” of an “actor”. There is no notion of a single point or locus of control—nothing corresponding to the program location counter of a conventional sequential computer. Since many actors may be ready to fire, these models can represent many asynchronous concurrent computational events. Nevertheless, they can guarantee an input/output behavior that is unaffected by the order in which the firing of actors is carried out. This property of data flow models—determinacy—ensures that their input/output behavior is functional. Thus the semantics of data flow graphs are closely related to the semantics of applicative programming languages, and we will illustrate the correspondence of data flow graphs to textual programs by means of program fragments written in Val, an applicative programming language developed at MIT for scientific applications.
In this lecture we introduce and compare three important conceptual models of data-driven computation: static data flow graphs, recursive program graphs, and the tagged-token model.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Arvind, Kathail V, Pingali, K (1980) A data flow architecture with tagged tokens. Tech Memo 174, Laboratory for Computer Science, Massachusetts Institute for Technology, Cambridge, MA
Arvind, Gostelow KP (1982) The U-interpreter. Computer, 15, 2: 42–49
Davis AL, Keller Rm (1982) Data flow program graphs. Computer 15, 2: 26–41
Dennis JB (1981) Data should not change: a model for a computer system. Tech Rep 209, Massachusetts Institute of Technology, Cambridge, MA
Dennis JB (1974) First version of a data flow procedure language. In Robinet B (ed) Proc Colloque sur la programmation, vol 19 of Lectures in Computer Science. Springer, Berlin Heidelberg New York, pp 362–376
Dennis JB, Weng K-S (1979) An abstract implementation for concurrent computation with streams. Proc 1979 Int Conf on Parallel Processing, 35–45
Agerwala T, Arvind (eds)(1982).Special issue on data flow systems. Computer 15, 2
Dennis JB (1974) First version of a data flow procedure language. In Robinet B (ed) Proc Colloque sur la programmation, vol 19 of Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York, pp. 362–376
Dennis JB (1980) Data flow supercomputers. Computer 13, 11:48–56
Dennis JB (1982) High speed data flow computer architecture for the solution of the Navier-Stokes equation. Computation Structures Group Memo 225, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
Dennis JB, Gao G-R (1983) Maximum pipelining of array operations on static data flow machine. Proc IEEE 1983 Inter Conf on Parallel Processing
Dennis JB, Gao G-R, Todd KW (1984) Modeling the weather with a data flow supercomputer. IEEE Trans Comp C-33, 7: 592–603
Kurokawa H, Matsumoto K, Temma T, Iwashita M, Nukiyama T (1983) The architecture and performance of image pipeline processor. Proc IFIP TC 10/WG 10.5 Inter Conf on Very Large Scale Integration
Ackerman WB (1979) Data flow languages. Proc AFIPS 1979 NCC 48: 1087–1095
Ackerman WB (1982) Data flow languages. Computer 15, 2: 15–23
Backus J (1978) Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. CACM 21, 8: 613–41
Dennis JB (1981) Data should not change: a model for a computer system. Tech Rep 209, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
Gordon M, Milner R, Morris L, Newey M, Wadsworth C (1978) A metalanguage for interactive proof in LCF. Proc Fifth ACM Conf on Principles of Programming Languages
Kuszmaul B (1984) Type-checking in VimVal. B.A. thesis, Dept of Elec Eng & Comp Sci, Massachusetts Institute of Technology, Cambridge, MA
Ashcroft AE and Wadge WW (1977) Lucid: a nonprocedural language with iteration. CACM 20, 7: 519–526
McGraw JR (1982) The VAL language: description and analysis. ACM Trans on Programming Languages and Systems 4, 1: 44–82
Milner R (1978) A theory of type polymorphism in programming. J Comp & Sys Sci 17: 348–375
Turner DA (1981) The semantic elegance of applicative. Proc 1981 conf on Prigramming Languages and Computer Architecture, pp 85–98
Arvind, Gostelow KP (1982) The U-interpreter. Computer 15, 2: 42–49
Backus J (1978) Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. CACM 21, 8: 613–641
Darlington J, Reeve M (1981) Alice: a multi-processor reduction machine for the parallel evaluation of applicative languages. Proc 1981 Conf on Functional Programming Languages and Computer Architecture, pp. 65–76
Davis AL, Keller RM (1982) Dataflow program graphs. Computer 15, 2:26–41
Dennis JB (1969) Programming generality, parallelism and computer architecture. Information Processing, vol 68. North-Holland Publishing Company, Amsterdam
Dennis JB (1974) First version of a data flow procedure language. Proc. Colloque sur la programmation, vol 19 of Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York
Dennis JB (1981) Data should not change: a model for a computer system. Tech Rep 209, Laboratory for Computer Science, Cambridge, MA
Dennis JB (1981) An operational semantics for a language with early completion data structures. Formal Descriptions of Programming Concepts. Springer, Berlin Heidelberg New York
Dennis JB, Stoy J, Guharoy B (1984) VIM: an experimental multi-user system supporting functional programming. Proc 1981 Workshop on High-Level Computer Architecture
Friedman DP, Wise DS (1976) CONS should not evaluate its arguments. Automata, Languages and Programming. Publisher unknown
Guharoy B Memory management in a dynamic data flow computer system M.S. thesis (expected Aug 1984 ), Dept Elec Eng & Comp Sci, Massachusetts Institute of Technology, Cambridge, MA
Jagannathan S Untitled M.S. thesis (expected 1985), Dept Elec Eng & Comp Sci, Massachusetts Institute of Technology, Cambridge, MA
Johnsson T (1983) The G-machine: an abstract machine for graph reduction. Proc ACM SIGPLAN Notices 1984 Symp on Compiler Construction, pp 58–69
Keller R, Lindstrom G, Patil S (1979) A loosely-coupled applicative multi-processing system. Proc 1979 NCC, pp 613–622
Knight TF et al (1981) CADR Memo 528, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, MA
Ashcroft AE, Wadge WW (1977) Lucid: a nonprocedural language with iteration. Communications of the ACM 20, 7: 519–526
Pingali K, Arvind (1983) Efficient demand-driven evaluation (I). Tech Memo 242, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
Pingali K, Arvind (1983) Efficient demand-driven evaluation (II). Tech Memo 243, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
Stoy JE (1984) Paper in preparation
Turner DA (1977) A new implementation technique for applicative languages. Software-Practice and Experience, pp. 31–49
Brock JD, Ackerman WB (1981) A model of non-determinate computation. In Diaz J, Ramos I (eds) In formalization of programming concepts, vol 107 in Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York, pp 252–259
Brock JD (1983) A formal model of non-determinate data flow computation. Ph.D. thesis, Dept Elec Eng and Comp Sci, Massachusetts Institute of Technology, Cambridge MA
Faustini AA (1982) An operational semantics of pure dataflow. In Nielsen M, Schmidt EM (eds) Automata, Languages and programming: ninth colloquium, vol 120 in Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York, pp 212–224
Kahn G (1974) The semantics for a simple language for parallel processing. In Rosenfeld, JL (ed) Information processing: Proc of IFIP Congress 1974, pp 471–475
Patil SS (1970) Closure properties of interconnections of determinate systems. Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, pp 107–116
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dennis, J.B. (1986). Data Flow Computation. In: Broy, M. (eds) Control Flow and Data Flow: Concepts of Distributed Programming. Springer Study Edition, vol 14. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-82921-5_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-82921-5_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17082-2
Online ISBN: 978-3-642-82921-5
eBook Packages: Springer Book Archive