Abstract
Ownership types promise to provide a practical mechanism for enforcing stronger encapsulation by controlling aliasing in object-oriented languages. However, previous ownership type proposals have tied the aliasing policy of a system to the mechanism of ownership. As a result, these proposals are too weak to express many important aliasing constraints, yet also so restrictive that they prohibit many useful programming idioms.
In this paper, we propose ownership domains, which decouple encapsulation policy from the mechanism of ownership in two key ways. First, developers can specify multiple ownership domains for each object, permitting a fine-grained control of aliasing compared to systems that provide only one ownership domain for each object. Second, developers can specify the permitted aliasing between each pair of domains in the system, providing more flexibility compared to systems that enforce a fixed policy for inter-domain aliasing. Because it decouples policy from mechanism, our alias control system is both more precise and more flexible than previous ownership type systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aldrich, J.: Using Types to Enforce Architectural Structure. PhD thesis, University of Washington (August 2003)
Aldrich, J., Chambers, C.: Ownership Domains: Separating Aliasing Policy from Mechanism. Carnegie Mellon Technical Report CMU-ISRI-04-110 (April 2004), available at http://www.cs.cmu.edu/~aldrich/papers/
Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning with ArchJava. In: European Conference on Object-Oriented Programming (June 2002)
Aldrich, J., Kostadinov, V., Chambers, C.: Alias Annotations for Program Understanding. In: Object-Oriented Programming Systems, Languages, and Applications (November 2002)
Almeida, P.S.: Balloon Types: Controlling Sharing of State in Data Types. In: European Conference on Object-Oriented Programming (June 1997)
Banerjee, A., Naumann, D.A.: Representation Independence, Confinement, and Access Control. In: Principles of Programming Languages (January 2002)
Bokowski, B., Vitek, J.: Confined Types. In: Object-Oriented Programming Systems, Languages, and Applications (November 1999)
Boyapati, C., Lee, R., Rinard, M.: Ownership Types for Safe Programming: Preventing Data Races and Deadlocks. In: Object-Oriented Programming Systems, Languages, and Applications (November 2002)
Boyapati, C., Salcianu, A., William Beebee, J., Rinard, M.: Ownership Types for Safe Region-Based Memory Mangement in Real-Time Java. In: Programming Language Design and Implementation (June 2003)
Clarke, D.: Object Ownership & Containment. PhD thesis, University of New South Wales (July 2001)
Clarke, D., Drossopoulou, S.: Ownership, Encapsulation, and the Disjointness of Type and Effect. In: Object-Oriented Programming Systems, Languages, and Applications (November 2002)
Clarke, D., Wrigstad, T.: External Uniqueness is Unique Enough. In: European Conference on Object-Oriented Programming (July 2003)
Clarke, D.G., Potter, J.M., Noble, J.: Ownership Types for Flexible Alias Protection. In: Object-Oriented Programming Systems, Languages, and Applications (October 1998)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
Garlan, D., Shaw, M.: An Introduction to Software Architecture. In: Ambriola, V., Tortora, G. (eds.) Advances in Software Engineering and Knowledge Engineering, I (1993)
Greenhouse, A., Boyland, J.: An Object-Oriented Effects System. In: European Conference on Object-Oriented Programming (June 1999)
Hogg, J.: Islands: Aliasing Protection in Object-Oriented Languages. In: Object- Oriented Programming Systems, Languages, and Applications (October 1991)
Igarashi, A., Pierce, B., Wadler, P.: Featherwieght Java: a Minimal Core Calculus for Java and GJ. In: Object-Oriented Programming Systems, Languages, and Applications (November 1999)
Lam, P., Rinard, M.: A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information. In: European Conference on Object-Oriented Programming (July 2003)
Leino, K.R.M., Poetzsch-Heffter, A., Zhou, Y.: Using Data Groups to Specify and Check Side Effects. In: Programming Language Design and Implementation (June 2002)
Muller, P., Poetzsch-Heffter, A.: Universes: A Type System for Controlling Representation Exposure. In: Poetzsch-Heffter, A., Meyer, J. (eds.) Programming Languages and Fundamentals of Programming (1999)
Noble, J., Biddle, R., Tempero, E., Potanin, A., Clarke, D.: Towards a Model of Encapsulation. In: Intercontinental Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (July 2003)
Noble, J., Vitek, J., Potter, J.: Flexible Alias Protection. In: European Conference on Object-Oriented Programming (1998)
Potanin, A., Noble, J., Clarke, D., Biddle, R.: Featherweight Generic Confinement. In: Foundations of Object-Oriented Languages (January 2004)
Reynolds, J.C.: Separation Logic: a Logic for Shared Mutable Data Structures. In: Logic in Computer Science (July 2002)
Sullivan, K., Notkin, D.: Reconciling Environment Integration and Software Evolution. Transactions on Software Engineering and Methodology 1(3) (July 1992)
Walker, D., Morrisett, G.: Alias Types for Recursive Data Structures. In: International Workshop on Types in Compilation (September 2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aldrich, J., Chambers, C. (2004). Ownership Domains: Separating Aliasing Policy from Mechanism. In: Odersky, M. (eds) ECOOP 2004 – Object-Oriented Programming. ECOOP 2004. Lecture Notes in Computer Science, vol 3086. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24851-4_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-24851-4_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22159-3
Online ISBN: 978-3-540-24851-4
eBook Packages: Springer Book Archive