On Ownership and Accessibility

Ownership types support information hiding by providing statically enforceable object encapsulation based on an ownership tree. However ownership type systems impose fixed ownership and an inflexible access policy. This paper proposes a novel type system which generalizes ownership types by separating object accessibility and reference capability. With the ability to hide owners, it provides a more flexible and useful model of object ownership.

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

[2]  Michael D. Ernst,et al.  A practical type system and language for reference immutability , 2004, OOPSLA '04.

[3]  Gilad Bracha,et al.  Adding wildcards to the Java programming language , 2004, SAC '04.

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

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

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

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

[8]  Yi Lu,et al.  A Type System for Reachability and Acyclicity , 2005, ECOOP.

[9]  Mirko Viroli,et al.  On Variance-Based Subtyping for Parametric Types , 2002, ECOOP.

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

[11]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[12]  Mads Torgersen,et al.  Unifying Genericity - Combining the Benefits of Virtual Types and Parameterized Classes , 1999, ECOOP.

[13]  John Hogg Islands: aliasing protection in object-oriented languages , 1991, OOPSLA 1991.

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

[15]  Robert DeLine,et al.  Adoption and focus: practical linear types for imperative programming , 2002, PLDI '02.

[16]  Dan Suciu,et al.  Optimization of Run-time Management of Data Intensive Web-sites , 1999, VLDB.

[17]  Laura M. Haas,et al.  Loading a Cache with Query Results , 1999, VLDB.

[18]  David Walker,et al.  Alias Types , 2000, ESOP.

[19]  Craig Chambers,et al.  Ownership Domains: Separating Aliasing Policy from Mechanism , 2004, ECOOP.

[20]  James Noble,et al.  Generic ownership: practical ownership control in programming languages , 2004, OOPSLA '04.

[21]  John Tang Boyland,et al.  Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only , 2001, ECOOP.

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

[23]  Abraham Silberschatz,et al.  Operating System Concepts, Sixth Edition , 2002 .

[24]  John Tang Boyland,et al.  Connecting effects and uniqueness with adoption , 2005, POPL '05.

[25]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.

[26]  Elizabeth Castro,et al.  HTML for the World Wide Web , 1996 .

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

[28]  Yi Lu,et al.  Protecting representation with effect encapsulation , 2006, POPL '06.

[29]  David Walker,et al.  Alias Types for Recursive Data Structures , 2000, Types in Compilation.

[30]  David Gerard Clarke,et al.  Object ownership and containment , 2003 .