Summary
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.
Similar content being viewed by others
References
Birkhoff, G., Lipson, J.D.: Heterogeneous algebras. J. Combinatorial Theory 8, 115–133 (1970)
Boon, W.: The word problem. Ann. of Math. 207–265 (1959)
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
Church, A., Rosser, J.: Some properties of conversion. Trans. Amer. Math. Soc. 39, 472–482 (1936)
Dahl, O.-J.: The SIMULA 67 common base language. Norwegian Computing Center, Oslo, Norway, 1968
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
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
Guttag, J.V.: Abstract data types and the development of data structures. Comm. ACM 20, 396–404 (1977)
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
Henderson, P., Snowden, R.: An experiment in structured programming. Nordisk Tidskr. Informationsbehandling (BIT) 12, 38–53 (1972)
Hermes, H.: Enumerability, decidability and computability, New York: Academic Press 1965
Hoare, C.A.R.: Proofs of correctness of data representation. Acta Informat. 1, 271–281 (1972)
Hoare, C.A.R., Wirth, N.: An axiomatic definition of the programming language PASCAL. Acta Informat. 2, 335–355 (1973)
Kleene, S.: General recursive functions of natural numbers. Math. Ann. 112, 729–745 (1936)
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)
Majster, M.E.: Limits of the algebraic specification. SIGPLAN Notices 12, 10, 37–41 (1977)
Minsky, M.: Computation: Finite and infinite machines, New York: Prentice-Hall 1967
Morris, J.H.: Types are not sets. ACM Symposium on the Principles of Programming Languages, pp. 120–124, October 1973
Palme, J.: Protected program modules in SIMULA 67. FOAP Report C8372-M3 (E5), Research Institute of National Defense, Stockholm, Sweden, 1973
Parnas, D.L.: A technique for the specification of software modules with examples. Comm. ACM 15, 330–336 (1972)
Rosen, B.: Tree manipulating systems and Church-Rosser theorems. J. Assoc. Comput. Mach. 20, 160–187 (1973)
Spitzen, J., Wegbreit, B.: The verification and synthesis of data structures. Acta Informat. 4, 127–144 (1975)
Standish, T.A.: Data structures — an axiomatic approach. BBN Report No. 2639, August 1973
Thatcher, J.W., Wagner, E.G., Wright, J.B.: Data type specification: Parameterization and the power of specification techniques. Private communication, 1977
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
Zilles, S.N.: Data algebra: a specification technique for data structures. Massachusetts Institute of Technology, Cambridge (Mass.), Ph.D. Thesis, 1978 (forthcoming)
Author information
Authors and Affiliations
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
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). https://doi.org/10.1007/BF00260922
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00260922