Powerdomains and nondeterministic recursive definitions
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.
- Astesiano, E., Costa, G., Sharing in Nondeterminism, 6th Int. Coll. on Algorithms, Languages and Programming, LNCS, 71, 1979.Google Scholar
- Berry, G. and Curien, P.L., Sequential Algorithms on Concrete Data Types, November 1979.Google Scholar
- Boudol, G., Semantique Operationelle et Algebrique des Programmes Recursifs Non-deterministes, These de Doctorat D'etat, Universite de Paris VII, 1980.Google Scholar
- Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, Englewood Cliffs, 1976.Google Scholar
- Floyd, R.W., Nondeterministic Algorithms, JACM, 14, pp. 636–644, 1967.Google Scholar
- 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
- Hennessy, M.C.B. and Plotkin, G., Full Abstraction for a Simple Programming Language, LNCS, 74, 1979.Google Scholar
- Nivat, M., Nondeterministic Programs: An Algebraic Overview. In: S.H. Lavington (ed.) Proc. of IFIP Congress 1980, North Holland, 1980.Google Scholar
- 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
- Päppinghaus, P. and Wirsing, M., Nondeterministic Partial Logic: Isotonic and Guarded Truth-Functions, University of Edinburgh, 1980.Google Scholar
- Plotkin, G., A Powerdomain Construction, SIAM J. on Computing, 5, pp. 452–486, 1976.Google Scholar
- Plotkin, G., Dijkstra's Predicate Transformers and Smyth's Power Domains In: LNCS, 86, pp. 527–553, 1979.Google Scholar
- Plotkin, G., LCF considered as a programming language, Theoretical Computer Science, Vol. 5, pp. 223–255, 1977.Google Scholar
- Smyth, M.B., Powerdomains, JCSS, Vol. 16, pp. 23–26, 1978.Google Scholar
- Trakhtenbrot, M., Relationships between classes of Monotonic Functions, Theoretical Computer Science, Vol. 2, pp. 225–247, 1976.Google Scholar
- 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
- Winskel, G., Events in Computation, Ph.D. thesis. University of Edinburgh, 1980.Google Scholar
- Astesiano, E., Costa, G., Nondeterminism and Fully Abstract Models, 1979.Google Scholar
- Scott, D., Outline of a Mathematical Theory of Computation, Oxford Monograph PRG-2, Oxford University Press, 1970.Google Scholar
- Naur, P., (ed.) Revised Report on the Algorithmic Language ALGOL 60, CACM, Vol. 6, 1963.Google Scholar
- Stoy, J., Denotational Semantics: The Scot-Strachey Approahc to Programing Language Theory, MIT Press, 1977.Google Scholar
- Gordon, M., The Denotational Description of Programming Languages, Springer-Verlag, 1979.Google Scholar
- Courcelle, B., and Nivat, M., Algebraic families of interpretations. IRIA Rapport de Recherche 189, 1976.Google Scholar