2011
DOI: 10.1007/978-3-642-19861-8_7
|View full text |Cite
|
Sign up to set email alerts
|

JPure: A Modular Purity System for Java

Abstract: Abstract. Purity Analysis is the problem of determining whether or not a method may have side-effects. This has applications in automatic parallelisation, extended static checking, and more. We present a novel purity system for Java that employs purity annotations which can be checked modularly. This is done using a flow-sensitive, intraprocedural analysis. The system exploits two properties, called freshness and locality, to increase the range of methods that can be considered pure. JPure also includes an inf… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
29
0

Year Published

2012
2012
2022
2022

Publication Types

Select...
5
1
1

Relationship

3
4

Authors

Journals

citations
Cited by 32 publications
(29 citation statements)
references
References 40 publications
(39 reference statements)
0
29
0
Order By: Relevance
“…[23,24,25,26]). Much of this relies on interprocedural analysis, which is too costly for a verifying compiler.…”
Section: Language Overviewmentioning
confidence: 99%
See 1 more Smart Citation
“…[23,24,25,26]). Much of this relies on interprocedural analysis, which is too costly for a verifying compiler.…”
Section: Language Overviewmentioning
confidence: 99%
“…In Java, for example, even simple methods such as Object.equals() cannot easily be shown as pure. This is because classes in the standard library have side-effecting equals() implementations [23]. To address this, Whiley is a hybrid object-oriented and functional language which divides into a functional core and an imperative outer layer.…”
Section: Language Overviewmentioning
confidence: 99%
“…Flow typing offers an alternative to Hindley-Milner type inference where a variable may have different types at different program points. The technique is adopted from flow-sensitive program analysis and has been used for non-null types [12][13][14][15], information flow [16][17][18], purity checking [19] and more [12,13,[20][21][22][23][24][25][26].…”
Section: Introductionmentioning
confidence: 99%
“…A sensible way of ensuring this is to require that the annotations be modularly checkable [19]. That is, the annotations in one class can be checked in isolation from others and, hence, a whole-program analysis can be avoided.…”
Section: A Inferring and Checking Ownership Annotationsmentioning
confidence: 99%
“…As such, work on purity systems has been largely unconcerned with the issue of modular checkability. One exception is the JPure system which was explicitly designed to infer modularly checkable annotations [19].…”
Section: A Other Inference Systemsmentioning
confidence: 99%