Hostname: page-component-84b7d79bbc-2l2gl Total loading time: 0 Render date: 2024-07-25T13:48:40.842Z Has data issue: false hasContentIssue false

Algebraic implementation of abstract data types: a survey of concepts and new compositionality results

Published online by Cambridge University Press:  04 March 2009

Fernando Orejas
Affiliation:
Dept. Leng. Sist. Inf., Univ. Polit. Cataluña, Barcelona, Spain
Marisa Navarro
Affiliation:
Dept. Leng. Sist. Inf., Univ. del Pais Vasco, San Sebastian, Spain
Ana Sánchez
Affiliation:
Dept. Leng. Sist. Inf., Univ. del Pais Vasco, San Sebastian, Spain

Abstract

In this paper we try to shed some light on the similarities and differences in the different approaches denning the notions of implementation and implementation correctness. For obvious reasons, we do not discuss all existing approaches individually. Instead, a formal framework is introduced in order to discuss the most important ones. Additionally, we discuss some issues, which in our opinion are often misunderstood, concerning transitivity of implementation correctness and its role in the software development process. In particular, on the one hand, we show that for reasonable notions of implementation, it is almost impossible to prove transitivity of implementation correctness at the specification level. On the other hand, we show that this is not really important if the programming language satisfies the properties of horizontal and vertical composition.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1996

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Astesiano, E. and Cerioli, M. (1993) Relationships between logical frameworks. Proc. 8th Workshop on Specification of Abstract Data Types (Dourdan, 1991). Springer-Verlag Lecture Notes in Computer Science 655 126143.Google Scholar
Bauer, F. L. and Wirsing, M. (1988) Crypt-Equivalent Algebraic Specifications. Acta Informatica 25 (2) 11153.Google Scholar
Bernot, G. (1989) Correctness Proofs for Abstract Implementations. Information and Computation 80 121151.CrossRefGoogle Scholar
Bernot, G. and Bidoit, M. (1991) Proving the correctness of Algebraically Specified Software: Modularity and Observability Issues. In: Processings 2nd. AM AST (Iowa City) 139161.Google Scholar
Bernot, G., Bidoit, M. and Choppy, C. (1986) Abstract implementations and correctness proofs. Proc. 3rd. Symp. on Theoretical Aspects of Computer Science. Springer-Verlag Lecture Notes in Computer Science 210 236251.CrossRefGoogle Scholar
Bjørner, D., AND Jones, C. (1982) Formal Specification and Software Development, Prentice Hall.Google Scholar
Breu, M. (1993) Bounded implementation of algebraic specifications. 8th Workshop on Specification of Abstract Data Types (Dourdan, 1991). Springer-Verlag Lecture Notes in Computer Science 655 181198.CrossRefGoogle Scholar
Broy, M., Möller, B., Pepper, P. and Wirsing, M. (1986) Algebraic implementations preserve program correctness. Science of Computer Programming 7 3553.Google Scholar
Burstall, R. M. and Diaconescu, R. (1994) Hiding and behaviour: an institutional approach. In: Roscoe, A. W. (ed.) A Classical Mind: Essays in Honour of C. A. R. Hoare, Prentice Hall7592.Google Scholar
Clérici, S. and Orejas, F. (1988) GSBL: an algebraic specification language based on inheritance. Proc. 1988 European Conf. on Object Oriented Programming, Oslo. Springer-Verlag Lecture Notes in Computer Science 322 7892.Google Scholar
Diaconescu, R., Goguen, J. A. and Stefaneas, P. (1993) Logical support for modularization. In: Huet, G. and Plotkin, G. (eds.) Logical Environments, Cambridge University Press 83130.Google Scholar
Ehrich, H.-D. (1982) On the theory of specification, implementation and parameterization of abstract data types. Journal of the Association for Computing Machinery 29 206207.Google Scholar
Ehrich, H.-D. and Lipeck, U. (1980) Proving implementation correct – two alternative approaches. Information Processing 80 8388.Google Scholar
Ehrig, H. (1989) Concepts and compatibility requirements for implementations and transformation of specifications, Algebraic Specification Column Part 6. EATCS Bulletin 38 7992.Google Scholar
Ehrig, H. and Adametz, H. (1981) New compatibility results for implementations within the initial algebraic approach, Algebraic Specification Column Part 11. EATCS Bulletin 43 102112.Google Scholar
Ehrig, H. and Kreowski, H.-J. (1983) Compatibility of parameter passing and implementation of parameterized data types. Theoretical Computer Science 27 (3) 255286.Google Scholar
Ehrig, H., Kreowski, H.-J., Mahr, B. and Padawitz, P. (1982) Algebraic implementation of abstract data types. Theoretical Computer Science 20 209263.CrossRefGoogle Scholar
Ehrig, H., Kreowski, H.-J. and Padawitz, P. (1978) Stepwise specification and implementation of abstract data types. Proc. 5th Intl. Colloq. on Automata, Languages and Programming, Udine.Springer-Verlag Lecture Notes in Computer Science 62 205226.CrossRefGoogle Scholar
Ehrig, H. and Mahr, B. (1985) Fundamentals of Algebraic Specifications 1, Springer-Verlag.CrossRefGoogle Scholar
Ehrig, H., Mahr, B. (1989) Fundamentals of Algebraic Specifications 2, Springer-Verlag.Google Scholar
Ehrig, H., Pepper, P. and Orejas, F. (1989) On Recent Trends in Algebraic Specification, Proc. ICALP '89. Springer-Verlag Lecture Notes in Computer Science 372 263288.Google Scholar
Farrés-Casals, J. (1989) Proving Correctness of Constructor Implementations. Proc MFCS 89. Springer-Verlag Lecture Notes in Computer Science 379 225235.Google Scholar
Ganzinger, H. (1983) Parameterized specifications: parameter passing and implementation with respect to observability. ACM Trans, on Programming Languages and Systems 5 (3) 318354.CrossRefGoogle Scholar
Goguen, J. A. and Burstall, R. M. (1980) CAT, a system for the structured elaboration of correct programs from structured specifications. Technical report CSL-118, Computer Science Laboratory, SRI International.Google Scholar
Goguen, J. A. and Burstall, R. M. (1984) Introducing institutions: Proc. Logics of Programming Workshop, Carnegie-Mellon. Springer-Verlag Lecture Notes in Computer Science 164 221256.Google Scholar
Goguen, J. A. and Burstall, R. M. (1992) Institutions: Abstract model theory for specification and programming. Journ. of the ACM 39 (1) 95146.Google Scholar
Goguen, J. A. and Meseguer, J. (1982) Universal realization, persistent interconnection and implementation of abstract modules. Proc. 9th Intl. Colloq. on Automata, Languages and Programming, Aarhus. Springer-Verlag Lecture Notes in Computer Science 140 265281.Google Scholar
Goguen, J. A., Thatcher, J. W. and Wagner, E.G. (1976) An initial algebra approach to the specification, correctness and implementation of abstract data types. IBM Report RC-6487, IBM T. J. Watson Research Center, Yorktown Heights (also in: Yeh, R. T. (ed.) Current Trends in Programming Methodology, Vol. 4. Data Structuring, Prentice-Hall80149).Google Scholar
Guttag, J. V. and Horowitz, E., Musser, D. R. (1978) Abstract data types and software validation. Communications of the ACM 21 (12) 10481063.Google Scholar
Hennicker, R. (1989) Observational implementations. Proc. 6th Symp. on Theoretical Aspects of Computer Science, Paderborn. Springer-Verlag Lecture Notes in Computer Science 349 5971.CrossRefGoogle Scholar
Hennicker, R. (1991) Observational implementation of algebraic specifications. Acta Informatica 28 187230.Google Scholar
Hoare, C. A. R. (1972) Proofs of correctness of data representations. Acta Informatica 1 271281.CrossRefGoogle Scholar
Kamin, S. and Archer, M. (1984) Partial Implementations of Abstract Data Types: A Dissenting View on Errors. Proc. Int. Symposium on Semantics of Data Types, Sophia-Antipolis. Springer-Verlag Lecture Notes in Computer Science 173 317336.CrossRefGoogle Scholar
Kapur, D. and Srivas, M. (1988) Computability and implementability issues in abstract data types. Science of Computer Programming 10 3363.Google Scholar
Meseguer, J. (1989) General logics. Proc. Logic Colloquium '87, Granada. North Holland275329.Google Scholar
Meseguer, J. and Goguen, J. A. (1985) Initiality, induction and computability. In: Nivat, M. and Reynolds, J. (eds.). Algebraic Methods in Semantics, Cambridge University Press 459540.Google Scholar
Nivela, P. (1987) Semántica de comportamiento para especificaciones algebraicas, Ph.D. Thesis, Universitat Politècnica de Catalunya, Barcelona.Google Scholar
Nivela, P. and Orejas, F. (1988) Initial behavioural semantics for algebraic specifications. Recent Trends in Data Type Specification, Selected Papers from the 5th Workshop on Specification of Abstract Data Types, Gullane, Scotland. Springer-Verlag Lecture Notes in Computer Science 332 184207.Google Scholar
Orejas, F. (1981) On the representation of data types. Proc. Intl. Coll. on Formalization of Programming Concepts. Springer-Verlag Lecture Notes in Computer Science 107 419431.Google Scholar
Orejas, F. (1983) Characterizing composability of abstract implementations. Proc. 1983 Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. Springer-Verlag Lecture Notes in Computer Science 158 335346.Google Scholar
Orejas, F. (1984). A proof system for checking composability of implementations of abstract data types. Proc. of the Intl. Symp. on Semantics of Data Types, Sophia-Antipolis. Springer-Verlag Lecture Notes in Computer Science 173 357374.Google Scholar
Oreja, F. (1985) On implementability and computability in abstract data types. In: Algebra, Logics and Combinatorics in Computer Science, North-Holland633644.Google Scholar
Orejas, F. (1986) The role of abstraction in program development (response). Proc. IFIP Congress 1986, Dublin, North-Holland143146.Google Scholar
Orejas, F., Navarro, M. and Sánchez, A. (1993) Implementations and behavioural equivalence: a survey. Invited Lecture. 8th Workshop on Specification of Abstract Data Types (Dourdan, 1991). Springer-Verlag Lecture Notes in Computer Science 655 93125.Google Scholar
Orejas, F., Navarro, M. and Sánchez, A. (1994): On the correctness of modular systems. Theoretical Computer Science (to appear).Google Scholar
Orejas, F., Sacristan, V. and Clérici, S. (1989) Development of algebraic specifications with constraints. Proc. Workshop on Categorical Methods in Computer Science with Aspects from Topology. Springer-Verlag Lecture Notes in Computer Science 393 102123.Google Scholar
Poigné, A. (1984) Another look at parameterization using subsorts, Proc. MFCS 84. Springer-Verlag Lecture Notes in Computer Science 176.Google Scholar
Reichel, H. (1981) Behavioural equivalence – a unifying concept for initial and final specification methods. Proc. 3rd Hungarian Comp. Sci. Conference 2739.Google Scholar
Sánchez, A. (1992) Implementatión de Especificaciones Algebraicas, Ph.D. Thesis, Depto. de Leng. Y Sist. Inf., Basque Country University, Spain.Google Scholar
Sannella, D. T. and Tarlecki, A. (1987) On observational equivalence and algebraic specification. Journal of Computer and System Sciences 34 150178.Google Scholar
Sannella, D. T. and Tarlecki, A. (1988a) Toward formal development of programs from algebraic specifications: implementations revisited. Acta Informatica 25 233–281. (Extended abstract in Proc. Joint Conf. on Theory and Practice of Software Development, Pisa, Springer- Verlag Lecture Notes in Computer Science 249, 96110 (1987).)Google Scholar
Sannella, D. T. and Tarlecki, A. (1988b) Specifications in an arbitrary institution. Information and Computation 76 165210.Google Scholar
Sannella, D. T. and Tarlecki, A. (1989) Toward formal development of ML programs: foundations and methodology. In: Proc. TAPSOFT'89, Barcelona. Springer-Verlag Lecture Notes in Computer Science 352 375389.Google Scholar
Sannella, D. T. and Wirsing, M. (1982) Implementation of parameterized specifications. Proc. 9th Intl. Colloq. on Automata, Languages and Programming, Aarhus. Springer-Verlag Lecture Notes in Computer Science 140 473488.Google Scholar
Sannella, D. T. and Wirsing, M. (1983) A kernel language for algebraic specification and implementation. Proc. 1983 Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. Springer-Verlag Lecture Notes in Computer Science 158 413427.Google Scholar
Schoett, O. (1987) Data Abstraction and the Correctness of Modular Programming, Ph.D. thesis (Report CST-42–87, Dept. of Computer Science, Univ. of Edinburgh).Google Scholar
Wirsing, M. (1991) Algebraic Specification. In: Van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, Vol. B; Formal Models and Semantics, Elsevier 675788.Google Scholar