The distinction between an abstract data type and an implementation of a data type is not as clear as is commonly thought. A hash table can be used to implement the type bag but few of our colleagues think of a hash table as itself being a data type. Similarly, pointers can be used to give a linked implementation of the data type list, but few of us seem to think of pointers as themselves forming a data type. However we shall give an algebraic specification of a pointer data type which is an abstraction of the representation of pointers in Pascal. The usual linked structures can then be specified abstractly via mutually recursive type specifications. In addition we shall describe a uniform method of constructing implementations of data type specifications via operations on strings.
[1]
James J. Horning,et al.
Some Notes on Putting Formal Specifications to Productive Use
,
1982,
Sci. Comput. Program..
[2]
James J. Horning,et al.
The algebraic specification of abstract data types
,
1978,
Acta Informatica.
[3]
Ellis Horowitz,et al.
The design of data type specifications
,
1976,
ICSE '76.
[4]
Abha Moitra.
Direct Implementation of Algebraic Specification of Abstract Data Types
,
1982,
IEEE Transactions on Software Engineering.
[5]
David R. Musser,et al.
Abstract Data Type Specification in the Affirm System
,
1980,
IEEE Transactions on Software Engineering.