|
ABSTRACT
Existing ownership type systems require objects to have precisely one primary owner, organizing the heap into an ownership tree. Unfortunately, a tree structure is too restrictive for many programs, and prevents many common design patterns where multiple objects interact. Multiple Ownership is an ownership type system where objects can have more than one owner, and the resulting ownership structure forms a DAG. We give a straightforward model for multiple ownership, focusing in particular on how multiple ownership can support a powerful effects system that determines when two computations interfere-in spite of the DAG structure. We present a core programming language MOJO, Multiple ownership for Java-like Objects, including a type and effects system, and soundness proof. In comparison to other systems, MOJO imposes absolutely no restrictions on pointers, modifications or programs' structure, but in spite of this, MOJO's effects can be used to reason about or describe programs' behaviour.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Marwan Abi-Antoun and Jonathan Aldrich. Ownership domains in the real world. In IWACO workshop at ECOOP, 2007.
|
| |
2
|
Jonathan Aldrich and Craig Chambers. Ownership domains: Separating aliasing policy from mechanism. In ECOOP, 2004.
|
| |
3
|
Christopher Alexander. A city is not a tree. Design, (206), 1966.
|
| |
4
|
Paulo Sérgio Almeida. Balloon types: Controlling sharing of state in data types. In ECOOP, 1997.
|
| |
5
|
Chris Andreae, Yvonne Coady, Celina Gibbs, James Noble, Jan Vitek, and Tian Zhao. Scoped types and aspects for real-time java. In ECOOP, 2006.
|
 |
6
|
Gareth Baxter , Marcus Frean , James Noble , Mark Rickerby , Hayden Smith , Matt Visser , Hayden Melton , Ewan Tempero, Understanding the shape of Java software, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
 |
7
|
Jan Vitek , Boris Bokowski, Confined types, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.82-96, November 01-05, 1999, Denver, Colorado, United States
|
 |
8
|
Chandrasekhar Boyapati , Robert Lee , Martin Rinard, Ownership types for safe programming: preventing data races and deadlocks, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
9
|
Chandrasekhar Boyapati , Martin Rinard, A parameterized type system for race-free Java programs, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.56-69, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
10
|
|
| |
11
|
Nicholas Cameron, Erik Ernst, and Sophia Drossopoulou. Towards an existential types model for Java with wildcards. In FTfJP workshop at ECOOP, 2007.
|
| |
12
|
|
 |
13
|
Dave Clarke , Sophia Drossopoulou, Ownership, encapsulation and the disjointness of type and effect, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
14
|
David G. Clarke , John M. Potter , James Noble, Ownership types for flexible alias protection, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.48-64, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
15
|
|
| |
16
|
Curtis Clifton, Gary T. Leavens, and James Noble. Ownership and effects for more effective reasoning about aspects. In ECOOP, 2007.
|
| |
17
|
Gilles Deleuze and Félix Guattari. A Thousand Plateaus: Capitalism and Schizophrenia. U. Minnesota, 1987.
|
| |
18
|
Werner Dietl, Sophia Drossopoulou, and Peter Müller. Generic universe types. In ECOOP, 2007.
|
| |
19
|
Sophia Drossopoulou. The benefits of putting objects into boxes. ESOP, 2006. Invited Talk.
|
| |
20
|
Cormac Flanagan, Stephen N. Freund, and Marina Lifshin. Type inference for atomicity. In TLDI, 2005.
|
| |
21
|
|
| |
22
|
|
 |
23
|
Christian Grothoff , Jens Palsberg , Jan Vitek, Encapsulating objects with confined types, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.241-255, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
24
|
Ralf Hinze. The Fun of Programming, chapter Fun with Phantom Types, pages 245--262. Palgrave Macmillan, 2003.
|
 |
25
|
John Hogg, Islands: aliasing protection in object-oriented languages, Conference proceedings on Object-oriented programming systems, languages, and applications, p.271-285, October 06-11, 1991, Phoenix, Arizona, United States
|
 |
26
|
Atshushi Igarashi , Benjamin Pierce , Philip Wadler, Featherwieght Java: a minimal core calculus for Java and GJ, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.132-146, November 01-05, 1999, Denver, Colorado, United States
|
 |
27
|
|
 |
28
|
|
| |
29
|
K. R. M. Leino and P. Müller. Object invariants in dynamic contexts. In ECOOP, 2004.
|
 |
30
|
K. Rustan M. Leino, Data groups: specifying the modification of extended state, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.144-153, October 18-22, 1998, Vancouver, British Columbia, Canada
|
 |
31
|
|
| |
32
|
Yi Lu and John Potter. Object invariants and effects. In ECOOP, 2007.
|
 |
33
|
|
| |
34
|
Nick Mitchell. The runtime structure of object ownership. In ECOOP, 2006.
|
| |
35
|
|
| |
36
|
Peter Müller. Reasoning about object structures using ownership. In Verified Software: Theories, Tools, Experiments, LNCS. Springer-Verlag, 2007.
|
| |
37
|
James Noble, Robert Biddle, Ewan Tempero, Alex Potanin, and Dave Clarke. Towards a model of encapsulation. In IWACO workshop at ECOOP, 2003.
|
| |
38
|
|
 |
39
|
Martin Odersky , Matthias Zenger, Scalable component abstractions, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
40
|
|
| |
41
|
Alex Potanin. Generic Ownership-A Practical Approach to Ownership and Confinement in OO Programming Languages. PhD thesis, 2007.
|
 |
42
|
Alex Potanin , James Noble , Dave Clarke , Robert Biddle, Generic ownership for generic Java, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
 |
43
|
|
 |
44
|
|
| |
45
|
|
| |
46
|
Matthew Smith. Effects system for ownership domains. In FTfJP workshop at ECOOP, 2005.
|
| |
47
|
Matthew Smith. A Model of Effects with an application to Ownership Types. PhD thesis, Imperial College, 2007.
|
| |
48
|
|
 |
49
|
Mads Torgersen , Christian Plesner Hansen , Erik Ernst , Peter von der Ahé , Gilad Bracha , Neal Gafter, Adding wildcards to the Java programming language, Proceedings of the 2004 ACM symposium on Applied computing, March 14-17, 2004, Nicosia, Cyprus
[doi> 10.1145/967900.968162]
|
| |
50
|
Tobias Wrigstad and Dave Clarke. Existential owners for ownership types. JOT, 2007.
|
|