topical media & game development
object-oriented programming
Summary
object-oriented programming
This chapter has presented an introduction
to the theoretical foundations of
abstract data types.
In particular, a characterization was
given of
types as constraints.
1
- abstraction -- control and data
- abstract data types -- values in a semantic domain
- types as constraints -- mathematical models
slide: Section 8.1: Abstraction and types
In section 1,
we discussed the notion of abstraction
in programming languages and
distinguished between control and
data abstractions.
Abstract data types were characterized as values in some domain,
and we looked at the various ways in which
to define mathematical models
for types.
2
- signature -- producers and observers
- generator universe -- equivalence classes
- initial model -- no junk, no confusion
- objects -- multiple world semantics
slide: Section 8.2: Algebraic specification
In section 2,
we studied the algebraic specification
of abstract data types by means of
a signature characterizing producers
and observers.
We discussed the notions of equivalence
classes and initial models,
which consist of precisely the equivalence
classes that are needed.
,p>
Also, we looked at the interpretation of
objects as algebras, and we discussed
a multiple world semantics allowing for
dynamic state changes.
3
- data abstraction -- generators/observers matrix
- modules -- operation-oriented
- objects -- data-oriented
slide: Section 8.3: Decomposition -- modules versus objects
In section 3,
we looked at the various ways we may realize data abstractions
and we distinguished between a modular
approach, defining a collection of
operations, and a data-oriented approach,
employing objects.
4
- types -- syntactically, semantically, pragmatically
- compatible modifications -- type, signature, class
slide: Section 8.4: Types versus classes
Finally, in section 4, we discussed the differences
between a syntactic, semantic and operational
interpretation of types,
and how these viewpoints affect our
notion of refinement or compatible
modification.
object-oriented programming
- Characterize the differences between control
abstractions and data abstractions.
Explain how these two kinds of abstractions
may be embodied in programming language constructs.
- How can you model the meaning of abstract data types
in a mathematical way?
Do you know any alternative ways?
- Explain how types may affect object-oriented programming.
- Explain how you may characterize an abstract data type
by means of a matrix with generator columns and observer
rows.
What benefits does such an organization have?
- How would you characterize the differences between
the realization of abstract data types by modules
and by objects?
Discuss the trade-offs involved.
- How would you characterize the distinction
between types and classes?
Mention three ways of specifying types.
How are these kinds related to each other?
- How would you characterize behavior compatible
modifications?
What alternatives can you think of?
slide: Questions
object-oriented programming
There is a vast amount of literature on the algebraic
specification of abstract data types.
You may consult, for example, [Dahl92].
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.