Additional keywords and phrases:
control abstractions, data abstractions,
compiler support,
description systems,
behavioral specification,
implementation specification
The kind of abstraction provided by ADTs can be supported
by any language with a procedure call mechanism
(given that appropriate protocols are developed
and observed by the programmer).
empty
right append
left append
concatenation
lifting
multiple arguments
attribute
method
function n : ctr -> nat
method incr : ctr -> ctr
axioms
n(new(C)) = 0
n(incr(C)) = n(C) + 1
end
(under)
(right)
(over)
(type)
(signature)
(classes)
There is a vast amount of literature on the algebraic
specification of abstract data types.
You may consult, for example,