The algebraic specification of abstract data types


There have been many recent proposals for embedding abstract data types in programming languages. In order to reason about programs using abstract data types, it is desirable to specify their properties at an abstract level, independent of any particular implementation. This paper presents an algebraic technique for such specifications, develops some of the formal properties of the technique, and shows that these provide useful guidelines for the construction of adequate specifications.

This is a preview of subscription content, log in to check access.


  1. 1.

    Birkhoff, G., Lipson, J.D.: Heterogeneous algebras. J. Combinatorial Theory 8, 115–133 (1970)

    Google Scholar 

  2. 2.

    Boon, W.: The word problem. Ann. of Math. 207–265 (1959)

  3. 3.

    Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. D.A.I. Research Report No. 19, Department of Artificial Intelligence, University of Edinburgh, March 1976

  4. 4.

    Church, A., Rosser, J.: Some properties of conversion. Trans. Amer. Math. Soc. 39, 472–482 (1936)

    Google Scholar 

  5. 5.

    Dahl, O.-J.: The SIMULA 67 common base language. Norwegian Computing Center, Oslo, Norway, 1968

    Google Scholar 

  6. 6.

    Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.G.: Abstract data-types as initial algebras and correctness of data representations. Proceedings Conference on Computer Graphics, Pattern Recognition and Data Structure, May 1975

  7. 7.

    Guttag, J.V.: The specification and application to programming of abstract data types. Department of Computer Science, University of Toronto, Toronto (Canada), Ph.D. Thesis, 1975. Available as Computer Systems Research Group Technical Report CSRG-59

    Google Scholar 

  8. 8.

    Guttag, J.V.: Abstract data types and the development of data structures. Comm. ACM 20, 396–404 (1977)

    Google Scholar 

  9. 9.

    Guttag, J.V., Horowitz, E., Musser, D.R.: Abstract data types and software validation. USC Information Sciences Institute Technical Report ISI/RR-76-48, 1976

  10. 10.

    Henderson, P., Snowden, R.: An experiment in structured programming. Nordisk Tidskr. Informationsbehandling (BIT) 12, 38–53 (1972)

    Google Scholar 

  11. 11.

    Hermes, H.: Enumerability, decidability and computability, New York: Academic Press 1965

    Google Scholar 

  12. 12.

    Hoare, C.A.R.: Proofs of correctness of data representation. Acta Informat. 1, 271–281 (1972)

    Google Scholar 

  13. 13.

    Hoare, C.A.R., Wirth, N.: An axiomatic definition of the programming language PASCAL. Acta Informat. 2, 335–355 (1973)

    Google Scholar 

  14. 14.

    Kleene, S.: General recursive functions of natural numbers. Math. Ann. 112, 729–745 (1936)

    Google Scholar 

  15. 15.

    Liskov, B.H., Zilles, S.N.: Programming with abstract data types. Proceedings of ACM SIGPLAN Symposium on Very High Level Languages. SIGPLAN Notices 9, 50–59 (1974)

    Google Scholar 

  16. 16.

    Majster, M.E.: Limits of the algebraic specification. SIGPLAN Notices 12, 10, 37–41 (1977)

    Google Scholar 

  17. 17.

    Minsky, M.: Computation: Finite and infinite machines, New York: Prentice-Hall 1967

    Google Scholar 

  18. 18.

    Morris, J.H.: Types are not sets. ACM Symposium on the Principles of Programming Languages, pp. 120–124, October 1973

  19. 19.

    Palme, J.: Protected program modules in SIMULA 67. FOAP Report C8372-M3 (E5), Research Institute of National Defense, Stockholm, Sweden, 1973

    Google Scholar 

  20. 20.

    Parnas, D.L.: A technique for the specification of software modules with examples. Comm. ACM 15, 330–336 (1972)

    Google Scholar 

  21. 21.

    Rosen, B.: Tree manipulating systems and Church-Rosser theorems. J. Assoc. Comput. Mach. 20, 160–187 (1973)

    Google Scholar 

  22. 22.

    Spitzen, J., Wegbreit, B.: The verification and synthesis of data structures. Acta Informat. 4, 127–144 (1975)

    Google Scholar 

  23. 23.

    Standish, T.A.: Data structures — an axiomatic approach. BBN Report No. 2639, August 1973

  24. 24.

    Thatcher, J.W., Wagner, E.G., Wright, J.B.: Data type specification: Parameterization and the power of specification techniques. Private communication, 1977

  25. 25.

    Wulf, W.A., London, R.L., Shaw, M.: Abstraction and verification in Alphard: introduction to language and methodology. Carnegie-Mellon University and USC Information Sciences Institute Technical Reports, 1976

  26. 26.

    Zilles, S.N.: Data algebra: a specification technique for data structures. Massachusetts Institute of Technology, Cambridge (Mass.), Ph.D. Thesis, 1978 (forthcoming)

    Google Scholar 

Download references

Author information



Additional information

Supported in part by the National Science Foundation under grant MCS-76-06089 and the Joint Services Electronics Program monitored by the Air Force Office of the Scientific Research under contract F44620-72C-0061

Supported in part by the National Research Council of Canada.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Guttag, J.V., Horning, J.J. The algebraic specification of abstract data types. Acta Informatica 10, 27–52 (1978).

Download citation


  • Information System
  • Operating System
  • Data Structure
  • Communication Network
  • Information Theory