ACM Home Page
Please provide us with feedback. Feedback
Ownership types for object encapsulation
Full text PdfPdf (308 KB)
Source ACM SIGPLAN Notices archive
Volume 38 ,  Issue 1  (January 2003) table of contents
Pages: 213 - 223  
Year of Publication: 2003
ISSN:0362-1340
Also published in ...
Authors
Chandrasekhar Boyapati  Massachusetts Intitute of Technology, Cambridge, MA
Barbara Liskov  Massachusetts Intitute of Technology, Cambridge, MA
Liuba Shrira  Brandeis University, Waltham, MA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 79,   Citation Count: 36
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/640128.604156
What is a DOI?

ABSTRACT

Ownership types provide a statically enforceable way of specifying object encapsulation and enable local reasoning about program correctness in object-oriented languages. However, a type system that enforces strict object encapsulation is too constraining: it does not allow efficient implementation of important constructs like iterators. This paper argues that the right way to solve the problem is to allow objects of classes defined in the same module to have privileged access to each other's representations; we show how to do this for inner classes. This approach allows programmers to express constructs like iterators and yet supports local reasoning about the correctness of the classes, because a class and its inner classes together can be reasoned about as a module. The paper also sketches how we use our variant of ownership types to enable efficient software upgrades in persistent object stores.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
P. S. Almeida. Balloon types: Controlling sharing of state in data types. In European Conference for Object-Oriented Programming (ECOOP), June 1997.
 
4
 
5
M. P. Atkinson, M. J. Jordan, L. Daynes, and S. Spence. Design issues for persistent Java: A type-safe, object-oriented, orthogonally persistent system. In Persistent Object Systems (POS), May 1996.
6
7
8
 
9
C. Boyapati. JPS: A distributed persistent Java system. SM thesis, Massachusetts Institute of Technology, September 1998.
 
10
C. Boyapati, R. Lee, and M. Rinard. Safe runtime downcasts with ownership types. Technical Report TR-853, MIT Laboratory for Computer Science, June 2002.
11
 
12
C. Boyapati, B. Liskov, and L. Shrira. Ownership types and safe lazy upgrades in object-oriented databases. Technical Report TR-858, MIT Laboratory for Computer Science, July 2002.
 
13
C. Boyapati, B. Liskov, L. Shrira, C. Moh, and S. Richman. Lazy modular upgrades in persistent object stores. Submitted for publication, November 2002.
14
 
15
C. Boyapati, A. Salcianu, W. Beebee, Jr., and M. Rinard. Ownership types for safe region-based memory management in Real-Time Java. Submitted for publication, November 2002.
16
17
18
 
19
20
 
21
22
 
23
D. G. Clarke and T. Wrigstad. External uniqueness. In Workshop on Foundations of Object-Oriented Languages (FOOL), January 2003.
24
25
26
27
 
28
D. L. Detlefs, K. R. M. Leino, and G. Nelson. Wrestling with rep exposure. Research Report 156, Compaq Systems Research Center, July 1998.
 
29
30
31
 
32
 
33
 
34
35
36
37
 
38
JavaSoft. Inner class specification, February 1997. Available at http://java.sun.com/products/JDK/1.1.
39
40
41
42
 
43
K. R. M. Leino and G. Nelson. Data abstraction and information hiding. Research Report 160, Compaq Systems Research Center, November 2000.
44
45
 
46
 
47
B. Liskov, C. Moh, S. Richman, L. Shrira, Y. Cheung, and C. Boyapati. Safe lazy software upgrades in object-oriented databases. Technical Report TR-851, MIT Laboratory for Computer Science, June 2002.
48
49
 
50
 
51
52
 
53
P. Muller and A. Poetzsch-Heffter. Universes: A type system for controlling representation exposure. In A. Poetzsch-Heffter and J. Meyer, editors, Programming Languages and Fundamentals of Programming. 1999.
54
 
55
 
56
Object Design Inc. ObjectStore Advanced C++ API User Guide Release 5.1, 1997.
57
58
 
59
A. Salcianu, C. Boyapati, W. Beebee, Jr., and M. Rinard. A type system for safe region-based memory management in Real-Time Java. Technical Report TR-869, MIT Laboratory for Computer Science, November 2002.
 
60
61
 
62
P. Wadler. Linear types can change the world. In M. Broy and C. Jones, editors, Programming Concepts and Methods. 1990.
 
63

CITED BY  36

Collaborative Colleagues:
Chandrasekhar Boyapati: colleagues
Barbara Liskov: colleagues
Liuba Shrira: colleagues