Ownership Domains: Separating Aliasing Policy from Mechanism

@inproceedings{Aldrich2004OwnershipDS,
  title={Ownership Domains: Separating Aliasing Policy from Mechanism},
  author={J. Aldrich and C. Chambers},
  booktitle={ECOOP},
  year={2004}
}
Ownership types promise to provide a practical mechanism for enforcing stronger encapsulation by controlling aliasing in object-oriented languages. However, previous ownership type proposals have tied the aliasing policy of a system to the mechanism of ownership. As a result, these proposals are too weak to express many important aliasing constraints, yet also so restrictive that they prohibit many useful programming idioms. 
On Ownership and Accessibility
TLDR
A novel type system is proposed which generalizes ownership types by separating object accessibility and reference capability, and with the ability to hide owners, provides a more flexible and useful model of object ownership. Expand
Featherweight Generic Ownership
Object ownership is an approach to controlling aliasing in programming languages. Proposals for adding ownership to programming languages do not directly support type genericity. We presentExpand
Towards Gradual Ownership Types
TLDR
This work adapts the system of Clarke and Drossopoulou to include gradual types of Siek and Taha, and develops a formal system to annotate programs with ownership types in a lightweight way, allowing only partial information about object owners. Expand
State Based Ownership, Reentrance, and Encapsulation
TLDR
This paper shows that encapsulation is achieved by a discipline using assertions and auxiliary fields to manage invariants and transferrable ownership and results are representation independence: a rule for modular proof of equivalence of class implementations. Expand
Minimal Ownership for Active Objects
TLDR
A minimal variant of ownership types is proposed that preserves the required race freedom invariant yet enables data transfer by reference between active objects in many cases, and a cheap clone operation where copying is necessary. Expand
A Parameterized Type System for Simple Loose Ownership Domains
TLDR
This work develops so-called loose domains which abstract over several precise domains and formalizes the resulting type system for an OO core language and proves type soundness and a fundamental accessibility property. Expand
Ownership transfer in universe types
TLDR
TT combines ownership type checking with a modular static analysis to control references to transferable objects and guarantees statically that a cluster of objects is externally-unique when it is transferred and, thus, that ownership transfer is type safe. Expand
Gradual Ownership Types
TLDR
The theoretical novelty of this work is in adapting the notion of gradual type system with respect to program heap properties, which, unlike types in functional languages or object calculi, impose restrictions not only on data, but also on the environment the data is being processed in. Expand
Simple Loose Ownership Domains
Ownership Domains generalize ownership types. They support programming patterns like iterators that are not possible with ordinary ownership types. However, they are still too restrictive for casesExpand
Ownership, filters and crossing handlers: flexible ownership in dynamic languages
TLDR
It is concluded that the variant of dynamic ownership proposed is flexible enough to accommodate an existing design, while at the same time constraining it enough to highlight design anomalies. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 31 REFERENCES
Ownership, encapsulation and the disjointness of type and effect
TLDR
This work codifies two formal systems for reasoning about aliasing and the disjointness of computational effects in ownership types, which can be used to prove that evaluation of two expressions will never lead to aliases and to show the non-interference of twoexpression. Expand
Ownership types for flexible alias protection
TLDR
Ownership types form a static type system that indicates object ownership, which provides a flexible mechanism to limit the visibility of object references and restrict access paths to objects, thus controlling a system's dynamic topology. Expand
Islands: aliasing protection in object-oriented languages
TLDR
This work can introduce islands of objects which can statically ensure nonaliasing properties in a very non-restrictive way, which make construction of opaque object components more practical and formal treatment of object behaviour more feasible. Expand
Featherweight generic confinement
TLDR
It is demonstrated that polymorphic type parameters can simultaneously act as ownership parameters and should facilitate the adoption of confinement and ownership type systems in general-purpose programming languages. Expand
Confined types
TLDR
A verifier is implemented which performs a modular analysis of Java programs and provides a static guarantee that confinement is respected, and two mechanisms: confined types to impose static scoping on dynamic object references and anonymous methods which are methods that do not reveal the identity of the current instance. Expand
Flexible Alias Protection
TLDR
Using flexible alias protection, programs can incorporate mutable objects, immutable values, and updatable collections of shared objects, in a natural object oriented programming style, while avoiding the problems caused by aliasing. Expand
Representation independence, confinement and access control [extended abstract]
Denotational semantics is given for a Java-like language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and privilege-based accessExpand
Balloon Types: Controlling Sharing of State in Data Types
Current data abstraction mechanisms are not adequate to control sharing of state in the general case involving objects in linked structures. The pervading possibility of sharing is a source of errorsExpand
Using data groups to specify and check side effects
TLDR
The technique uses data groups, which abstract over variables that are not in scope, and limits program behavior by two alias-confining restrictions, pivot uniqueness and owner exclusion, and is shown to achieve modular soundness. Expand
Alias Types for Recursive Data Structures (Extended Version)
TLDR
This paper describes a pseudo-linear type system that allows a degree of aliasing and memory reuse as well as the ability to define complex recursive data structures and demonstrates the flexibility of the type system by encoding two common compiler optimizations: destination-passing style and Deutsch-Schorr-Waite or ``link-reversal'''' traversal algorithms. Expand
...
1
2
3
4
...