Abstract
A properly encapsulated data representation can be revised for refactoring or other purposes without affecting the correctness of client programs and extensions of a class. But encapsulation is difficult to achieve in object-oriented programs owing to heap based structures and reentrant callbacks. This paper shows that it is achieved by a discipline using assertions and auxiliary fields to manage invariants and transferable ownership. The main result is representation independence: a rule for modular proof of equivalence of class implementations.
| Original language | English |
|---|---|
| Pages (from-to) | 387-411 |
| Number of pages | 25 |
| Journal | Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) |
| Volume | 3586 |
| DOIs | |
| State | Published - 2005 |
| Event | 19th European Conference on Object-Oriented Programming, ECOOP 2005 - Glasgow, United Kingdom Duration: 25 Jul 2005 → 29 Jul 2005 |