Nondeterminism in abstract data types

  • P. A. Subrahmanyam
Session 4: C. Boehm, Chairman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 115)


A nondeterministic operation is characterized by the fact that its application to a given set of parameters can yield any one of several possible outcomes. This paper discusses ways to specify, implement, and reason about nondeterministic operations in the context of abstract (algebraic) data types. The notion of an implementation of a data type that includes nondeterministic operations is formalized, and the criteria for judging the "correctness" of such implementations are specified. The formalism developed allows implementations of nondeterministic operations to embody varying degrees of the full extent of nondeterminism allowed by the semantics of a type; in particular, deterministic implementations of nondeterministic operations are allowed.


nondeterminism nondeterministic operations abstract data types correctness implementations extraction equivalence observable behavior 


  1. 1.
    O.J. Dahl, E.W. Dijkstra, C.A.R. Hoare. Structured Programming. Academic Press, New York, 1972.Google Scholar
  2. 2.
    J. Goguen, J. Thatcher, E. Wagner. An Initial Algebra Approach to the Specification, Correctness, and Implementation of Abstract Data Types. In R. Yeh, Ed., Current Trends in Programming Methodology, Vol IV, Prentice-Hall, N.J, 1979, pp. 80–149.Google Scholar
  3. 3.
    G.Gratzer. Universal Algebra. Van Nostrand, 1968.Google Scholar
  4. 4.
    J.V.Guttag. The Specification and Application to Programming of Abstract Data Types. Ph.D. Th., Computational Sciences Group, University of Toronto, 1975.Google Scholar
  5. 5.
    C.A.R. Hoare. "Proof of Correctness of Data Representations." Acta Informatica 1 (1972), 271–281.Google Scholar
  6. 6.
    B. Liskov, S. Zilles. "Specification Techniques for Data Abstractions." IEEE Trans. on Soft. Engg. SE-1 (1975), 7–19.Google Scholar
  7. 7.
    David R. Musser. A Data Type Verification System Based on Rewrite Rules. USC/Information Sciences Institute, October, 1977.Google Scholar
  8. 8.
    P.A.Subrahmanyam. On Proving the Correctness of Data Type Implementations. Dept. of Computer Science, University of Utah, September, 1979.Google Scholar
  9. 9.
    P.A.Subrahmanyam. A New Method for Specifying and Handling Exceptions. Dept. of Computer Science, University of Utah, January 1980.Google Scholar
  10. 10.
    P.A.Subrahmanyam. Cooperating Nondeterministic Processes and Nondeterministically Cooperating Processes. Dept. of Computer Science, University of Utah, 1980, forthcoming.Google Scholar
  11. 11.
    J.Thatcher, E.Wagner, J.Wright. Data Type Specifications: Parameterization and the Power of Specification Techniques. Proceedings, Tench SIGACT Symp., ACM, SIGACT, April 1978, 1978, pp. 119–132.Google Scholar
  12. 12.
    W.A.Wulf, R.L.London, M.Shaw. Abstraction and Verification in ALPHARD. CMU, ISI, August, 1976.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1981

Authors and Affiliations

  • P. A. Subrahmanyam
    • 1
  1. 1.Department of Computer ScienceUniversity of UtahSalt Lake City

Personalised recommendations