Abstract data types

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


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.