Powerdomains and nondeterministic recursive definitions

  • M. C. B. Hennessy
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 137)


A nondeterministic Language for recursive definitions, L, is defined. It includes simple functions for manipulating data values, in this case the natural numbers, a choice operator OR and recursive procedures. Various kinds of parameter-passing mechanisms are allowed: the well-known call-by-value, run-time choice which models the Algo160 substitution rule and call-time choice in which no nondeterminism is allowed in the actual parameters once the procedure has been called.

An operational semantics is defined for this language in the form of a next state relation. Using this relation three different operational preorders are defined between programs. The difference in these orders reflect different views of divergent computations.

On the other hand we define three different mathematical models, in the sense of Scott-Theory and show that they are fully-abstract; that is programs are identified in the model if and only if they are identified by the corresponding operational preorder. The three different models are defined using three different powerdomains and these are shown to arise naturally by considering different properties of the semantic counter-part of the operator OR.

Finally we discuss the suitability of L for defining elements of the various domains. An element of a domain is computable if it is the least upper bound of a recursively enumerable set of finite elements. We show that for certain domains all computable elements are definable in L and point to difficulties in extending L so as to define all such elements in the remaining domains.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Astesiano, E., Costa, G., Sharing in Nondeterminism, 6th Int. Coll. on Algorithms, Languages and Programming, LNCS, 71, 1979.Google Scholar
  2. [2]
    Berry, G. and Curien, P.L., Sequential Algorithms on Concrete Data Types, November 1979.Google Scholar
  3. [3]
    Boudol, G., Semantique Operationelle et Algebrique des Programmes Recursifs Non-deterministes, These de Doctorat D'etat, Universite de Paris VII, 1980.Google Scholar
  4. [4]
    Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, Englewood Cliffs, 1976.Google Scholar
  5. [5]
    Floyd, R.W., Nondeterministic Algorithms, JACM, 14, pp. 636–644, 1967.Google Scholar
  6. [6]
    Hennessy, M.C.B., The Semantics of Call-by-Value and Call-by-Name in a a Nondeterministic Environment, SIAM J. Computing, Vol. 9, No. 1, 1980.Google Scholar
  7. [7]
    Hennessy, M.C.B. and Plotkin, G., Full Abstraction for a Simple Programming Language, LNCS, 74, 1979.Google Scholar
  8. [8]
    Nivat, M., Nondeterministic Programs: An Algebraic Overview. In: S.H. Lavington (ed.) Proc. of IFIP Congress 1980, North Holland, 1980.Google Scholar
  9. [9]
    McCarthy, J., A Basis for a Theory of Computation. In: B. Braffort and D. Hirschberg (eds.) Computer Programming and Formal Systems, North Holland, p. 33–70, 1963.Google Scholar
  10. [10]
    Päppinghaus, P. and Wirsing, M., Nondeterministic Partial Logic: Isotonic and Guarded Truth-Functions, University of Edinburgh, 1980.Google Scholar
  11. [11]
    Plotkin, G., A Powerdomain Construction, SIAM J. on Computing, 5, pp. 452–486, 1976.Google Scholar
  12. [12]
    Plotkin, G., Dijkstra's Predicate Transformers and Smyth's Power Domains In: LNCS, 86, pp. 527–553, 1979.Google Scholar
  13. [13]
    Plotkin, G., LCF considered as a programming language, Theoretical Computer Science, Vol. 5, pp. 223–255, 1977.Google Scholar
  14. [14]
    Smyth, M.B., Powerdomains, JCSS, Vol. 16, pp. 23–26, 1978.Google Scholar
  15. [15]
    Trakhtenbrot, M., Relationships between classes of Monotonic Functions, Theoretical Computer Science, Vol. 2, pp. 225–247, 1976.Google Scholar
  16. [16]
    Vuillemin, J., Correct and Optimal Implementation of Recursion in a Simple Programming Language, JCSS, Vol. 9, No. 3, pp. 332–354, June 1974.Google Scholar
  17. [17]
    Winskel, G., Events in Computation, Ph.D. thesis. University of Edinburgh, 1980.Google Scholar
  18. [18]
    Astesiano, E., Costa, G., Nondeterminism and Fully Abstract Models, 1979.Google Scholar
  19. [19]
    Scott, D., Outline of a Mathematical Theory of Computation, Oxford Monograph PRG-2, Oxford University Press, 1970.Google Scholar
  20. [20]
    Naur, P., (ed.) Revised Report on the Algorithmic Language ALGOL 60, CACM, Vol. 6, 1963.Google Scholar
  21. [21]
    Stoy, J., Denotational Semantics: The Scot-Strachey Approahc to Programing Language Theory, MIT Press, 1977.Google Scholar
  22. [22]
    Gordon, M., The Denotational Description of Programming Languages, Springer-Verlag, 1979.Google Scholar
  23. [23]
    Courcelle, B., and Nivat, M., Algebraic families of interpretations. IRIA Rapport de Recherche 189, 1976.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • M. C. B. Hennessy
    • 1
  1. 1.Dept. of Computer ScienceUniversity of EdinburghEdinburghScotland

Personalised recommendations