Streams and managers

  • Arvind
  • J. Dean Brock
Part VIII, Data Flow Machines
Part of the Lecture Notes in Computer Science book series (LNCS, volume 143)


The sole effect of expression evaluation in a functional programming language is the production of a resultant value. This absence of side-effects greatly facilitates both the formal characterization and the concurrent execution of functional programs. Unfortunately, the absence of side-effects also conflicts with conventional means of achieving input/output, inter-process communication, and resource allocation. By incorporating the history of communication into a stream, functional programs can be written for I/O and communication. Using the stream concept, managers may be written to control access to resources shared by several processes.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

6. References

  1. [1]
    Ackerman, W. B., "Data Flow Languages", Computer 15, 2(February 1982), 15–25.Google Scholar
  2. [2]
    Arvind, K. P. Gostelow, and W. Plouffe, "Indeterminacy, Monitors and Dataflow", Proceedings of the Sixth ACM Symposium on Operating Systems Principles, Operating Systems Review 11, 5(November 1977), 159–169.Google Scholar
  3. [3]
    Arvind, K. P. Gostelow, and W. Plouffe, An Asynchronous Programming Language and Computing Machine, Department of Information and Computer Science (TR 114a), University of California — Irvine, Irvine, California, September 1978.Google Scholar
  4. [4]
    Ashcroft, E. A., and W. W. Wadge, "Lucid, a Nonprocedural Language with Iteration", Communications of the ACM 20, 7(July 1977), 519–526.Google Scholar
  5. [5]
    Brock, J. D., and W. B. Ackerman, "Scenarios: A Model of Non-determinate Computation", International Colloquium on Formalization of Programming Concepts, Lecture Notes in Computer Science 107, April 1981, 252–259.Google Scholar
  6. [6]
    Burge, W. H., Recursive Programming Techniques, Addison-Wesley Publishing Co., Reading, Massachusetts, 1975.Google Scholar
  7. [7]
    Catto, A. J., and J. R. Gurd, "Resource Management in Dataflow", Proceedings of the 1981 Conference on Functional Programming Languages and Computer Architecture, October 1981, 77–84.Google Scholar
  8. [8]
    Dennis, J. B., "A Language Design for Structured Concurrency", Design and Implementation of Programming Languages: Proceedings of a DoD Sponsored Workshop, Lecture Notes in Computer Science 54, October 1976, 231–242.Google Scholar
  9. [9]
    Friedman, D.P., and D.S. Wise, "CONS Should Not Evaluate its Arguments", Automata, Languages, and Programming: Third International Colloquim (S. Michaelson and R. Milner, Eds.), July 1976, 257–284.Google Scholar
  10. [10]
    Henderson, P., Functional Programming: Application and Implementation, Prentice/Hall International, Englewood Cliffs, New Jersey, 1980.Google Scholar
  11. [11]
    Hoare, C. A. R., "Monitors: An Operating System Structuring Concept", Communications of the ACM 17, 10(October 1975), 549–557.Google Scholar
  12. [12]
    Jayaraman, B., and R. M. Keller, "Resource Control in a Demand-driven Data-flow Model", Proceedings of the 1980 International Conference on Parallel Processing, August 1980, 118–127.Google Scholar
  13. [13]
    Kahn, G., "The Semantics of a Simple Language for Parallel Programming", Information Processing 74: Proceedings of IFIP Congress 74, August 1974, 471–475.Google Scholar
  14. [14]
    Keller, R. M., G. Lindstrom, and S. S. Patil, "A Loosely-Coupled Applicative Multi-processing System", Proceedings of the 1979 National Computer Conference, AFIPS Conference Proceedings 48, June 1979, 613–622.Google Scholar
  15. [15]
    Kosinski, P. R., "A Straightforward Denotational Semantics for Non-Determinate Data Flow Programs", Conference Record of the Fifth ACM Symposium on Principles of Programming Languages, January 1978, 214–221.Google Scholar
  16. [16]
    Landin, P. J., "A Correspondence between ALGOL 60 and Church's Lambda Notation: Part I", Communications of the ACM 8, 2(February 1965), 89–101.Google Scholar
  17. [17]
    Turner, D. A., "A New Implementation Technique for Applicative Languages", Software — Practice and Experience 9, 1(January 1979), 31–49.Google Scholar
  18. [18]
    Wadge, W. W., "An Extensional Treatment of Dataflow Deadlock", Theoretical Computer Science 13, 1(January 1981), 3–15.Google Scholar
  19. [19]
    Weng, K.-S., Stream-Oriented Computation in Recursive Data Flow Schemas, Laboratory for Computer Science (TM-68), MIT, Cambridge, Massachusetts, October 1975.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • Arvind
    • 1
  • J. Dean Brock
    • 1
  1. 1.Laboratory for Computer ScienceMassachusetts Institute of TechnologyCambridgeU.S.A.

Personalised recommendations