Skip to main content

Ownership Domains: Separating Aliasing Policy from Mechanism

  • Conference paper
ECOOP 2004 – Object-Oriented Programming (ECOOP 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3086))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aldrich, J.: Using Types to Enforce Architectural Structure. PhD thesis, University of Washington (August 2003)

    Google Scholar 

  2. 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/

  3. Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning with ArchJava. In: European Conference on Object-Oriented Programming (June 2002)

    Google Scholar 

  4. Aldrich, J., Kostadinov, V., Chambers, C.: Alias Annotations for Program Understanding. In: Object-Oriented Programming Systems, Languages, and Applications (November 2002)

    Google Scholar 

  5. Almeida, P.S.: Balloon Types: Controlling Sharing of State in Data Types. In: European Conference on Object-Oriented Programming (June 1997)

    Google Scholar 

  6. Banerjee, A., Naumann, D.A.: Representation Independence, Confinement, and Access Control. In: Principles of Programming Languages (January 2002)

    Google Scholar 

  7. Bokowski, B., Vitek, J.: Confined Types. In: Object-Oriented Programming Systems, Languages, and Applications (November 1999)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Clarke, D.: Object Ownership & Containment. PhD thesis, University of New South Wales (July 2001)

    Google Scholar 

  11. Clarke, D., Drossopoulou, S.: Ownership, Encapsulation, and the Disjointness of Type and Effect. In: Object-Oriented Programming Systems, Languages, and Applications (November 2002)

    Google Scholar 

  12. Clarke, D., Wrigstad, T.: External Uniqueness is Unique Enough. In: European Conference on Object-Oriented Programming (July 2003)

    Google Scholar 

  13. Clarke, D.G., Potter, J.M., Noble, J.: Ownership Types for Flexible Alias Protection. In: Object-Oriented Programming Systems, Languages, and Applications (October 1998)

    Google Scholar 

  14. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)

    Google Scholar 

  15. Garlan, D., Shaw, M.: An Introduction to Software Architecture. In: Ambriola, V., Tortora, G. (eds.) Advances in Software Engineering and Knowledge Engineering, I (1993)

    Google Scholar 

  16. Greenhouse, A., Boyland, J.: An Object-Oriented Effects System. In: European Conference on Object-Oriented Programming (June 1999)

    Google Scholar 

  17. Hogg, J.: Islands: Aliasing Protection in Object-Oriented Languages. In: Object- Oriented Programming Systems, Languages, and Applications (October 1991)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. Noble, J., Vitek, J., Potter, J.: Flexible Alias Protection. In: European Conference on Object-Oriented Programming (1998)

    Google Scholar 

  24. Potanin, A., Noble, J., Clarke, D., Biddle, R.: Featherweight Generic Confinement. In: Foundations of Object-Oriented Languages (January 2004)

    Google Scholar 

  25. Reynolds, J.C.: Separation Logic: a Logic for Shared Mutable Data Structures. In: Logic in Computer Science (July 2002)

    Google Scholar 

  26. Sullivan, K., Notkin, D.: Reconciling Environment Integration and Software Evolution. Transactions on Software Engineering and Methodology 1(3) (July 1992)

    Google Scholar 

  27. Walker, D., Morrisett, G.: Alias Types for Recursive Data Structures. In: International Workshop on Types in Compilation (September 2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics