Computer Science – Programming Languages
Scientific paper
2002-12-04
Computer Science
Programming Languages
88 pages, 13 figures
Scientific paper
Dedicated to the memory of Edsger W.Dijkstra. Representation independence or relational parametricity formally characterizes the encapsulation provided by language constructs for data abstraction and justifies reasoning by simulation. Representation independence has been shown for a variety of languages and constructs but not for shared references to mutable state; indeed it fails in general for such languages. This paper formulates representation independence for classes, in an imperative, object-oriented language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and a simple form of module. An instance of a class is considered to implement an abstraction using private fields and so-called representation objects. Encapsulation of representation objects is expressed by a restriction, called confinement, on aliasing. Representation independence is proved for programs satisfying the confinement condition. A static analysis is given for confinement that accepts common designs such as the observer and factory patterns. The formalization takes into account not only the usual interface between a client and a class that provides an abstraction but also the interface (often called ``protected'') between the class and its subclasses.
Banerjee Anindya
Naumann David A.
No associations
LandOfFree
Ownership Confinement Ensures Representation Independence for Object-Oriented Programs does not yet have a rating. At this time, there are no reviews or comments for this scientific paper.
If you have personal experience with Ownership Confinement Ensures Representation Independence for Object-Oriented Programs, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Ownership Confinement Ensures Representation Independence for Object-Oriented Programs will most certainly appreciate the feedback.
Profile ID: LFWR-SCP-O-702821