The history of programming languages may be characterized
as the genesis of increasingly powerful abstractions
to aid the development of reliable programs.
Abstract data types
8
- abstraction and types
- algebraic specification
- modules versus classes
- types as constraints
Additional keywords and phrases:
control abstractions, data abstractions,
compiler support,
description systems,
behavioral specification,
implementation specification
slide: Abstract data types
In this chapter we will look at the notion of
abstract data types, which may be regarded as
an essential constituent of object-oriented modeling.
In particular, we will study the notion of data abstraction
from a foundational perspective, that is based on
a mathematical description of types.
We start this chapter by discussing the notion of
types as constraints.
Then, we look at the (first order) algebraic specification of
abstract data types, and
we explore the trade-offs between the traditional
implementation of abstract data types by employing modules
and the object-oriented approach employing classes.
We conclude this chapter by exploring the
distinction between classes and types,
as a preparation for the treatment of
(higher order) polymorphic type theories for object
types and inheritance in the next chapter.