in AliasJava [1] are also similar in spirit to read only. We hope that combining ownership and immutability will be a safer way of introducing immutability into the ...
code. OIGJ can express the factory and visitor patterns, and. OIGJ can type-check Sun's java.util collections (except for the clone method) without refactoring and ...
Aug 2, 2010 - With ownership certain propositions about the heap layout can be ...... [3] Adrian Birka and Michael D. Ernst. A practical type system and.
Mar 31, 2015 - Transpennine, Greater Anglia, West Coast, London Midland, East ..... are presently outsourced. ... indefi
that the deforestation algorithm cannot derive efficient Knuth-Morris-Pratt style .... test for partial evaluation, supercompilation, and GPC, and relate all these re-.
Jul 15, 2009 - sues when integrated in run-time environments. This makes .... is self-executing and operates at run-time in Python, allow- ing interaction ...
ontology which can be used for both classification and synthesis of graphical representations. Our ontology can ... pare, since a common meaning of visualization-related terms ...... [NV98] NIGAY L., VERNIER F.: Design method of interaction.
very challenging with the increasing complexity of these service activities and with particular ... Table 1 Mapping between service knowledge elements process framework elements. ... of method plug-ins to cover a generic service life-cycle.
ICSE '11, May 21–28, 2011, Waikiki, Honolulu, HI, USA. Copyright ... This paper
solves the conversion problem. ... best of our knowledge, the first paper that
describes ... 10. 11. 12. 13. 14. 15 public int getRadius () {. 16 return r ;. 17. }
massively parallel âBig Dataâ work relies on immutable DataSets. This leads us to ... 7th Biennial Conference on Inn
pocampal slices, identified the migration of the PSD (Post- synaptic Density) along the shaft of the dendrites through a dendritic spine or a âprotospineâ using ...
A1: Altera tion. A4: Eleva tion. OR. OR. OR. A2141: Floppy. Disk. A2142: CD-. ROM ..... Recovery Engine. Proc. DSN ... Data Acquisition (SCADA) Systems.
Aug 23, 2010 - 6 Department of Physics, Lancaster University, Lancaster LA1 4YB, UK .... I cannot say much about the present state of the art for rogue wave ...
Testing, John Wiley & Sons, Inc, ..... founder of Satisfice Inc. (USA), which is dedicated to teaching and consulting in software ... Apple Computer and Borland.
In this paper, we present a relatively simple information theoretic definition of saliency that is shown to have ..... to the resize factor of 0.25 are best. Scaling down ...
Apr 6, 2012 - Salmo salar naturally infected with ectoparasitic sea lice ... observation that lice prevalence was strongly increased on a fraction of sexually ...
the rules and policies in a single form rather than in a ... rules encoded in policies and semantic web services are ... matchmaking at client side, and distributed.
Additional Key Words and Phrases: Automatic parallelization, affine scheduling, storage optimiza- ... It remains an important and relevant problem in computer science to auto- ... We now consider an abstract description of the scheduling problems fac
Oct 20, 1997 - always been a relatively small part of the housing market (Table 2). ... quite common for tenants to own a secondary residence or even rental housing. ...... 23. In 1960, one half of all mortgage credits had fixed annuities.
evidence-based ownership of PROFILES ideas and innovative practices. Two rounds of .... Students used onion, apple and carrot for their investigations.
Department of Computer Science. University of Oxford [email protected]. Abstract. HIPimm, an extension of the HIP/SLEEK automatic verification.
Mar 16, 2007 - paper presents Immutability Generic Java (IGJ), a novel language extension that ...... That is similar in spirit to Java's methods. 10. 2007/3/16 ...
format, EPW, and EnergyPlus converter tool, which was used for conversion after ... adequately climate responsive. .... data.org/sres/hadcm3_download.html.
Dec 2, 2013 ... seem to have been playing a great role in reducing the distance between ...
There is also Agent Greta [13] - an emotional BDI agent, developed ...
Java 5 to support deep ownership [5, 4] guarantees with no change to the syntax of the ... extended by Package, Class, and This used to specify package- only, class-only, and ... Boyland [2] highlights âobservational expo- sureâ as a reason ...
Towards Unifying Immutability and Ownership (Position Paper) Paley Li, Alex Potanin
James Noble, Lindsay Groves
Victoria University of Wellington {lipale|alex}@mcs.vuw.ac.nz
Victoria University of Wellington {kjx|lindsay}@mcs.vuw.ac.nz
Abstract Immutability is a highly requested feature missing from the mainstream object-oriented languages. Boyland [2] argues that immutability cannot be introduced into a language without additional aliasing-prone mechanisms such as ownership (or fractional permissions). Rather than providing support for both of these important features independently [8, 6, 1], we explore the possibility of unifying them into one. We propose three variations starting with a straight combination of Generic Ownership [12] and Generic Immutability [13] and finishing with a possibility of a Capabilitieslike system [3]. We hope to explore a pathway to more general, unified concept.
IGJ also improves on Java by allowing limited variance depending on the immutability parameter. It is considered unsafe in Java to allow a list to be variant in its element type parameter. The covariance would allow one to have a list of strings to be treated as a list of objects (potentially trying to add an object instead of string) and contravariance would allow one to have a list of objects treated as a list of strings (potentially trying to take out an object as if though it was a string). Both are bad and Java 5 chose to prohibit variance in the mean time. However, covariant changes to the other type parameters are perfectly safe if the immutability parameter is ReadOnly or Immutable.
3. 1.
Generic Ownership
Generic Ownership [12, 10] uses generic types supported since Java 5 to support deep ownership [5, 4] guarantees with no change to the syntax of the language. Here is an example of a list declared in an Ownership Generic Java (OGJ) language [9]: class List < E extends Object , O extends World > {...} One can see how an additional (last) type parameter is an owner parameter declaring the owner variable for the current list. The owner of an element is also present implicitly but does not have to be explicitly declared. The owners form a small hierarchy with World at the top, extended by Package, Class, and This used to specify packageonly, class-only, and current instance only ownership.
2.
Generic Immutability
Generic Immutability [13] again uses generic types to support both reference- and object-immutability. Here is an example of a list declared in Immutability Generic Java (IGJ) language [11]: class List < I extends ReadOnly , E extends Object > {...} Here immutability parameter comes first and allows list to be ReadOnly (read-only reference), Mutable (default reference in Java), and Immutable (reference to an immutable object). The immutabilities again form a small hierarchy with ReadOnly at the top, extended by Mutable and Immutable. This allows a neat way of expressing a method parameter that only accepts read-only argument without resorting to two method declarations for the same method (as in C++ when using const): void foo ( Bar