TY - JOUR
T1 - State based ownership, reentrance, and encapsulation
AU - Banerjee, Anindya
AU - Naumann, David A.
PY - 2005
Y1 - 2005
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=26444459810&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=26444459810&partnerID=8YFLogxK
U2 - 10.1007/11531142_17
DO - 10.1007/11531142_17
M3 - Conference article
AN - SCOPUS:26444459810
SN - 0302-9743
VL - 3586
SP - 387
EP - 411
JO - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
JF - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
T2 - 19th European Conference on Object-Oriented Programming, ECOOP 2005
Y2 - 25 July 2005 through 29 July 2005
ER -