2005
DOI: 10.1145/1044834.1044835
|View full text |Cite
|
Sign up to set email alerts
|

Parameterized object sensitivity for points-to analysis for Java

Abstract: The goal of points-to analysis for Java is to determine the set of objects pointed to by a reference variable or a reference object field. We present object sensitivity, a new form of context sensitivity for flow-insensitive points-to analysis for Java. The key idea of our approach is to analyze a method separately for each of the object names that represent run-time objects on which this method may be invoked. To ensure flexibility and practicality, we propose a parameterization framework that allows analysis… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

4
346
1

Year Published

2007
2007
2015
2015

Publication Types

Select...
4
2
2

Relationship

1
7

Authors

Journals

citations
Cited by 357 publications
(351 citation statements)
references
References 40 publications
4
346
1
Order By: Relevance
“…However, other works [MRR05,LH08] have shown that, in practice, using object-sensitivity [MRR02,SBL11] to distinguish calling contexts for object-oriented programs is more precise and scalable than k-CFA. Though call string and object-sensitive contexts are incomparable in theory, an interesting empirical evaluation in future work would be to compare the precision of ∞-CFA with analyses using object-sensitive contexts.…”
Section: Empirical Evaluationmentioning
confidence: 99%
“…However, other works [MRR05,LH08] have shown that, in practice, using object-sensitivity [MRR02,SBL11] to distinguish calling contexts for object-oriented programs is more precise and scalable than k-CFA. Though call string and object-sensitive contexts are incomparable in theory, an interesting empirical evaluation in future work would be to compare the precision of ∞-CFA with analyses using object-sensitive contexts.…”
Section: Empirical Evaluationmentioning
confidence: 99%
“…The language is similar to Featherweight Java (FJ) [18], where notation • represents a sequence of •'s. The most noticeable difference here is expressions are ANormal, a form commonly used for specifying alias analyses over Java programs (e.g., [25]). In this form, (single) expressions include assignment x = y, field read x = y.fd, field update x.fd = y, method invocation x = y.md(z) and object instantiation x = new τ .…”
Section: Abstract Syntaxmentioning
confidence: 99%
“…Cypress implements a (field-sensitive) k-object context-sensitive algorithm [25]. To create a stress test for scalability, we choose an expensive form: k in our algorithm is not fixed to a (usually small) constant.…”
Section: Implementation and Evaluationmentioning
confidence: 99%
“…For example, let Pts be the points-to relation computed via a flow-insensitive, object-sensitive points-to analysis in the style of [8], and CG be an object-sensitive call graph. 6 Because these two analysis artifacts are object-sensitive, their respective dataflow facts make a distinction between those for ψ and those for ψ.…”
Section: Implementing Random Isolationmentioning
confidence: 99%
“…6 An object-sensitive call graph CG models the interprocedural control flow of a program: there is a node in CG for each method of the program for each context in which it can be invoked [8]. An object-sensitive points-to analysis associates points-to facts with the nodes of CG, thus computing different points-to facts for different object contexts of the same method.…”
Section: Implementing Random Isolationmentioning
confidence: 99%