Skip to main content

Ownership, Uniqueness, and Immutability

  • Conference paper

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 11))

Abstract

Programming in an object-oriented language demands a fine balance between flexibility and control. At one level, objects need to interact freely to achieve our implementation goals. At a higher level, architectural constraints that ensure the system can be understood by new developers and can evolve as requirements change must be met. To resolve this tension, researchers have developed type systems expressing ownership and behavioural restrictions such as immutability. This work reports on our consolidation of the resulting discoveries into a single programming language. Our language, Joe 3 , imposes little additional syntactic overhead, yet can encode powerful patterns such as fractional permissions and the reference modes of Flexible Alias Protection.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aldrich, J., Chambers, C.: Ownership domains: Separating aliasing policy from mechanism. In: Malenfant, J., Østvold, B.M. (eds.) ECOOP 2004. LNCS, vol. 3344. Springer, Heidelberg (2005)

    Google Scholar 

  2. Bierhoff, K., Aldrich, J.: Modular typestate checking of aliased objects. In: OOPSLA (2007)

    Google Scholar 

  3. Bokowski, B., Vitek, J.: Confined Types. In: OOPSLA (1999)

    Google Scholar 

  4. Boyapati, C.: SafeJava: A Unified Type System for Safe Programming. PhD thesis, Electrical Engineering and Computer Science. MIT (February 2004)

    Google Scholar 

  5. Boyland, J.: Alias burying: Unique variables without destructive reads. Software — Practice and Experience (2001)

    Google Scholar 

  6. Boyland, J.: Checking interference with fractional permissions. In: Static Analysis: 10th International Symposium (2003)

    Google Scholar 

  7. Boyland, J.: Why we should not add readonly to Java (yet). Journal of Object Technology (2006); Special issue: ECOOP 2005 Workshop FTfJP

    Google Scholar 

  8. Boyland, J., Noble, J., Retert, W.: Capabilities for Sharing: A Generalization of Uniqueness and Read-Only. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  9. Clarke, D.: Object Ownership and Containment. PhD thesis, School of Computer Science and Engineering, University of New South Wales, Sydney, Australia (2001)

    Google Scholar 

  10. Clarke, D., Drossopoulou, S.: Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA (2002)

    Google Scholar 

  11. Clarke, D., Potter, J., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA (1998)

    Google Scholar 

  12. Clarke, D., Wrigstad, T.: External uniqueness. In: FOOL (2003)

    Google Scholar 

  13. Clarke, D., Wrigstad, T.: External uniqueness is unique enough. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Google Scholar 

  14. Dietl, W., Drossopoulou, S., Müller, P.: Generic Universe Types. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  15. Dietl, W., Müller, P.: Universes: Lightweight Ownership for JML. Journal of Object Technology 4(8), 5–32 (2005)

    Google Scholar 

  16. Greenhouse, A., Boyland, J.: An object-oriented effects system. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  17. Haack, C., Poll, E., Schäfer, J., Schubert, A.: Immutable Objects for a Java-like Language. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  18. Hogg, J.: Islands: Aliasing protection in object-oriented languages. In: OOPSLA (November 1991)

    Google Scholar 

  19. Kniesel, G., Theisen, D.: JAC—access right based encapsulation for Java. Software — Practice and Experience (2001)

    Google Scholar 

  20. Leino, K.R.M.: Data Groups: Specifying the Modification of Extended State. In: OOPSLA (1998)

    Google Scholar 

  21. Lu, Y., Potter, J.: Protecting representation with effect encapsulation. In: POPL (2006)

    Google Scholar 

  22. Lucassen, J.M., Gifford, D.K.: Polymorphic effect systems. In: POPL (1988)

    Google Scholar 

  23. Müller, P.: Modular Specification and Verification of Object-Oriented Programs. PhD thesis, FernUniversität Hagen (2001)

    Google Scholar 

  24. Müller, P., Poetzsch-Heffter, A.: Universes: A type system for controlling representation exposure. Technical report, Fernuniversität Hagen (1999)

    Google Scholar 

  25. Müller, P., Rudich, A.: Ownership transfer in Universe Types. In: OOPSLA (2007)

    Google Scholar 

  26. Noble, J., Vitek, J., Potter, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  27. Skoglund, M., Wrigstad, T.: Alias control with read-only references. In: Sixth Conference on Computer Science and Informatics (March 2002)

    Google Scholar 

  28. Talpin, J.-P., Jouvelot, P.: Polymorphic type, region and effect inference. Journal of Functional Programming (1992)

    Google Scholar 

  29. Tschantz, M.S., Ernst, M.D.: Javari: Adding reference immutability to Java. In: OOPSLA (2005)

    Google Scholar 

  30. Wrigstad, T.: Ownership-Based Alias Management. PhD thesis, Royal Institute of Technology, Kista, Stockholm (May 2006)

    Google Scholar 

  31. Zhao, T., Palsberg, J., Vitek, J.: Type-based confinement. Journal of Functional Programming 15(6) (2005)

    Google Scholar 

  32. Zibin, Y., Potanin, A., Artzi, S., Kieżun, A., Ernst, M.D.: Object and reference immutability using Java generics. Technical Report MIT-CSAIL-TR-2007-018, MITCSAIL (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Richard F. Paige Bertrand Meyer

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Östlund, J., Wrigstad, T., Clarke, D., Åkerblom, B. (2008). Ownership, Uniqueness, and Immutability. In: Paige, R.F., Meyer, B. (eds) Objects, Components, Models and Patterns. TOOLS EUROPE 2008. Lecture Notes in Business Information Processing, vol 11. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69824-1_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69824-1_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69823-4

  • Online ISBN: 978-3-540-69824-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics