First version of a data flow procedure language

  • Jack B. Dennis
Calcul Parallele Parallel Processing
Part of the Lecture Notes in Computer Science book series (LNCS, volume 19)


A language for representing computational procedures based on the concept of data flow is presented in terms of a semantic model that permits concurrent execution of noninterfering program parts. Procedures in the language operate on elementary and structured values, and always define functional transformations of values. The language is equivalent in expressive power to a block structured language with internal procedure variables and is a generalization of pure Lisp. The language is being used as a model for study of fundamental semantic constructs for programming, as a target language for evaluating trans-latability of programs expressed at the user-language level, and as a guide for research in advanced computer architecture.


Data Flow Argument Structure Base Language Output Link Firing Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Adams, D. A. A Computation Model With Data Flow Sequencing. Technical Report CS 117, Computer Science Department, School of Humanities and Sciences, Stanford University, Stanford, Calif., December 1968, 130 pp.Google Scholar
  2. Amerasinghe, S. N. The Handling of Procedure Variables in a Base Language. S. M. Thesis, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Mass., September 1972, 179 pp.Google Scholar
  3. Ashcroft, E., and Z. Manna. The translation of ‘goto’ programs to ‘while’ programs. Information Processing 71, North-Holland Publishing Co., 1972, 250–255.Google Scholar
  4. Bahrs, A. Operation patterns (an extensible model of an extensible language). Symposium on Theoretical Programming, Novosibirsk, USSR, August 1972.Google Scholar
  5. Dahl, O. J., and C. A. R. Hoare. Hierarchical program structures. Structured Programming, Academic Press 1972, 175–220.Google Scholar
  6. Dennis, J. B. [1969] Programming generality, parallelism and computer architecture. Information Processing 68, North-Holland Publishing Co., 1969, 484–492.Google Scholar
  7. Dennis, J. B. [1971]. On the design and specification of a common base language. Proceedings of the Symposium on Computers and Automata, Polytechnic Press of the Polytechnic Institute of Brooklyn, Brooklyn, N. Y. 1971, 47–74.Google Scholar
  8. Dennis, J. B. [1973]. Modularity. Advanced Course on Software Engineering, Lecture Notes in Economics and Mathematical Systems, 81, Springer-Verlag 1973, 128–182.Google Scholar
  9. Dennis, J. B., and J. B. Fosseen. Introduction to Data Flow Schemas. [To be published.]Google Scholar
  10. Dijkstra, E. W. Notes on structured programming. Structured Programming, Academic Press 1972, 1–82.Google Scholar
  11. Evans, A., Jr. PAL — a language designed for teaching programming linguistics. Proceedings of the 23rd ACM National Conference, 1968, 395–403.Google Scholar
  12. Fosseen, J. B. Representation of Algorithms by Maximally Parallel Schemata. S. M. Thesis, Department of Electrical Engineering, Massachusetts Institute of Technology, Cambridge, Mass., June 1972, 100 pp.Google Scholar
  13. Kahn, G. A Preliminary Theory for Parallel Programs. Internal Memo, Institut de Recherche d'Informatique et d'Automatique, Rocquencourt, Yvelines, France, 1973, 20 pp.Google Scholar
  14. Karp, R. M., and R. E. Miller. Properties of a model for parallel computations: determinacy, termination, queueing. SIAM J. of Applied Math. 14, 6 (November 1966), 1390–1411.Google Scholar
  15. Kosinski, P. A Data Flow Programming Language. Report RC 4264, IBM T. J. Watson Research Center, Yorktown Heights, N. Y., 140 pp.Google Scholar
  16. Landin, P. J. The mechanical evaluation of expressions. The Computer Journal 6, 4 (January 1964), 308–320.Google Scholar
  17. Lohr, K.-P. Buffered Communication in Abstract Systems. Bericht Nr. 73-03, Fachbereich 20 — Kybernetik, Technische Universitat Berlin, February 1973, 31 pp.Google Scholar
  18. Liskov, B. H., and S. N. Zilles. Programming with abstract data types. Paper to be presented at the Very High Level Languages Symposium, Santa Monica, California, March 1974.Google Scholar
  19. Luckham, D. C., D. M. R. Park, and M. S. Paterson. On formalised computer programs. J. of Computer and System Sciences 4, 3 (June 1970), 220–249.Google Scholar
  20. McCarthy, J. Recursive functions of symbolic expressions and their computation by machine, Part I. Comm. of the ACM 3, 4 (April 1960), 184–195.Google Scholar
  21. Paterson, M. S. Equivalence Problems in a Model of Computation. Ph.D Thesis, Trinity College, University of Cambridge, August 1967, 154 pp.Google Scholar
  22. Patil, S. S. Closure properties of interconnections of determinate systems. Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, ACM, New York 1970, 107–116.Google Scholar
  23. Rodriguez, J. E. A Graph Model for Parallel Computation. Report MAC-TR-64, Project MAC, Massachusetts Institute of Technology, Cambridge, Mass., September, 1969, 120 pp.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1974

Authors and Affiliations

  • Jack B. Dennis
    • 1
  1. 1.Project MAC, MITCambridge

Personalised recommendations