Algebraic Specification

Publisher Summary An algebraic specification is a description of one or more abstract data types. There are three main semantic approaches to algebraic specifications: (1) the initial algebra approach, (2) the terminal algebra approach, and (3) the loose approach. A fourth approach that is mainly of theoretical interest uses iso-initial algebras. This chapter reviews the basic concepts for the theory of algebraic specifications. It also describes the notion of an abstract data type and discusses its basic properties. The chapter also describes four other semantic concepts and algebras for specifying nondeterminism and concurrency. The chapter discusses the existence of initial and terminal algebras, the lattice structure of the models, and the expressive power of initial and terminal algebra specifications. The chapter also presents two additional concepts for algebraic specifications, which are both practically and theoretically essential: (1) hidden symbols and (2) constructors. The chapter also presents a general approach to structured specifications.

[1]  J. A. Goguen,et al.  Completeness of many-sorted equational logic , 1981, SIGP.

[2]  Hartmut Ehrig,et al.  A Kernel Language for Algebraic Specification and Implementation , 1983, ADT.

[3]  Andrzej Tarlecki,et al.  Quasi-varieties in Abstract Algebraic Institutions , 1986, J. Comput. Syst. Sci..

[4]  Martin Wirsing,et al.  Structured Algebraic Specifications: A Kernel Language , 1986, Theor. Comput. Sci..

[5]  Hartmut Ehrig,et al.  Algebraic Specifications with Generating Constraints , 1983, ICALP.

[6]  Paulo A. S. Veloso,et al.  Traversable stack with fewer errors , 1979, SIGP.

[7]  Michel Bidoit Algebraic Specification of Exception Handling and Error Recovery by Means of Declarations and Equations , 1984, ICALP.

[8]  Robin Milner,et al.  Fully Abstract Models of Typed lambda-Calculi , 1977, Theor. Comput. Sci..

[9]  Arnold Oberschelp Untersuchungen zur mehrsortigen Quantorenlogik , 1962 .

[10]  Stéphane Kaplan,et al.  Simplifying Conditional Term Rewriting Systems: Unification, Termination and Confluence , 1987, J. Symb. Comput..

[11]  Manfred Broy,et al.  Existential Quantifiers in Abstract Data Types , 1979, ICALP.

[12]  Peter Padawitz,et al.  Parameter-Preserving Data Type Specifications , 1987, J. Comput. Syst. Sci..

[13]  Jan A. Bergstra,et al.  Initial and Final Algebra Semantics for Data Type Specifications: Two Characterization Theorems , 1983, SIAM J. Comput..

[14]  Manfred Broy,et al.  An Analysis of Semantic Models for Algebraic Specifications , 1982 .

[15]  Mitchell Wand,et al.  Final Algebra Semantics and Data Type Extensions , 1979, J. Comput. Syst. Sci..

[16]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

[17]  Wim H. Hesselink,et al.  A mathematical approach to nondeterminism in data types , 1988, TOPL.

[18]  Brigitte Biebow,et al.  Exception Handling: Formal Specification and Systematic Program Construction , 1984, IEEE Transactions on Software Engineering.

[19]  Martin Gogolla,et al.  Algebraic and Operational Semantics of Specifications Allowing Exceptions and Errors , 1984, Theor. Comput. Sci..

[20]  Gilles Bernot Correctness Proofs for Abstract Implementation , 1989, Inf. Comput..

[21]  Donald Sannella,et al.  Completeness of Proof Systems for Equational Specifications , 1985, IEEE Transactions on Software Engineering.

[22]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[23]  Hans-Dieter Ehrich On the Theory of Specification, Implementation, and Parametrization of Abstract Data Types , 1982, JACM.

[24]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974 .

[25]  Manfred Broy,et al.  A Systematic Study of Models of Abstract Data Types , 1984, Theor. Comput. Sci..

[26]  K. J. Barwise,et al.  Axioms for abstract model theory , 1974 .

[27]  Samuel N. Kamin Final Data Types and Their Specification , 1983, TOPL.

[28]  Martin Wirsing,et al.  Implementation of Parameterised Specifications (Extended Abstract) , 1982, ICALP.

[29]  Christine Choppy,et al.  Abstract Data Types with Exception Handling: An Initial Approach Based on a Distinction Between Exceptions and Errors , 1986, Theor. Comput. Sci..

[30]  A. Selman Completeness of calculii for axiomatically defined classes of algebras , 1972 .

[31]  Donald Sannella,et al.  Specifications in an Arbitrary Institution , 1988, Inf. Comput..

[32]  Giancarlo Mauri,et al.  Why and Where: A Characterization of Data Provenance , 2001, ICDT.

[33]  Manfred Broy,et al.  Algebraic Implementations Preserve Program Correctness , 1986, Sci. Comput. Program..

[34]  Fernando Orejas,et al.  Characterizing Composability of Abstract Implementations , 1983, FCT.

[35]  Gérard P. Huet,et al.  Proofs by induction in equational theories with constructors , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[36]  Hartmut Ehrig,et al.  Algebraic Implementation of Abstract Data Types , 1982, Theor. Comput. Sci..

[37]  Donald Sannella,et al.  On Observational Equivalence and Algebraic Specification , 1987, J. Comput. Syst. Sci..

[38]  Martin Wirsing,et al.  Implementation of parameterised specifications: Automata, Languages and Programming , 1982 .

[39]  Fernando Orejas,et al.  A Characterization of Passing Compatibility for Parameterized Specifications , 1987, Theor. Comput. Sci..

[40]  Egidio Astesiano,et al.  On the Existence of Initial Models for Partial (Higher-Order) Conditional Specifications , 1989, TAPSOFT, Vol.1.

[41]  Jan A. Bergstra,et al.  The Completeness of the Algebraic Specification Methods for Computable Data Types , 1982, Inf. Control..

[42]  Mila E. Majster,et al.  Data types, abstract data types and their specification problem , 1979 .

[43]  A. I. Mal'tsev CONSTRUCTIVE ALGEBRAS I , 1961 .

[44]  Hartmut Ehrig,et al.  Parameter passing commutes with implementation of parameterized data types , 1982 .

[45]  Peter Padawitz,et al.  The Equational Theory of Parameterized Specifications , 1988, Inf. Comput..

[46]  Joseph A. Goguen,et al.  Initial Algebra Semantics and Continuous Algebras , 1977, J. ACM.

[47]  Friedrich L. Bauer,et al.  Programming in a Wide Spectrum Language: A Collection of Examples , 1981, Sci. Comput. Program..

[48]  Manfred Broy,et al.  Predicative Specifications for Functional Programs Describing Communication Networks , 1987, Inf. Process. Lett..

[49]  Harald Ganzinger,et al.  Parameterized Specifications: Parameter Passing and Implementation with Respect to Observability , 1983, TOPL.

[50]  Hartmut Ehrig,et al.  Parameter Passing in Algebraic Specification Languages , 1984, Theor. Comput. Sci..

[51]  P. A. Subrahmanyam Nondeterminism in Abstract Data Types , 1981, ICALP.

[52]  Deepak Kapur,et al.  Proof by Consistency , 1987, Artif. Intell..

[53]  Manfred Broy,et al.  Specification and Top-Down Design of Distributed Systems , 1987, J. Comput. Syst. Sci..

[54]  Jan A. Bergstra,et al.  Algebraic Specifications of Computable and Semicomputable Data Types , 1987, Theor. Comput. Sci..

[55]  Joseph A. Goguen,et al.  The Semantics of CLEAR, A Specification Language , 1979, Abstract Software Specifications.