Abstract Chapter 4 Abstract Chapter 5 Abstract Chapter 6 Summary Samenvatting Data Abstraction Data abstraction mechanisms in programming languages are important tools in the process of producing reliable software. One well-known data abstraction mechanism is the abstract data type. Two well-known approaches to multiple implementation abstract data types are data encapsulation and procedural encapsulation.
Data encapsulation relies on a type system with existential types.
One special feature of its type system is that it has a special linear type like type system called uniqueness types. The encorporation of the two encapsulation methods is straightforward if uniqueness types are not taken into account. However, the uniqueness type system causes complications with respect to procedural encapsulation. We present a semantically equivalent procedural encapsulation method that alleviates these complications. Finally, we compare the runtime performance of the two multiple implementation abstract data types with the standard single implementation abstract data type mechanism of Clean.