2005
DOI: 10.1145/1101821.1101824
|View full text |Cite
|
Sign up to set email alerts
|

Ownership confinement ensures representation independence for object-oriented programs

Abstract: 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 lan… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
114
0

Year Published

2005
2005
2012
2012

Publication Types

Select...
7

Relationship

2
5

Authors

Journals

citations
Cited by 80 publications
(114 citation statements)
references
References 87 publications
0
114
0
Order By: Relevance
“…Suitable results -analogs of our Assumption 5.1 and Lemma 5.4-are a special case of the theory of representation independence and have been developed for many sorts of languages (Mitchell, 1996;de Roever and Engelhardt, 1998). For Java-like languages, Banerjee and Naumann (2005a) give such a theory under the assumption of suitable alias control which can be achieved using static analysis (Banerjee and Naumann, 2005a;Müller, 2002;Clarke and Drossopoulou, 2002). In these works, alias control is based on the idea that an object "owns" some objects that comprise its encapsulated representations; the static analysis uses annotated types to check that the representation objects are not exposed to clients.…”
Section: Resultsmentioning
confidence: 99%
See 2 more Smart Citations
“…Suitable results -analogs of our Assumption 5.1 and Lemma 5.4-are a special case of the theory of representation independence and have been developed for many sorts of languages (Mitchell, 1996;de Roever and Engelhardt, 1998). For Java-like languages, Banerjee and Naumann (2005a) give such a theory under the assumption of suitable alias control which can be achieved using static analysis (Banerjee and Naumann, 2005a;Müller, 2002;Clarke and Drossopoulou, 2002). In these works, alias control is based on the idea that an object "owns" some objects that comprise its encapsulated representations; the static analysis uses annotated types to check that the representation objects are not exposed to clients.…”
Section: Resultsmentioning
confidence: 99%
“…For couplings of this sort, it is a corollary of Banerjee and Naumann (2005a) that Assumption 5.1 holds, in a Java-like language, for all contexts that respect private visibility. That is, the fact that these fields have private visibility is enough to encapsulate them within the class.…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…Ownership types [30,31,32,33,34,35] provide a way of specifying object encapsulation and enabling local reasoning about program correctness in object-oriented programs. While ownership types may be sufficient to select loop data structures and check whether they are confined, these types cannot detect loop-invariant values, which are dependence-related properties.…”
Section: Related Static Analysesmentioning
confidence: 99%
“…Representation independence, which means that a class can safely be replaced by another "equivalent" class provided it is encapsulated, i.e., its internal representation is owned by instances of that class, is proven in [4]. In [5] the approach is extended to deal with shared state, recursive methods and callbacks, and the application to program equivalence.…”
Section: Hierarchic Shapes For Program Verificationmentioning
confidence: 99%