Checking ownership and confinement

A number of proposals to manage aliasing in Java‐like programming languages have been advanced over the last five years. It is not clear how practical these proposals are, that is, how well they relate to the kinds of programs currently written in Java‐like languages. To address this problem, we analysed heap snapshots from a corpus of Java programs. Our results indicate that object‐oriented programs do in fact exhibit symptoms of encapsulation in practice, and that proposed models of uniqueness, ownership, and confinement can usefully describe the aliasing structures of object‐oriented programs. Understanding the kinds of aliasing present in programs should help us to design formalisms to make explicit the kinds of aliasing implicit in object‐oriented programs. Copyright © 2004 John Wiley & Sons, Ltd.

[1]  Alex Potanin,et al.  A tool for ownership and confinement analysis of the Java object graph , 2002, OOPSLA '02.

[2]  Jens Palsberg,et al.  Encapsulating objects with confined types , 2001, OOPSLA 2001.

[3]  Peter M Uller,et al.  Universes: a type system for controlling representation exposure , 1999 .

[4]  James Noble,et al.  Simple Ownership Types for Object Containment , 2001, ECOOP.

[5]  Jan Vitek,et al.  Flexible Alias Protection , 1998, ECOOP.

[6]  James Noble,et al.  Editorial: Aliasing in object‐oriented systems , 2001, Softw. Pract. Exp..

[7]  Tobias Wrigstad,et al.  External Uniqueness , 2003 .

[8]  Jan Vitek,et al.  Confined types , 1999, OOPSLA '99.

[9]  Raimondas Lencevicius Advanced Debugging Methods , 2000 .

[10]  Sophia Drossopoulou,et al.  Ownership, encapsulation and the disjointness of type and effect , 2002, OOPSLA '02.

[11]  Sheng Liang,et al.  Java Virtual Machine Profiler Interface , 2000, IBM Syst. J..

[12]  Craig Chambers,et al.  Alias annotations for program understanding , 2002, OOPSLA '02.

[13]  James Noble,et al.  Scalable visualisations with ownership trees , 2000, Proceedings 37th International Conference on Technology of Object-Oriented Languages and Systems. TOOLS-Pacific 2000.

[14]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[15]  Richard C. Holt,et al.  The Geneva convention on the treatment of object aliasing , 1992, OOPS.

[16]  Brian A. Malloy,et al.  The design of an OCL query-based debugger for C++ , 2001, SAC.

[17]  Bruce W. Weide,et al.  Copying and Swapping: Influences on the Design of Reusable Software Components , 1991, IEEE Trans. Software Eng..

[18]  James Noble,et al.  Ownership types for flexible alias protection , 1998, OOPSLA '98.

[19]  Dave Clarke,et al.  External Uniqueness Is Unique Enough , 2003, ECOOP.

[20]  James Noble,et al.  Scalable Visualizations of Object-Oriented Systems with Ownership Trees , 2002, J. Vis. Lang. Comput..

[21]  Paulo Sérgio Almeida Balloon Types: Controlling Sharing of State in Data Types , 1997, ECOOP.

[22]  Andreas Zeller,et al.  Visualizing Memory Graphs , 2001, Software Visualization.

[23]  Urs Hölzle,et al.  A Study of the Allocation Behavior of the SPECjvm98 Java Benchmark , 1999, ECOOP.

[24]  John Hogg,et al.  Islands: aliasing protection in object-oriented languages , 1991, OOPSLA '91.

[25]  Liuba Shrira,et al.  Ownership types for object encapsulation , 2003, POPL '03.

[26]  John Tang Boyland,et al.  Alias burying: Unique variables without destructive reads , 2001, Softw. Pract. Exp..

[27]  James Noble,et al.  The ins and outs of objects , 1998, Proceedings 1998 Australian Software Engineering Conference (Cat. No.98EX233).