Object-oriented implementation of abstract data type specifications

  • Rolf Hennicker
  • Christoph Schmitz
Conference Session 2: Algebraic Specification
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1101)


We present a method for implementing abstract data type specifications by object-oriented programs and for proving implementation correctness. The method uses an algebraic description of the semantics of object-oriented programs which allows one to relate an abstract data type specification and its object-oriented implementation within a common formal framework. On this algebraic level the correctness of an implementation can be proved using the notion of observational implementation and its associated proof techniques.


Object-orientation Axiomatic semantics Observability Implementation Verification 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BH 95]
    M. Bidoit, R. Hennicker: Modular correctness proofs of behavioural implementations. Available by WWW:∼hennicke/, 1995. A short version appeared as: Proving the correctness of behavioural implementations. Proc. AMAST '95, Springer Lecture Notes in Computer Science 936, 152–168, 1995.Google Scholar
  2. [BH 95a]
    M. Bidoit, R. Hennicker: Behavioural theories and the proof of behavioural properties. To appear in Theor. Comp. Science. Previous version in: Report LIENS-95-5, Ecole Normale Supérieure, 1995.Google Scholar
  3. [BHW 95]
    M. Bidoit, R. Hennicker, M. Wirsing: Behavioural and abstractor specifications. Science of Computer Programming 25 (2–3), 149–186, 1995.Google Scholar
  4. [Breu 91]
    R. Breu: Algebraic Specification Techniques in Object Oriented Programming Environments. Springer Lecture Notes in Computer Science 562, 1991.Google Scholar
  5. [BZ 90]
    R. Breu, E. Zucca: An Algebraic Compositional Semantics of an Object Oriented Notation with Concurrency. In: C. E. Veni Madhavan (ed.): Proc. 9th Conf. on Foundations of Software Technology and Theoretical Computer Science, Springer Lecture Notes in Computer Science 405, 131–142, 1990.Google Scholar
  6. [EM 85]
    H. Ehrig, B. Mahr: Fundamentals of algebraic specification 1, EATCS Monographs on Theoretical Computer Science 6, Springer, 1985.Google Scholar
  7. [GH 93]
    J. Guttag, J. Horning: Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science, Springer, 1993.Google Scholar
  8. [GM 82]
    J. A. Goguen, J. Meseguer: Universal realization, persistent interconnection and implementation of abstract modules. In Proc. ICALP '82, Springer Lecture Notes in Computer Science 140, 265–281, 1982.Google Scholar
  9. [GM 87]
    J. A. Goguen, J. Meseguer: Unifying functional, object-oriented and relational programming with logical semantics. In: B. Shriver, P. Wegner (eds.): Research Directions in Object-Oriented Programming, 417–477, MIT Press, 1987.Google Scholar
  10. [Hen 91]
    R. Hennicker: Context induction: a proof principle for behavioural abstractions and algebraic implementations. Formal Aspects of Computing 3 (4), 326–345, 1991.Google Scholar
  11. [HS 96]
    R. Hennicker, C. Schmitz: Object-oriented implementation of abstract data type specifications. Extended version of this paper. Available by WWW:∼hennicke/, 1996.Google Scholar
  12. [JSHS 91]
    R. Jungclaus, G. Saake, T. Hartmann and C. Sernadas: Object-oriented specification of information systems: The TROLL language. Informatik-Bericht 91-04, Technische Universität Braunschweig, 1991.Google Scholar
  13. [KK 67]
    G. Kreisel, J. L. Krivine: Eléments de Logique Mathematique. Dunod (Paris), 1967.Google Scholar
  14. [LLW 95]
    U. Lechner, C. Lengauer and M. Wirsing: An object-oriented airport: specification and refinement in Maude. In: E. Astesiano, G. Reggio, A. Tarlecki (eds.): Recent Trends in Data Type Specification, Springer Lecture Notes in Computer Science 906, 351–367, 1995.Google Scholar
  15. [Mes 93]
    J. Meseguer: A logical theory of concurrent objects and its realization in the Maude language. In: G. Agha, P. Wegner and A. Yonezawa (eds.): Research Directions in Object-Based Concurrency, MIT Press, 314–390, 1993.Google Scholar
  16. [Mey 87]
    B. Meyer: Programming for reusability and extendibility. Sigplan Notices 22 (2), 85–94, 1987.Google Scholar
  17. [Mey 92]
    B. Meyer: Eiffel: the language. Prentice Hall International, 1992.Google Scholar
  18. [MG 94]
    G. Malcolm, J. A. Goguen: Proving correctness of refinement and implementation. Technical Monograph PRG-114, Oxford University Computing Laboratory, 1994.Google Scholar
  19. [NO 88]
    P. Nivela, F. Orejas: Initial behaviour semantics for algebraic specifications. In: D. T. Sannella, A. Tarlecki (eds.): Proc. 5th Workshop on Algebraic Specifications of Abstract Data Types, Springer Lecture Notes in Computer Science 332, 184–207, 1988.Google Scholar
  20. [R 87]
    H. Reichel: Initial computability, algebraic specifications, and partial algebras. International Series of Monographs in Computer Science No. 2, Oxford: Clarendon Press, 1987.Google Scholar
  21. [ST 88]
    D. T. Sannella, A. Tarlecki: Toward formal development of programs from algebraic specifications: implementation revisited. Acta Informatica 25, 233–281, 1988.Google Scholar
  22. [W 86]
    M. Wirsing: Structured algebraic specifications: a kernel language. Theoretical Computer Science 42, 123–249, 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Rolf Hennicker
    • 1
  • Christoph Schmitz
    • 2
  1. 1.Institut für InformatikLudwig-Maximilians-Universität MünchenMünchenGermany
  2. 2.Wilhelm-Schickard-InstitutUniversität TübingenTübingenGermany

Personalised recommendations