Ownership, Uniqueness, and Immutability

  • Johan Östlund
  • Tobias Wrigstad
  • Dave Clarke
  • Beatrice Åkerblom
Part of the Lecture Notes in Business Information Processing book series (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, Joe3, imposes little additional syntactic overhead, yet can encode powerful patterns such as fractional permissions and the reference modes of Flexible Alias Protection.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 2.
    Bierhoff, K., Aldrich, J.: Modular typestate checking of aliased objects. In: OOPSLA (2007)Google Scholar
  3. 3.
    Bokowski, B., Vitek, J.: Confined Types. In: OOPSLA (1999)Google Scholar
  4. 4.
    Boyapati, C.: SafeJava: A Unified Type System for Safe Programming. PhD thesis, Electrical Engineering and Computer Science. MIT (February 2004)Google Scholar
  5. 5.
    Boyland, J.: Alias burying: Unique variables without destructive reads. Software — Practice and Experience (2001)Google Scholar
  6. 6.
    Boyland, J.: Checking interference with fractional permissions. In: Static Analysis: 10th International Symposium (2003)Google Scholar
  7. 7.
    Boyland, J.: Why we should not add readonly to Java (yet). Journal of Object Technology (2006); Special issue: ECOOP 2005 Workshop FTfJPGoogle Scholar
  8. 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)CrossRefGoogle Scholar
  9. 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. 10.
    Clarke, D., Drossopoulou, S.: Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA (2002)Google Scholar
  11. 11.
    Clarke, D., Potter, J., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA (1998)Google Scholar
  12. 12.
    Clarke, D., Wrigstad, T.: External uniqueness. In: FOOL (2003)Google Scholar
  13. 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. 14.
    Dietl, W., Drossopoulou, S., Müller, P.: Generic Universe Types. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  15. 15.
    Dietl, W., Müller, P.: Universes: Lightweight Ownership for JML. Journal of Object Technology 4(8), 5–32 (2005)Google Scholar
  16. 16.
    Greenhouse, A., Boyland, J.: An object-oriented effects system. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  17. 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)CrossRefGoogle Scholar
  18. 18.
    Hogg, J.: Islands: Aliasing protection in object-oriented languages. In: OOPSLA (November 1991)Google Scholar
  19. 19.
    Kniesel, G., Theisen, D.: JAC—access right based encapsulation for Java. Software — Practice and Experience (2001)Google Scholar
  20. 20.
    Leino, K.R.M.: Data Groups: Specifying the Modification of Extended State. In: OOPSLA (1998)Google Scholar
  21. 21.
    Lu, Y., Potter, J.: Protecting representation with effect encapsulation. In: POPL (2006)Google Scholar
  22. 22.
    Lucassen, J.M., Gifford, D.K.: Polymorphic effect systems. In: POPL (1988)Google Scholar
  23. 23.
    Müller, P.: Modular Specification and Verification of Object-Oriented Programs. PhD thesis, FernUniversität Hagen (2001)Google Scholar
  24. 24.
    Müller, P., Poetzsch-Heffter, A.: Universes: A type system for controlling representation exposure. Technical report, Fernuniversität Hagen (1999)Google Scholar
  25. 25.
    Müller, P., Rudich, A.: Ownership transfer in Universe Types. In: OOPSLA (2007)Google Scholar
  26. 26.
    Noble, J., Vitek, J., Potter, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  27. 27.
    Skoglund, M., Wrigstad, T.: Alias control with read-only references. In: Sixth Conference on Computer Science and Informatics (March 2002)Google Scholar
  28. 28.
    Talpin, J.-P., Jouvelot, P.: Polymorphic type, region and effect inference. Journal of Functional Programming (1992)Google Scholar
  29. 29.
    Tschantz, M.S., Ernst, M.D.: Javari: Adding reference immutability to Java. In: OOPSLA (2005)Google Scholar
  30. 30.
    Wrigstad, T.: Ownership-Based Alias Management. PhD thesis, Royal Institute of Technology, Kista, Stockholm (May 2006)Google Scholar
  31. 31.
    Zhao, T., Palsberg, J., Vitek, J.: Type-based confinement. Journal of Functional Programming 15(6) (2005)Google Scholar
  32. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Johan Östlund
    • 1
  • Tobias Wrigstad
    • 1
  • Dave Clarke
    • 2
  • Beatrice Åkerblom
    • 3
  1. 1.Purdue UniversityIndianaUSA
  2. 2.CWIAmsterdamThe Netherlands
  3. 3.Stockholm UniversityStockholmSweden

Personalised recommendations