Procedural implementation of algebraic specification

An implementation of an algebraic specification in an imperative programming language consists of a representation type, together with an invariant and an equivalence relation over it, and a procedure for each operator in the specification. A formal technique is developed to check the correctness of an implementation with respect to its specification. Here “correctness” means that the implementation satisfies the axioms and preserves the behavior of the specification. Within legal representing value space, a correct implementation behaves like a desirable model of the specification. A notion of implementation refinement is also proposed, and it is shown that the correctness relation between implementations and specifications is preserved by implementation refinement. In the extreme case the procedures in an implementation may be pre-post-condition pairs. Such abstract implementations can be refined into executable code by refining the abstract procedures in it. In this way a formal link between the algebraic and the pre- post-condition specification techniques is established.

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

[2]  Carroll Morgan Procedures, parameters, and abstraction: Separate concerns , 1988, Sci. Comput. Program..

[3]  Samuel N. Kamin,et al.  Partial Implementations of Abstract Data Types: A Dissenting view on Errors , 1984, Semantics of Data Types.

[4]  James J. Horning Combining Algebraic and Predicative Specifications in Larch , 1985, TAPSOFT, Vol.2.

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

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

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

[8]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[9]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[10]  Jeannette M. Wing Writing Larch interface language specifications , 1987, TOPL.

[11]  LinHuimin Procedural implementation of algebraic specification , 1993 .

[12]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[13]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[14]  Mitchell Wand,et al.  Specifications, Models, and Implementations of Data Abstractions , 1982, Theor. Comput. Sci..

[15]  David Lorge Parnas,et al.  The Use of Precise Specification in the Development of Software , 1977, IFIP Congress.

[16]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.