Skip to main content

Part of the book series: Springer Study Edition ((SSE,volume 14))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

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

    Google Scholar 

  • Arvind, Gostelow KP (1982) The U-interpreter. Computer, 15, 2: 42–49

    Article  Google Scholar 

  • Davis AL, Keller Rm (1982) Data flow program graphs. Computer 15, 2: 26–41

    Article  Google Scholar 

  • Dennis JB (1981) Data should not change: a model for a computer system. Tech Rep 209, Massachusetts Institute of Technology, Cambridge, MA

    Google Scholar 

  • 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

    Google Scholar 

  • Dennis JB, Weng K-S (1979) An abstract implementation for concurrent computation with streams. Proc 1979 Int Conf on Parallel Processing, 35–45

    Google Scholar 

  • Agerwala T, Arvind (eds)(1982).Special issue on data flow systems. Computer 15, 2

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Dennis JB (1980) Data flow supercomputers. Computer 13, 11:48–56

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Dennis JB, Gao G-R (1983) Maximum pipelining of array operations on static data flow machine. Proc IEEE 1983 Inter Conf on Parallel Processing

    Google Scholar 

  • Dennis JB, Gao G-R, Todd KW (1984) Modeling the weather with a data flow supercomputer. IEEE Trans Comp C-33, 7: 592–603

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Ackerman WB (1979) Data flow languages. Proc AFIPS 1979 NCC 48: 1087–1095

    Google Scholar 

  • Ackerman WB (1982) Data flow languages. Computer 15, 2: 15–23

    Google Scholar 

  • 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

    MathSciNet  MATH  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Kuszmaul B (1984) Type-checking in VimVal. B.A. thesis, Dept of Elec Eng & Comp Sci, Massachusetts Institute of Technology, Cambridge, MA

    Google Scholar 

  • Ashcroft AE and Wadge WW (1977) Lucid: a nonprocedural language with iteration. CACM 20, 7: 519–526

    MATH  Google Scholar 

  • McGraw JR (1982) The VAL language: description and analysis. ACM Trans on Programming Languages and Systems 4, 1: 44–82

    Article  Google Scholar 

  • Milner R (1978) A theory of type polymorphism in programming. J Comp & Sys Sci 17: 348–375

    Article  MathSciNet  MATH  Google Scholar 

  • Turner DA (1981) The semantic elegance of applicative. Proc 1981 conf on Prigramming Languages and Computer Architecture, pp 85–98

    Google Scholar 

  • Arvind, Gostelow KP (1982) The U-interpreter. Computer 15, 2: 42–49

    Article  Google Scholar 

  • 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

    MathSciNet  MATH  Google Scholar 

  • 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

    Chapter  Google Scholar 

  • Davis AL, Keller RM (1982) Dataflow program graphs. Computer 15, 2:26–41

    Article  Google Scholar 

  • Dennis JB (1969) Programming generality, parallelism and computer architecture. Information Processing, vol 68. North-Holland Publishing Company, Amsterdam

    Google Scholar 

  • 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

    Google Scholar 

  • Dennis JB (1981) Data should not change: a model for a computer system. Tech Rep 209, Laboratory for Computer Science, Cambridge, MA

    Google Scholar 

  • Dennis JB (1981) An operational semantics for a language with early completion data structures. Formal Descriptions of Programming Concepts. Springer, Berlin Heidelberg New York

    Google Scholar 

  • Dennis JB, Stoy J, Guharoy B (1984) VIM: an experimental multi-user system supporting functional programming. Proc 1981 Workshop on High-Level Computer Architecture

    Google Scholar 

  • Friedman DP, Wise DS (1976) CONS should not evaluate its arguments. Automata, Languages and Programming. Publisher unknown

    Google Scholar 

  • 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

    Google Scholar 

  • Jagannathan S Untitled M.S. thesis (expected 1985), Dept Elec Eng & Comp Sci, Massachusetts Institute of Technology, Cambridge, MA

    Google Scholar 

  • Johnsson T (1983) The G-machine: an abstract machine for graph reduction. Proc ACM SIGPLAN Notices 1984 Symp on Compiler Construction, pp 58–69

    Google Scholar 

  • Keller R, Lindstrom G, Patil S (1979) A loosely-coupled applicative multi-processing system. Proc 1979 NCC, pp 613–622

    Google Scholar 

  • Knight TF et al (1981) CADR Memo 528, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, MA

    Google Scholar 

  • Ashcroft AE, Wadge WW (1977) Lucid: a nonprocedural language with iteration. Communications of the ACM 20, 7: 519–526

    Article  MATH  Google Scholar 

  • Pingali K, Arvind (1983) Efficient demand-driven evaluation (I). Tech Memo 242, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA

    Google Scholar 

  • Pingali K, Arvind (1983) Efficient demand-driven evaluation (II). Tech Memo 243, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA

    Google Scholar 

  • Stoy JE (1984) Paper in preparation

    Google Scholar 

  • Turner DA (1977) A new implementation technique for applicative languages. Software-Practice and Experience, pp. 31–49

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics