Some remarks on abstract data types

Some attention has been given recently to abstract data types as a powerful programming concept [1,2,3,4]. In this approach, abstract data types are viewed as sets together with the operators on these sets. One may define a data type either operationally, by writing the procedures for each operator, or denotationally, using many-sorted (heterogeneous) algebras as described for example by Guttag [1,2]. In the algebraic approach to specifying abstract data types, these two problems are raised.1) It is difficult to prove "sufficiency-completeness". That is, it is difficult to prove that the equations characterize the data structure in question.2) The algebraic presentation (that is, the set of equations defining the type) is not very readable or easy to construct.The purpose of this note is to point out that both these problems have a solution, and in fact the solutions are interrelated. These results were originally developed by Goguen et al [5], and an intuitive description of the process is given here.