Models and transformations for nondeterministic extensions of functional programming

  • Thomas J. Myers
  • A. Toni Cohen
Session 1 Specification And Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 181)


Linguistic support of parallelism and program transformation systems both implicitly involve nondeterminism. As a result, referentially transparent languages are insufficiently expressive for these applications unless they are augmented with nondeterministic operators. This paper introduces two operators to extend FP so that it supports committed and uncommitted nondeterminism, and specifies the semantics of these operators under both strict and lenient evaluation strategies. Equational models for the four resulting systems are given individually, and two of these are merged into a combined model which supports both forms of nondeterminism under lenient evaluation. Finally, the applicability to program transformation problems is discussed.


Program Transformation Nondeterministic Choice Additive Identity Lazy Evaluation Strict Evaluation 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Aho 74]
    A.V. Aho, J.E. Hopcroft and J.D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, Mass. 1974.Google Scholar
  2. [Backus 78]
    J. Backus, ‘Can Programming Be Liberated from the Von Neumann Style? A Functional Style and its Algebra of Programs', CACM 1978.Google Scholar
  3. [Broome 85]
    P. Broome, Ph.D. dissertation, in progress.Google Scholar
  4. [Broy 81]
    M. Broy, ‘A fixed point approach to applicative multiprogramming', lecture notes for the International Summer School on Theoretical Foundations of Programming Methodology, July 1981.Google Scholar
  5. [Burstall 77]
    R.M. Burstall and J. Darlington, ‘A Transformation System for Developing Recursive Programs', JACM 24:1, January 1977.Google Scholar
  6. [Bryant 78]
    R.E. Bryant and J.B. Dennis, ‘Concurrent Programming', M.I.T. Computation Structures Group Memo 148-2, June 1978.Google Scholar
  7. [Clark 80]
    K.L. Clark and J. Darlington, ‘Algorithm Classification Through Synthesis', The Computer Journal 23, 1.Google Scholar
  8. [Clinger, 82]
    W. Clinger, ‘Nondeterministic Call-by-Need is Neither Lazy nor by Name', Proceedings ACM Symposium on LISP and Functional Languages, August 1982.Google Scholar
  9. [Clocksin 81]
    W.F. Clocksin and C.S. Mellish, Programming in Prolog, Springer-Verlag, 1981.Google Scholar
  10. [Cohen 82]
    A.T. Cohen and T.J. Myers, ‘Toward an Algebra of Nondeterministic Programs', Proceedings ACM Symposium on LISP and Functional Languages, August 1982.Google Scholar
  11. [Dijkstra 76]
    E.W. Dijkstra, A Discipline of Programming, Prentice-Hall 1976.Google Scholar
  12. [Floyd 67]
    R.W. Floyd, ‘Nondeterministic Algorithms', JACM 14:4, 1967.Google Scholar
  13. [Henderson 80]
    P. Henderson, Functional Languages: Applications and Implementations, Prentice-Hall, 1982.Google Scholar
  14. [Jerrum 82]
    M. Jerrum and M. Snir, ‘Some Exact Complexity Results for Straight-Line Computations over Semirings', JACM 29:3, July 1982.Google Scholar
  15. [Lankford 77]
    D.S. Lankford and A.M. Ballantyne, ‘Decision Procedures for Simple Equational Theories with Commutative-Associative Axioms: Complete Sets of Commutative-Associative Reductions', Technical Report, Mathematics Department, Univ. of Texas, Austin, Texas, August 1977.Google Scholar
  16. [McCarthy 67]
    J. McCarthy, ‘A Basis for a Mathematical Theory of Computation', in Computer Programming and Formal Systems, (ed. P Braffort and D. Hirschberg), North-Holland, 1967.Google Scholar
  17. [Myers 82]
    T.J. Myers and A.T. Cohen, ‘Through a Glass Darkly: Observations on Referential Translucency', 10th IMACS World Congress, Montreal, August 1982.Google Scholar
  18. [Park 79]
    D. Park, ‘On the semantics of fair parallelism', University of Warwick Theory of Computation Report 31, October 1979.Google Scholar
  19. [Stickel 81]
    M.E. Stickel, ‘A Unification Algorithm for Associative-Commutative Functions', JACM 28:3, July 1981.Google Scholar
  20. [Wand 80]
    M. Wand, ‘Continuation-Based Program Transformation Strategies', JACM 27:1, January 1980.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1984

Authors and Affiliations

  • Thomas J. Myers
    • 1
  • A. Toni Cohen
    • 1
  1. 1.University of DelawareNewark

Personalised recommendations