Pomset interpretations of parallel functional programs

  • Paul Hudak
  • Steve Anderson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 274)


A new framework is presented, based on the notion of a partially ordered multiset (or pomset), which is able to provide not only a precise operational semantics of parallel functional program evaluation, but also a handle through which to control such behavior. As an operational semantics, pomsets are able to distinguish between call-by-value, call-by-name, call-by-need, and call-by-speculation evaluation strategies (even though all but the first of these have the same standard semantics); and as a “handle” from which to control operational behavior, pomsets can express most of the behaviors achieved by previously proposed annotations that control not only evaluation order but also the spatial mapping of program to machine.


Temporal Logic Evaluation Strategy Operational Semantic Operational Behavior Function Application 


  1. [1]
    F.W. Burton. Annotations to control parallelism and reduction order in the distributed evaluation of functional programs. ACM Trans. on Prog. Lang. and Sys., 6(2), April 1984.Google Scholar
  2. [2]
    B. Goldberg. Detecting sharing of partial applications in functional programs. In Proceedings of 1987 Functional Programming Languages and Computer Architecture Conference, page to appear, Springer Verlag LNCS ..., September 1987.Google Scholar
  3. [3]
    B. Goldberg. Multiprocessor Execution of Functional Programs. PhD thesis, Yale University, Department of Computer Science, expected Spring 1987.Google Scholar
  4. [4]
    P. Hudak. Denotational semantics of a para-functional programming language. Int'l Journal of Parallel Programming, 15(2):103–125, 1986.Google Scholar
  5. [5]
    P. Hudak. Para-functional programming. Computer, 19(8):60–71, August 1986.Google Scholar
  6. [6]
    P. Hudak and B. Goldberg. Distributed execution of functional programs using serial combinators. In Proceedings of 1985 Int'l Conf. on Parallel Proc., pages 831–839, August 1985. Also appeared in IEEE Trans. on Computers, Vol C-34, No. 10, October 1985, pages 881–891.Google Scholar
  7. [7]
    P. Hudak and B. Goldberg. Serial combinators: “optimal” grains of parallelism. In Functional Programming Languages and Computer Architecture, pages 382–388, Springer-Verlag LNCS 201, September 1985.Google Scholar
  8. [8]
    P. Hudak and L. Smith. Para-functional programming: a paradigm for programming multiprocessor systems. In 12th ACM Sym. on Prin. of Prog. Lang., pages 243–254, January 1986.Google Scholar
  9. [9]
    P. Hudak and J. Young. Higher-order strictness analysis for untyped lambda calculus. In 12th ACM Sym. on Prin. of Prog. Lang., pages 97–109, January 1986.Google Scholar
  10. [10]
    R.J.M. Hughes. Super-combinators: a new implementation method for applicative languages. In Proc. 1982 ACM Conf. on LISP and Functional Prog., pages 1–10, ACM, August 1982.Google Scholar
  11. [11]
    R.M. Keller and F.C.H. Lin. Simulated performance of a reduction-based multiprocessor. IEEE Computer, 17(7):70–82, July 1984.Google Scholar
  12. [12]
    R.M. Keller and G. Lindstrom. Approaching distributed database implementations through functional programming concepts. In Int'l Conf. on Distributed Systems, May 1985.Google Scholar
  13. [13]
    V. Pratt. Modeling concurrency with partial orders. Int'l Journal of Parallel Programming, 15(1):33–72, February 1986.Google Scholar
  14. [14]
    N.S. Sridharan. Semi-applicative programming: an example. Technical Report, BBN Laboratories, November 1985.Google Scholar
  15. [15]
    P.C. Treleaven, D.R. Brownbridge, and R.P. Hopkins. Data-driven and demand-driven computer architectures. Computing Surveys, 14(1):93–143, March 1982.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Paul Hudak
    • 1
  • Steve Anderson
    • 1
  1. 1.Department of Computer ScienceYale UniversityNew Haven

Personalised recommendations