Principles of Object-Oriented Software Development
[] readme course preface 1 2 3 4 5 6 7 8 9 10 11 12 appendix lectures resources

talk show tell print

This chapter has presented an introduction to the theoretical foundations of abstract data types. In particular, a characterization was given of types as constraints.

Abstraction and types

1



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.

Algebraic specification

2



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.

Decomposition -- modules versus objects

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.

Types versus classes

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.


[] readme course preface 1 2 3 4 5 6 7 8 9 10 11 12 appendix lectures resources
eliens@cs.vu.nl

draft version 0.1 (15/7/2001)