abstract data type definition programming
(ADT) A kind of data abstraction
where a type's internal form is hidden behind a set of access functions. Values of the type are created and inspected only by calls to the access functions. This allows the implementation of the type to be changed without requiring any changes outside the module
in which it is defined. Objects
and ADTs are both forms of data abstraction, but objects are not ADTs. Objects use procedural abstraction (methods), not type abstraction.
A classic example of an ADT is a stack
data type for which functions might be provided to create an empty stack, to push
values onto a stack and to pop
values from a stack.
Reynolds paper (http://cis.upenn.edu/~gunter/publications/documents/taoop94.html).
Cook paper "OOP vs ADTs" (http://wcook.org/papers/OOPvsADT/CookOOPvsADT90.pdf).