Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7850))

Abstract

Ownership types were devised nearly 15 years ago to provide a stronger notion of protection to object-oriented programming languages. Rather than simply protecting the fields of an object from external access, ownership types protect also the objects stored in the fields, thereby enabling an object to claim (exclusive) ownership of and access to other objects. Furthermore, this notion is statically enforced by now-standard type-checking techniques.

Originating as the formalisation of the core of Flexible Alias Protection, ownership types have since been extended and adapted in many ways, and the notion of protection provided has been refined into topological and encapsulation dimensions. This article surveys the various flavours of ownership types that have been developed over the years, along with the many applications and other developments. The chapter concludes by suggesting some directions for future work.

This research is partly funded by the EU project FP7-231620 HATS: Highly Adaptable and Trustworthy Software using Formal Models ( http://www.hats-project.eu ), KULeuven BOF Project STRT1/09/031: DesignerTypeLab and the Swedish Research Council within the UPMARC Linnaeus centre of Excellence and the project Structured Aliasing.

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 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L.: A theory of objects. Springer (1996)

    Google Scholar 

  2. Abi-Antoun, M.: Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure. PhD thesis, Carnegie Mellon University, Available as Technical Report CMU-ISR-10-114 (2010)

    Google Scholar 

  3. Abi-Antoun, M., Aldrich, J.: Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations. In: OOPSLA, pp. 321–340 (2009)

    Google Scholar 

  4. Aldrich, J., Chambers, C.: Ownership Domains: Separating Aliasing Policy from Mechanism. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 1–25. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  5. Aldrich, J., Kostadinov, V., Chambers, C.: Alias annotations for program understanding. In: OOPSLA, pp. 311–330 (2002)

    Google Scholar 

  6. Ammar, N., Abi-Antoun, M.: Empirical Evaluation of Global Hierarchical Object Graphs for Coding Activities. In: Working Conference on Reverse Engineering, WCRE (2012)

    Google Scholar 

  7. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Computer Science Department, University of Copenhagen, Copenhagen, Denmark (May 1994), DIKU Rapport 94/19

    Google Scholar 

  8. Anderson, Z.R., Gay, D., Naik, M.: Lightweight annotations for controlling sharing in concurrent data structures. In: PLDI, pp. 98–109 (2009)

    Google Scholar 

  9. Andreae, C., Coady, Y., Gibbs, C., Noble, J., Vitek, J., Zhao, T.: Scoped types and aspects for real-time Java memory management. Real-Time Systems 37(1), 1–44 (2007)

    Article  MATH  Google Scholar 

  10. Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: a dialect of Java without data races. In: OOPSLA, pp. 382–400 (2000)

    Google Scholar 

  11. Banerjee, A., Naumann, D.A.: Representation independence, confinement and access control (extended abstract). In: POPL, pp. 166–177 (2002)

    Google Scholar 

  12. Banerjee, A., Naumann, D.A.: Secure information flow and pointer confinement in a Java-like language. In: CSFW, pp. 253–267 (2002)

    Google Scholar 

  13. Banerjee, A., Naumann, D.A.: Ownership transfer and abstraction. Technical report, Computing and Information Sciences, Kansas State University, USA (2003)

    Google Scholar 

  14. Banerjee, A., Naumann, D.A.: Ownership: transfer, sharing, and encapsulation. In: Proceedings of the 5th Workshop on Formal Techniques for Java-Like Programs, FTfJP 2003 (2003)

    Google Scholar 

  15. Banerjee, A., Naumann, D.A.: Ownership confinement ensures representation independence for object-oriented programs. J. ACM 52(6), 894–960 (2005)

    Article  MathSciNet  Google Scholar 

  16. Banerjee, A., Naumann, D.A.: State Based Ownership, Reentrance, and Encapsulation. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 387–411. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  17. Banerjee, A., Naumann, D.A.: State Based Encapsulation for Modular Reasoning about Behavior-Preserving Refactorings. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 319–365. Springer, Heidelberg (2013)

    Google Scholar 

  18. Blanchet, B.: Escape analysis: correctness proof, implementation and experimental results. In: Cardelli, L. (ed.) POPL 1998: Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pp. 25–37 (January 1998)

    Google Scholar 

  19. Bocchino Jr., R.L.: Alias Control for Deterministic Parallelism. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 156–195. Springer, Heidelberg (2013)

    Google Scholar 

  20. Boyapati, C.: SafeJava: A Unified Type System for Safe Programming. Ph.D., MIT (February 2004)

    Google Scholar 

  21. Boyapati, C., Lee, R., Rinard, M.C.: Ownership types for safe programming: preventing data races and deadlocks. In: OOPSLA, pp. 211–230 (2002)

    Google Scholar 

  22. Boyapati, C., Liskov, B., Shrira, L.: Ownership types for object encapsulation. In: POPL, pp. 213–223 (2003)

    Google Scholar 

  23. Boyapati, C., Liskov, B., Shrira, L., Moh, C.-H., Richman, S.: Lazy modular upgrades in persistent object stores. In: OOPSLA, pp. 403–417 (2003)

    Google Scholar 

  24. Boyapati, C., Rinard, M.C.: A parameterized type system for race-free Java programs. In: OOPSLA, pp. 56–69 (2001)

    Google Scholar 

  25. Boyapati, C., Salcianu, A., Beebee, W.S., Rinard, M.C.: Ownership types for safe region-based memory management in real-time Java. In: PLDI, pp. 324–337 (2003)

    Google Scholar 

  26. Boyland, J.: Alias burying: Unique variables without destructive reads. Software—Practice and Experience 31(6), 533–553 (2001)

    Article  MATH  Google Scholar 

  27. Boyland, J.: Checking Interference with Fractional Permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55–72. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  28. Boyland, J.: Fractional Permissions. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 270–288. Springer, Heidelberg (2013)

    Google Scholar 

  29. Buckley, A.: Ownership types restrict aliasing. Master’s thesis, Imperial College London, London, UK (June 2000)

    Google Scholar 

  30. Cameron, N.: Existential Types for Subtype Variance - Java Wildcards and Ownership Types. PhD thesis, Imperial College London (April 2009)

    Google Scholar 

  31. Cameron, N., Drossopoulou, S., Noble, J.: Understanding Ownership Types with Dependent Types. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 84–108. Springer, Heidelberg (2013)

    Google Scholar 

  32. Cameron, N., Drossopoulou, S.: Existential Quantification for Variant Ownership. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 128–142. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  33. Cameron, N.R., Drossopoulou, S., Noble, J., Smith, M.J.: Multiple ownership. In: OOPSLA, pp. 441–460 (2007)

    Google Scholar 

  34. Cameron, N.R., Noble, J., Wrigstad, T.: Tribal ownership. In: OOPSLA, pp. 618–633 (2010)

    Google Scholar 

  35. Cardelli, L., Leroy, X.: Abstract types and the dot notation. Technical Report SRC-RR-90-56, Digital Systems Research Center (March 1990)

    Google Scholar 

  36. Cele, G., Stureborg, S.: Ownership types in practise. Master’s thesis, Department of Computer and Systems Sciences, Stockholm University and Royal Institute of Technology (2005)

    Google Scholar 

  37. Charles, P., Grothoff, C., Saraswat, V.A., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA, pp. 519–538 (2005)

    Google Scholar 

  38. Chin, B., Markstrum, S., Millstein, T., Palsberg, J.: Inference of User-Defined Type Qualifiers and Qualifier Rules. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 264–278. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  39. Clarke, D.: Object ownership and containment. PhD thesis, School of Computer Science and Engineering, University of New South Wales, Australia (2002)

    Google Scholar 

  40. Clarke, D., Diakov, N., Hähnle, R., Johnsen, E.B., Schaefer, I., Schäfer, J., Schlatte, R., Wong, P.Y.H.: Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 417–457. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  41. Clarke, D., Drossopoulou, S., Noble, J., Wrigstad, T.: Tribe: a simple virtual class calculus. In: AOSD, pp. 121–134 (2007)

    Google Scholar 

  42. Clarke, D., Wrigstad, T.: External Uniqueness is Unique Enough. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 176–200. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  43. Clarke, D., Wrigstad, T., Östlund, J., Johnsen, E.B.: Minimal Ownership for Active Objects. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, pp. 139–154. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  44. Clarke, D.G., Drossopoulou, S.: Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA, pp. 292–310 (2002)

    Google Scholar 

  45. Clarke, D.G., Noble, J., Potter, J.M.: Simple Ownership Types for Object Containment. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 53–76. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  46. Clarke, D.G., Potter, J., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA, pp. 48–64 (1998)

    Google Scholar 

  47. Clarke, D.G., Richmond, M., Noble, J.: Saving the world from bad beans: deployment-time confinement checking. In: OOPSLA, pp. 374–387 (2003)

    Google Scholar 

  48. Clifton, C., Leavens, G.T., Noble, J.: MAO: Ownership and Effects for More Effective Reasoning About Aspects. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 451–475. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  49. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Sethi, R. (ed.) Proceedings of the Fourth Annual ACM Symposium on Principles of Programming Languages, Los Angeles, California, pp. 238–252 (January 1977)

    Google Scholar 

  50. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Rosen, B.K. (ed.) Proceedings of the Sixth Annual ACM Symposium on Principles of Programming Languages, San Antonio, Texas, pp. 269–282 (January 1979)

    Google Scholar 

  51. Cunningham, D., Drossopoulou, S., Eisenbach, S.: Universe Types for Race Safety. In: VAMP 2007, pp. 20–51 (September 2007)

    Google Scholar 

  52. Deutsch, A.: Interprocedural alias analysis for pointers: Beyond k-limiting. In: Sarkar, V. (ed.) Proceedings of the ACM SIGPLAN 1994 Conference on Programming Languages Design and Implementation, Orlando, Florida, pp. 230–241 (June 1994)

    Google Scholar 

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

    Chapter  Google Scholar 

  54. Dietl, W., Drossopoulou, S., Müller, P.: Separating ownership topology and encapsulation with generic universe types. ACM Trans. Program. Lang. Syst. 33(6), 20 (2011)

    Article  Google Scholar 

  55. Dietl, W., Ernst, M.D., Müller, P.: Tunable Static Inference for Generic Universe Types. In: Mezini, M. (ed.) ECOOP 2011. LNCS, vol. 6813, pp. 333–357. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  57. Dietl, W., Müller, P.: Runtime universe type inference. In: IWACO 2007: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (2007)

    Google Scholar 

  58. Dietl, W., Müller, P.: Object Ownership in Program Verification. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 289–318. Springer, Heidelberg (2013)

    Google Scholar 

  59. Dietl, W., Müller, P., Poetzsch-Heffter, A.: A Type System for Checking Applet Isolation in Java Card. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 129–150. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  60. Dietl, W.M.: Universe Types: Topology, Encapsulation, Genericity, and Tools. Ph.D., Department of Computer Science, ETH Zurich (December 2009); Doctoral Thesis ETH No. 18522

    Google Scholar 

  61. Drossopoulou, S., Clarke, D., Noble, J.: Types for Hierarchic Shapes (Summary). In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 1–6. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  62. Eichberg, M., Kanthak, S., Kloppenburg, S., Mezini, M., Schuh, T.: Incremental confined types analysis. Electr. Notes Theor. Comput. Sci. 164(2), 81–96 (2006)

    Article  Google Scholar 

  63. Fähndrich, M., DeLine, R.: Adoption and focus: Practical linear types for imperative programming. In: PLDI, pp. 13–24 (2002)

    Google Scholar 

  64. Flanagan, C., Abadi, M.: Types for Safe Locking. In: Swierstra, S.D. (ed.) ESOP 1999. LNCS, vol. 1576, pp. 91–108. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  65. Fournet, C., Gonthier, G.: The Join Calculus: A Language for Distributed Mobile Programming. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 268–332. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  66. Geilmann, K., Poetzsch-Heffter, A.: Modular Checking of Confinement for Object-Oriented Components using Abstract Interpretation. In: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming, IWACO 2011 (2011)

    Google Scholar 

  67. Gordon, D., Noble, J.: Dynamic ownership in a dynamic language. In: Costanza, P., Hirschfeld, R. (eds.) DLS 2007: Proceedings of the 2007 Symposium on Dynamic Languages, Montreal, Quebec, Canada, pp. 41–52 (2007)

    Google Scholar 

  68. Greenfieldboyce, D., Foster, J.S.: Type qualifier inference for Java. In: Bacon, D.F., Lopes, C.V., Steele Jr., G.L. (eds.) OOPSLA 2007: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, Montreal, Quebec, Canada, pp. 321–336 (2007)

    Google Scholar 

  69. Grothoff, C., Palsberg, J., Vitek, J.: Encapsulating objects with confined types. ACM Trans. Program. Lang. Syst. 29(6) (2007)

    Google Scholar 

  70. Hächler, T.: Applying the Universe type system to an industrial application. Master’s thesis, ETH Zurich (2005), http://pm.inf.ethz.ch/projects/student_docs/Thomas_Haechler/Thomas_Haechler_MA_paper.pdf

  71. Haller, P., Odersky, M.: Capabilities for Uniqueness and Borrowing. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 354–378. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  72. Harms, D.E., Weide, B.W.: Copying and swapping: influences on the design of reusable software components. IEEE Transactions on Software Engineering 17(5), 424–435 (1991)

    Article  Google Scholar 

  73. Herrmann, S.: Confined Roles and Decapsulation in Object Teams — Contradiction or Synergy? In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 443–470. Springer, Heidelberg (2013)

    Google Scholar 

  74. Hill, T., Noble, J., Potter, J.: Scalable visualisations with ownership trees. In: TOOLS, vol. (37), pp. 202–213 (2000)

    Google Scholar 

  75. Hill, T., Noble, J., Potter, J.: Visualizing the structure of object-oriented systems. In: VL, pp. 191–198 (2000)

    Google Scholar 

  76. Hill, T., Noble, J., Potter, J.: Scalable visualizations of object-oriented systems with ownership trees. J. Vis. Lang. Comput. 13(3), 319–339 (2002)

    Article  Google Scholar 

  77. Hogg, J., Lea, D., Wills, A., de Champeaux, D., Holt, R.C.: The Geneva convention on the treatment of object aliasing. OOPS Messenger 3(2), 11–16 (1992)

    Article  Google Scholar 

  78. Hogg, J., Lea, D., Wills, A., de Champeaux, D., Holt, R.C.: The Geneva Convention on the Treatment of Object Aliasing. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 7–14. Springer, Heidelberg (2013)

    Google Scholar 

  79. Huang, W., Dietl, W., Milanova, A., Ernst, M.D.: Inference and Checking of Object Ownership. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 181–206. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  80. Huang, W., Milanova, A.: Towards efective inference and checking of ownership types. In: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming, IWACO 2011 (2011)

    Google Scholar 

  81. Jagannathan, S., Thiemann, P., Weeks, S., Wright, A.K.: Single and loving it: Must-alias analysis for higher-order languages. In: Cardelli, L. (ed.) POPL 1998: Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pp. 329–341 (January 1998)

    Google Scholar 

  82. Bocchino Jr., R.L., Adve, V.S.: Types, Regions, and Effects for Safe Programming with Object-Oriented Parallel Frameworks. In: Mezini, M. (ed.) ECOOP 2011. LNCS, vol. 6813, pp. 306–332. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  83. Bocchino Jr., R.L., Adve, V.S., Dig, D., Adve, S.V., Heumann, S., Komuravelli, R., Overbey, J., Simmons, P., Sung, H., Vakilian, M.: A type and effect system for deterministic parallel Java. In: OOPSLA, pp. 97–116 (2009)

    Google Scholar 

  84. Bocchino Jr., R.L., Heumann, S., Honarmand, N., Adve, S.V., Adve, V.S., Welc, A., Shpeisman, T.: Safe nondeterminism in a deterministic-by-default parallel language. In: POPL, pp. 535–548 (2011)

    Google Scholar 

  85. Klebermaß, M.: An Isabelle Formalization of the Universe Type System. Master’s thesis, Technische Universität München (April 2007)

    Google Scholar 

  86. Lindskov Knudsen, J. (ed.): ECOOP 2001. LNCS, vol. 2072. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  87. Krishnaswami, N.R., Aldrich, J.: Permission-based ownership: encapsulating state in higher-order typed languages. In: PLDI, pp. 96–106 (2005)

    Google Scholar 

  88. Kulkarni, A., Liu, Y.D., Smith, S.F.: Task types for pervasive atomicity. In: OOPSLA, pp. 671–690 (2010)

    Google Scholar 

  89. Leijen, D., Meijer, E.: Domain specific embedded compilers. In: DSL, pp. 109–122 (1999)

    Google Scholar 

  90. Leino, K.R.M., Müller, P.: Object Invariants in Dynamic Contexts. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 491–515. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  91. Li, P., Cameron, N., Noble, J.: Mojojojo - more ownership for multiple owners. In: International Workshop on Foundations of Object-Oriented Languages, FOOL (2010)

    Google Scholar 

  92. Li, P., Nelson, S., Potanin, A.: Ownership for relationships. In: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming, IWACO 2009, pp. 1–3. ACM, New York (2009)

    Chapter  Google Scholar 

  93. Liskov, B., Castro, M., Shrira, L., Adya, A.: Providing Persistent Objects in Distributed Systems. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 230–257. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  94. Liu, Y.D., Smith, S.F.: Interaction-based programming with classages. In: OOPSLA, pp. 191–209 (2005)

    Google Scholar 

  95. Lu, Y., Potter, J.: A Type System for Reachability and Acyclicity. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 479–503. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  96. Lu, Y., Potter, J.: On Ownership and Accessibility. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 99–123. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  97. Lu, Y., Potter, J.: Protecting representation with effect encapsulation. In: POPL, pp. 359–371 (2006)

    Google Scholar 

  98. Lu, Y., Potter, J., Xue, J.: Validity Invariants and Effects. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 202–226. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  99. Lu, Y., Potter, J., Xue, J.: Ownership Downgrading for Ownership Types. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 144–160. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  100. Ma, K.-K., Foster, J.S.: Inferring aliasing and encapsulation properties for Java. In: Bacon, D.F., Lopes, C.V., Steele Jr., G.L. (eds.) OOPSLA 2007: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, Montreal, Quebec, Canada, pp. 423–440 (2007)

    Google Scholar 

  101. Milanova, A., Liu, Y.: Practical static ownership inference. Technical report, Rensselaer Polytechnic Institute, Troy NY 12110, USA (2010)

    Google Scholar 

  102. Milanova, A., Vitek, J.: Static Dominance Inference. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 211–227. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  103. Mitchell, N.: The Runtime Structure of Object Ownership. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 74–98. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  104. Moelius III, S.E., Souter, A.L.: An object ownership inference algorithm and its applications. In: MASPLAS 2004: Mid-Atlantic Student Workshop on Programming Languages and Systems (2004)

    Google Scholar 

  105. Müller, P., Poetzsch-Heffter, A.: Universes: a type system for controlling representation exposure. In: Programming Languages and Fundamentals of Programming. Fernuniversität Hagen (1999)

    Google Scholar 

  106. Müller, P., Poetzsch-Heffter, A., Leavens, G.T.: Modular invariants for layered object structures. Science of Computer Programming 62, 253–286 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  107. Müller, P.: Modular Specification and Verification of Object-Oriented Programs. LNCS, vol. 2262. Springer, Heidelberg (2002)

    Book  MATH  Google Scholar 

  108. Müller, P., Rudich, A.: Ownership transfer in universe types. In: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, OOPSLA 2007, pp. 461–478. ACM, New York (2007)

    Chapter  Google Scholar 

  109. Nägeli, S.: Ownership in design patterns. Master’s thesis, ETH Zurich (2006), http://pm.inf.ethz.ch/projects/student_docs/Stefan_Naegeli/Stefan_Naegeli_MA_paper.pdf

  110. Noble, J., Biddle, R., Tempero, E., Potanin, A., Clarke, D.: Towards a model of encapsulation. In: IWACO 2003: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming, Darmstadt, Germany (2003)

    Google Scholar 

  111. Noble, J., Clarke, D.G., Potter, J.: Object ownership for dynamic alias protection. In: TOOLS, vol. (32), pp. 176–187 (1999)

    Google Scholar 

  112. Noble, J., Vitek, J., Potter, J.: Flexible Alias Protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 158–185. Springer, Heidelberg (1998)

    Google Scholar 

  113. Östlund, J., Wrigstad, T.: Multiple Aggregate Entry Points for Ownership Types. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 156–180. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  114. Östlund, J., Wrigstad, T., Clarke, D., Åkerblom, B.: Ownership, uniqueness, and immutability. In: TOOLS, vol. (46), pp. 178–197 (2008)

    Google Scholar 

  115. Patrignani, M., Clarke, D., Sangiorgi, D.: Ownership Types for the Join Calculus. In: Bruni, R., Dingel, J. (eds.) FMOODS/FORTE 2011. LNCS, vol. 6722, pp. 289–303. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  116. Permandla, P., Roberson, M., Boyapati, C.: A type system for preventing data races and deadlocks in the Java virtual machine language. In: LCTES, pp. 1–10 (2007)

    Google Scholar 

  117. Poetzsch-Heffter, A., Geilmann, K., Schäfer, J.: Infering Ownership Types for Encapsulated Object-Oriented Program Components. In: Reps, T., Sagiv, M., Bauer, J. (eds.) Wilhelm Festschrift. LNCS, vol. 4444, pp. 120–144. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  118. Potanin, A., Noble, J., Biddle, R.: Checking ownership and confinement. Concurrency and Computation: Practice and Experience 16(7), 671–687 (2004)

    Article  Google Scholar 

  119. Potanin, A., Noble, J., Clarke, D., Biddle, R.: Featherweight generic confinement. J. Funct. Program. 16(6), 793–811 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  120. Potanin, A., Noble, J., Clarke, D., Biddle, R.: Generic ownership for Generic Java. In: OOPSLA, pp. 311–324 (2006)

    Google Scholar 

  121. Potanin, A., Östlund, J., Zibin, Y., Ernst, M.D.: Immutability. In: Clarke, D. (ed.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 233–269. Springer, Heidelberg (2013)

    Google Scholar 

  122. Potter, J., Noble, J., Clarke, D.G.: The ins and outs of objects. In: Australian Software Engineering Conference, pp. 80–89 (1998)

    Google Scholar 

  123. Rayside, D., Mendel, L.: Object ownership profiling: a technique for finding and fixing memory leaks. In: ASE, pp. 194–203 (2007)

    Google Scholar 

  124. Schaefer, J., Poetzsch-Heffter, A.: A parameterized type system for simple loose ownership domains. Journal of Object Technology 6(5), 71–100 (2007)

    Article  Google Scholar 

  125. Schäfer, J., Poetzsch-Heffter, A.: CoBoxes: Unifying Active Objects and Structured Heaps. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 201–219. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  126. Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing Active Objects to Concurrent Components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  127. Sergey, I., Clarke, D.: Gradual Ownership Types. In: Seidl, H. (ed.) ESOP 2012. LNCS, vol. 7211, pp. 579–599. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  128. Skalka, C., Smith, S.F.: Static use-based object confinement. Int. J. Inf. Sec. 4(1-2), 87–104 (2005)

    Article  Google Scholar 

  129. Spring, J.H., Pizlo, F., Privat, J., Guerraoui, R., Vitek, J.: Reflexes: Abstractions for integrating highly responsive tasks into Java applications. ACM Trans. Embedded Comput. Syst. 10(1) (2010)

    Google Scholar 

  130. Spring, J.H., Privat, J., Guerraoui, R., Vitek, J.: Streamflex: High-throughput stream programming in Java. In: OOPSLA, pp. 211–228 (2007)

    Google Scholar 

  131. Srinivasan, S., Mycroft, A.: Kilim: Isolation-Typed Actors for Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 104–128. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  132. Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2000)

    Google Scholar 

  133. Tang, D., Plsek, A., Vitek, J.: Static checking of safety critical Java annotations. In: JTRES, pp. 148–154 (2010)

    Google Scholar 

  134. Tofte, M., Talpin, J.-P.: Region-based memory management. Inf. Comput. 132(2), 109–176 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  135. Vanciu, R., Abi-Antoun, M.: Object Graphs with Ownership Domains: An Empirical Study. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 109–155. Springer, Heidelberg (2013)

    Google Scholar 

  136. Vitek, J., Bokowski, B.: Confined types. In: OOPSLA, pp. 82–96 (1999)

    Google Scholar 

  137. Vitek, J., Bokowski, B.: Confined types in Java. Softw., Pract. Exper. 31(6), 507–532 (2001)

    Article  MATH  Google Scholar 

  138. Wang, S., Barbosa, L.S., Oliveira, J.N.: A relational model for confined separation logic. In: TASE, pp. 263–270 (2008)

    Google Scholar 

  139. Wang, S., Qiu, Z.: A generic model for confinement and its application. In: TASE, pp. 57–64 (2008)

    Google Scholar 

  140. Wren, A.: Inferring ownership. Master’s thesis, Imperial College London, London, UK (June 2003)

    Google Scholar 

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

    Google Scholar 

  142. Wrigstad, T., Clarke, D.: Existential owners for ownership types. Journal of Object Technology 6(4), 141–159 (2007)

    Article  Google Scholar 

  143. Wrigstad, T., Pizlo, F., Meawad, F., Zhao, L., Vitek, J.: Loci: Simple Thread-Locality for Java. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 445–469. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  144. Smith, S., Liu, Y.D.: Pedigree types. In: IWACO 2008: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (2008)

    Google Scholar 

  145. Zhao, T., Baker, J., Hunt, J., Noble, J., Vitek, J.: Implicit ownership types for memory management. Sci. Comput. Program. 71(3), 213–241 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  146. Zhao, T., Noble, J., Vitek, J.: Scoped types for real-time Java. In: RTSS, pp. 241–251 (2004)

    Google Scholar 

  147. Zhao, T., Palsberg, J., Vitek, J.: Lightweight confinement for featherweight Java. In: OOPSLA, pp. 135–148 (2003)

    Google Scholar 

  148. Zhao, T., Palsberg, J., Vitek, J.: Type-based confinement. J. Funct. Program. 16(1), 83–128 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  149. Zhao, Y., Boyland, J.: A fundamental permission interpretation for ownership types. In: TASE, pp. 65–72 (2008)

    Google Scholar 

  150. Zibin, Y., Potanin, A., Li, P., Ali, M., Ernst, M.D.: Ownership and immutability in Generic Java. In: OOPSLA, pp. 598–617 (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Clarke, D., Östlund, J., Sergey, I., Wrigstad, T. (2013). Ownership Types: A Survey. In: Clarke, D., Noble, J., Wrigstad, T. (eds) Aliasing in Object-Oriented Programming. Types, Analysis and Verification. Lecture Notes in Computer Science, vol 7850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36946-9_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-36946-9_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-36945-2

  • Online ISBN: 978-3-642-36946-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics