This chapter presents an introduction to
the theoretical foundations of abstract
data types.
In particular, an algebraic treatment is
given of abstract data types defined by equational theories.
We then extend this approach to include objects
with dynamic state changes.
We start this chapter with a discussion of the notion of types
and reflect on how types affect object-oriented
programming.
At the end of the chapter, a distinction is made between
a syntactic, semantic and operational
interpretation of types.
The notion of data abstraction gives rise
to a wealth of possibly interesting assignments.
For example, one may think of
exploring
including proof-theoretical aspects
with respect to invariance properties,
as outlined in chapter refinement.
Another interesting area of investigation is
In particular, do we need modules when we have classes,
and how may they be integrated with classes with
respect to visibility and protection?
Hints
Project assignments
Comments
[]
readme
course
preface
1
2
3
4
5
6
7
8
9
10
11
12
appendix
lectures
resources

draft version 0.1 (15/7/2001)