2010
DOI: 10.1145/1932682.1869509
|View full text |Cite
|
Sign up to set email alerts
|

Ownership and immutability in generic Java

Abstract: The Java language lacks the important notions of ownership (an object owns its representation to prevent unwanted aliasing) and immutability (the division into mutable, immutable, and readonly data and references). Programmers are prone to design errors, such as representation exposure or violation of immutability contracts. This paper presents Ownership Immutability Generic Java (OIGJ), a backward-compatible purely-static language extension supporting ownership and immutability. We formally defined a core cal… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
15
0

Year Published

2012
2012
2020
2020

Publication Types

Select...
5
1
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 24 publications
(21 citation statements)
references
References 37 publications
(48 reference statements)
0
15
0
Order By: Relevance
“…As shown by the examples of Sect.2, this type system is very powerful. Notably, it discriminates between well-typed and ill-typed terms in situations where type systems only based on declaring qualifiers are either too restrictive or require rather tricky rules [18,17,29].…”
Section: Conclusion and Further Workmentioning
confidence: 99%
See 1 more Smart Citation
“…As shown by the examples of Sect.2, this type system is very powerful. Notably, it discriminates between well-typed and ill-typed terms in situations where type systems only based on declaring qualifiers are either too restrictive or require rather tricky rules [18,17,29].…”
Section: Conclusion and Further Workmentioning
confidence: 99%
“…The last few decades have seen considerable interest in type systems for controlling sharing and interference, to make programs easier to maintain and understand. A simple and widely used technique is to enrich the type of an expression evaluating to a reference x by type qualifiers [29,18,25,10] or by capabilities [5,7]. Depending on the qualifier of x , restrictions are imposed and assumptions can be made on the (reachable) object graph of x .…”
Section: Introductionmentioning
confidence: 99%
“…Such requirements are satisfied by many type systems with read-only references or immutability (e.g. [7,11,18,23,29,33,37,41]). An implication of A1 and A2 is that capabilities degrade with growing paths, i.e., the prefix of a path has more rights than its extensions.…”
Section: Capabilities and Accessibilitymentioning
confidence: 99%
“…Rust provides facilities for borrowing ownership at function call boundaries in order to make function calls more convenient. The ownership system OIGJ [45] extends IGJ with a notion of ownership so that objects cannot leak outside their owners. Potanin's chapter on immutability [29] gives more detail on ownership types and immutability in general.…”
Section: Servetto Et Al Proposed Placeholders As a Technique For Safmentioning
confidence: 99%