Objectives
This section gives an introduction to an algebraic
approach to abstract data types and objects.
It first presents an example of an algebraic
specification and then deals with the notions of signature,
generator universe and equivalence classes.
The meaning of an algebraic specification
is characterized as a collection of mathematical
models, of which the initial model may be
considered the preferred model.
Finally, we explain how objects allowing for dynamic state changes
may be characterized as algebras.
Points to emphasize
- signature -- producers and observers
- generator universe -- equivalence classes
- initial model -- no junk, no confusion
- objects -- multiple world semantics
Hints
The intuition underlying an algebraic approach
to abstract data types is simply that a type
may considered to be a collection of related functions
that define the elements of the type.
These functions are defined by equations, that may
operationally be regarded as rewrite rules.
Questions
- What is a signature?
What distinction can you make between the
various functions specified in a signature?
- What is an initial model?
What properties does such a model satisfy?
- How would you characterize the meaning
of an object with dynamic state changes in an
algebraic fashion?
Comments
Abstract data types are an important topic in
computer science and software engineering.
Although objects may be given an algebraic interpretation,
the distinction between ordinary data types and objects
is clearly reflected in the additional formal machinery
needed to model dynamic state changes.