A theory of abstract data types for program development: Bridging the gap?

  • T. S. E. Maibaum
  • Paulo A. S. Veloso
  • M. R. Sadler
Colloquium On Software Engineering Rigorous Approaches To Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 186)


This paper outlines a logical approach to abstract data types, which is motivated by, and more adequate for (than algebraic approaches), the practice of programming. Abstract data types are specified as axiomatic theories and notions concerning the former are captured by syntactical concepts concerning the latter. The basic concepts of nambility, conservative extensions and interpretations of theories explain implementation, refinement and parameterisation. Being simple, natural and flexible, this approach is quite appropriate for program development.

Key Words

abstract data types axiomatic theories incomplete specifications  program development stepwise refinement implementation parameterisation  interpretation conservative extension namability 


  1. [B'77]
    J. Barwise, ed: Handbook of Mathematical Logic, Studies in Logic and the Foundations of Mathematics, Vol.90, North Holland, 1977.Google Scholar
  2. [BG'79]
    R.M. Burstall, J.A. Goguen: The Semantics of CLEAR, A Specification Language, (as in D'79)Google Scholar
  3. [BG'81]
    R.M. Burstall, J.A. Goguen: An Informal Introduction to Specifications using CLEAR, in: "The Correctness Problem in Computer Science", eds. R.S. Boyer, J.S. Moore, Academic Press, 1981Google Scholar
  4. [BW'82]
    M. Broy, M. Wirsing: Partial Abstract Types, Acta Informatica, Vol.Google Scholar
  5. [D'77]
    J. Darlington: A Synthesis of Several Sorting Algorithms, Imperial College of Science and Technology, Department of Computing, London, 1977Google Scholar
  6. [D'79]
    B. Domolski: An Example of Hierarchical Program Specification, Proc. of 1979 Copenhagen Winter School on Abstract Sofware Specifications, LNCS86, Springer-VerlagGoogle Scholar
  7. [E'72]
    H.B. Enderton: A Mathematical Introduction to Logic, Academic Press, New York, 1972Google Scholar
  8. [Eh'82]
    H-D. Ehrich: On the Theory of Specification, Implementation and Parameterisation of Abstract Data Types, JACM, Vol. 29, No. 1, 1982Google Scholar
  9. [EK'82]
    H. Ehrig, H-J. Kreowski: Parameter Passing Commutes with Implementation of Parameterised Data Types, 9th ICALP, LNCS 140, Springer-VerlagGoogle Scholar
  10. [EKMP'80]
    H. Ehrig, H-J. Kreowski, B. Mahr, P. Padawitz: Compound Algebraic Implementations: an Approach to Stepwise Refinement of Software Systems, 9th MFCS, LNCS88, Springer-Verlag, 1980Google Scholar
  11. [G'77]
    J.V. Guttag: Abstract Data Types and the Development of Data Structures, Comm. ACM, Vol. 20, No. 6, pp. 396–404, June 1977Google Scholar
  12. [G'80]
    J.V. Guttag: Notes on Type Abstraction (Version 2), IEEE TSE, Vol. 6, No. 1, 1980Google Scholar
  13. [Go'83]
    M. Gogolla: Algebraic Specifications with Partially Ordered Sorts, Tech.Report 169, Abt. Informatik, U. of Dortmund, 1983.Google Scholar
  14. [Ga'83]
    H. Ganzinger: Parameterised Specifications: Parameter Passing and Implementation, ACM, TOPLAS, Vol. 5, No. 3, 1983Google Scholar
  15. [GH'78]
    J.V. Guttag and J.J. Horning: The Algebraic Specification of Abstract Data Types, Acta Informatica, Vol. 10, No. 1, pp. 27–52, 1978Google Scholar
  16. [GHM'78]
    J.V. Guttag, E. Horowitz, D.R. Musser: The Design of Data Type Specifications, in "Current Trends in Programming Methodology, Vol. IV", Ed. R.T. Yeh, Prentice Hall, 1978Google Scholar
  17. [GTW'78]
    J.A. Goguen, J.W. Thatcher, E.G. Wagner: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types, in "Current Trends in Programming Methodology, Vol. IV", Ed. R.T. Yeh, Prentice Hall, Englewood Cliffs, 1978Google Scholar
  18. [H'80]
    U.L. Hupbach: Abstract Implementation of Abstract Data Types, 9th MFCS, LNCS88, Springer-Verlag, 1980Google Scholar
  19. [He'80]
    P. Henderson: Functional Programming: Application and Implementation, Prentice-Hall, 1980Google Scholar
  20. [H'72]
    C.A.R. Hoare: Proof of Correctness of Data Representations, Acta Informatica, Vol. 4, pp. 271–281, 1972Google Scholar
  21. [J'80]
    C.B. Jones: Software Development: a Rigorous Approach, Prentice-Hall, London, 1980Google Scholar
  22. [Kn'75]
    D.E. Knuth: The Art of Computer Programming, Vol. 3, Addison Wesley, Reading, 1975Google Scholar
  23. [L'79]
    B. Liskov: Modular Program Construction Using Abstractions, (as in D'79]Google Scholar
  24. [LZ'77]
    B. Liskov, S. Zilles: An Introduction to Formal Specifications of Data Abstractions, in "Current Trends in Programming Methodology, Vol. I", Ed. R.T. Yeh, Prentice-Hall, Englewood Cliffs, 1977Google Scholar
  25. [Ma'74]
    Z. Manna: The Mathematical Theory of Computation, McGraw-Hill, New York, 1974Google Scholar
  26. [MV'81]
    T.S.E. Maibaum, P.A.S. Veloso: A Logical Approach to Abstract Data Types, Technical Report, Department of Computing, Imperial College, and Departamento de Informatica, PUC/RJ, 1981Google Scholar
  27. [MSV'83]
    T.S.E. Maibaum, M.R. Sadler, P.A.S. Veloso: Logical Specification and Implementation, Technical Report, Department of Computing, Imperial College, 1983Google Scholar
  28. [MSV'83a]
    T.S.E. Maibaum, M.R. Sadler, P.A.S. Veloso: A Straightforward Approach to Parameterised Specifications, Technical Report, Department of Computing, Imperial College, 1983Google Scholar
  29. [P,84]
    A. Poigne: Another Look at Parameterisation Using Suborts, MFCS84, LNCS176, 1984.Google Scholar
  30. [SM'84]
    M.R. Sadler, T.S.E. Maibaum: The Logic of Namability, In preparationGoogle Scholar
  31. [SW'82]
    D. Sanella, M. Wirsing: Implementation of Parameterised Specifications, 9th ICALP, LNCS140, Springer-Verlag, 1982Google Scholar
  32. [Sh'67]
    J.R. Schoenfield: Mathematical Logic, Addison Wesley, Reading, 1967Google Scholar
  33. [T'78]
    W.M. Turski: Computer Programming Methodology, Heyden, London, 1978Google Scholar
  34. [VP'78]
    P.A.S. Veloso, T.H.C. Pequeno: Interpretations between Many-Sorted Theories, 2nd Brasilian Colloquium on Logic, Campinas, 1978Google Scholar
  35. [WB'82]
    M. Wirsing, M. Broy: An Analysis of Semantic Models for Algebraic Specifications, in "Theoretical Foundations of Programming Methodology", eds. M. Broy, G. Schmidt, Reidel, Dordrecht, 1982Google Scholar
  36. [WPPDB'80]
    M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy: On Hierarchies of Abstract Data Types, Technische Univ., Munchen, Inst. Informatik, 1980Google Scholar
  37. [WPPDB'83]
    M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy: On Hierarchies of Abstract Data Types, Acta Informatica, Vol. 20, Fasc. 1, pp. 1–33, 1983Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • T. S. E. Maibaum
    • 2
  • Paulo A. S. Veloso
    • 1
  • M. R. Sadler
    • 2
  1. 1.Depto. de InformaticaPUC/RJ, Rio de JaneiroBrasil
  2. 2.Department of ComputingImperial College of Science and TechnologyLondonUK

Personalised recommendations