Types for Hierarchic Shapes

  • Sophia Drossopoulou
  • Dave Clarke
  • James Noble
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3924)


Heap entities tend to contain complex references to each other. To manage this complexity, types which express shapes and hierarchies have been suggested. We survey type systems which describe such hierarchic shapes, how these types are used for reasoning about programs, and applications in concurrent programming.


Garbage Collection Information Hiding Concurrent Programming Object Graph Ownership Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    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)CrossRefGoogle Scholar
  2. 2.
    Aldrich, J., Kostadinov, V., Chambers, C.: Alias Annotations for Program Understanding. In: OOPSLA (November 2002)Google Scholar
  3. 3.
    Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: a dialect of Java without data races. In: OOPSLA (2000)Google Scholar
  4. 4.
    Banerjee, A., Naumann, D.A.: Ownership confinement ensures representation independence for object-oriented programs. In: JACM (2005)Google Scholar
  5. 5.
    Banerjee, A., Naumann, J.D.A.: State based ownership, renetrnace and encapsulation. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 387–411. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Barnett, M., DeLine, R., Fähndrich, M., Rustan, K., Leino, M., Schulte, W.: Verification of Object-Oriented Programs with Invariants. Journal of Object Technology (2004)Google Scholar
  7. 7.
    Barnett, M., Naumann, D.A.: Freinds Need a Bit More: Maintaining Invariants Over Shared State. Mathematics of Program Construction (2004)Google Scholar
  8. 8.
    Bokowski, B., Vitek, J.: Confined Types. In: OOPSLA (1999)Google Scholar
  9. 9.
    Boyapati, C., Lee, R., Rinard, M.: Ownership Types for Safe Programming: Preventing Data Races and Deadlocks. In: OOPSLA (2002)Google Scholar
  10. 10.
    Boyapati, C., Liskov, B., Shrira, L.: Ownership Types for Object Encapsulation. In: POPL (2003)Google Scholar
  11. 11.
    Boyapati, C., Rinard, M.: A Parameterized Type System for Race-Free Java Programs. In: OOPSLA (2002)Google Scholar
  12. 12.
    Boyapati, C., Salcianu, A., Beebee, W., Rinard, M.: Ownership Types for Safe Region-Based Memory Management in Real-Time Java. In: PLDI (June 2003)Google Scholar
  13. 13.
    Cele, G., Stureborg, S.: Ownership Types in Practice. Technical Report TR-02-02, Stockholm University (2002)Google Scholar
  14. 14.
    Clarke, D., Drossopolou, S.: Ownership, Encapsulation and the Disjointness of Type and Effect. In: OOPSLA (2002)Google Scholar
  15. 15.
    Clarke, D., Potter, J., Noble, J.: Ownership Types for Flexible Alias Protection. In: OOPSLA (1998)Google Scholar
  16. 16.
    Clarke, D., Richmond, M., Noble, J.: Saving the world from bad beans: Deployment-time confinement checking. In: OOPSLA (2003)Google Scholar
  17. 17.
    Clarke, D., Wrigstad, T.: External Uniqueness is Unique Enough. In: Cardelli, L. (ed.) ECOOP 2003, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  18. 18.
    Grothoff, C., Palsberg, J., Vitek, J.: Encapsulating Objects with Confined Types. In: OOPSLA (2001)Google Scholar
  19. 19.
    O’ Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. In: POPL (2004)Google Scholar
  20. 20.
    Ishtiaq, S., O’ Hearn, P.W.: Bi as an assertion language for mutable data structures. In: POPL (2000)Google Scholar
  21. 21.
    M. Leino, K.R., Müller, P.: Object invariants in dynamic contexts. In: Odersky, M. (ed.) ECOOP 2004, vol. 3086, pp. 491–515. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  22. 22.
    Müller, P., Poetzsch-Heffter, A.: Universes: A Type System for Controlling Representation Exposure. In: Programming Languages and Fundamentals of Programming (1999)Google Scholar
  23. 23.
    Müller, P., Poetzsch-Heffter, A., Leavens, G.: Modular Invariants for Layered Object Structures. Technical Report 424, ETH Zürich (2004) (further development under way)Google Scholar
  24. 24.
    Müller, P., Poetzsch-Heffter, A., Leavens, G.T.: Modular Specification of Frame Properties in JML. In: Concurrency and Computation Practice and Experience (2003)Google Scholar
  25. 25.
    Noble, J.: Visualising Objects: Abstraction, Encapsulation, Aliasing and Ownership. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 58–72. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Noble, J., Vitek, J., Potter, J.M.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 158. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  27. 27.
    Parkinson, M., Bierman, G.: Separation logic and abstraction. In: POPL (2004)Google Scholar
  28. 28.
    Parnas, D.: On the Criteria to be Used in Decomposing Systems into Modules. Comm. ACS (1972)Google Scholar
  29. 29.
    Potanin, A., Noble, J.: Checking ownership and confinement properties. Formal Techniques for Java-like Programs (2002)Google Scholar
  30. 30.
    Potanin, A., Noble, J., Frean, M., Biddle, R.: Scale-free geometry in OO programs. Commun. ACM (2005)Google Scholar
  31. 31.
    Smith, M., Drossopoulou, S.: Cheaper Reasoning with Ownership Types. In: IWACO (2003)Google Scholar
  32. 32.
    Zhao, T., Noble, J., Vitek, J.: Scoped Types for Real-time Java. In: RTSS (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Sophia Drossopoulou
    • 1
  • Dave Clarke
    • 2
  • James Noble
    • 3
  1. 1.Imperial College LondonUK
  2. 2.CWIAmsterdamThe Netherlands
  3. 3.Victoria University of WellingtonWellingtonNew Zealand

Personalised recommendations