ACM Home Page
Please provide us with feedback. Feedback
Parameterized object sensitivity for points-to analysis for Java
Full text PdfPdf (413 KB)
Source ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 14 ,  Issue 1  (January 2005) table of contents
Pages: 1 - 41  
Year of Publication: 2005
ISSN:1049-331X
Authors
Ana Milanova  Rensselaer Polytechnic Institute, Troy, NY
Atanas Rountev  Ohio State University, Columbus, OH
Barbara G. Ryder  Rutgers University, Piscataway, NJ
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 18,   Downloads (12 Months): 154,   Citation Count: 27
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1044834.1044835
What is a DOI?

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 designers to control the tradeoffs between cost and precision in the object-sensitive analysis.Side-effect analysis determines the memory locations that may be modified by the execution of a program statement. Def-use analysis identifies pairs of statements that set the value of a memory location and subsequently use that value. The information computed by such analyses has a wide variety of uses in compilers and software tools. This work proposes new versions of these analyses that are based on object-sensitive points-to analysis.We have implemented two instantiations of our parameterized object-sensitive points-to analysis. On a set of 23 Java programs, our experiments show that these analyses have comparable cost to a context-insensitive points-to analysis for Java which is based on Andersen's analysis for C. Our results also show that object sensitivity significantly improves the precision of side-effect analysis and call graph construction, compared to (1) context-insensitive analysis, and (2) context-sensitive points-to analysis that models context using the invoking call site. These experiments demonstrate that object-sensitive analyses can achieve substantial precision improvement, while at the same time remaining efficient and practical.


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
Agesen, O. 1994. Constraint-based type inference and parametric polymorphism. In Proceedings of the Static Analysis Symposium. Lecture Notes in Computer Science, vol. 864. Springer-Verlag, Los Alamitos, Calif., 78--100.
 
2
 
3
 
4
 
5
Andersen, L. 1994. Program analysis and specialization for the C programming language. Ph.D. dissertation, DIKU, University of Copenhagen.
6
7
8
 
9
Clausen, L. 1997. A Java bytecode optimizer using side-effect analysis. Concurr.: Practice Exp. 9, 11, 1031--1045.
10
 
11
12
13
 
14
15
 
16
17
18
19
20
21
 
22
Corporation 1997. High Performance Compiler for Java. IBM Corporation. http://www. alphaWorks.ibm.com/formula.
 
23
Lhoták, O. and Hendren, L. 2003. Scaling Java points-to analysis using Spark. In Proceedings of the International Conference on Compiler Construction. Lecture Notes in Computer Science, vol. 2622. Springer-Verlag, New York, 153--169.
24
 
25
26
 
27
28
 
29
30
 
31
Razafimahefa, C. 1999. A study of side-effect analyses for Java. M.S. thesis, McGill University.
32
33
34
 
35
Ryder, B. G. 2003. Dimensions of precision in reference analysis of object-oriented programming languages. In Proceedings of the International Conference on Compiler Construction. Lecture Notes in Computer Science, vol. 2622. Springer-Verlag, New York, 126--137 (invited paper).
36
 
37
38
 
39
Sharir, M. and Pnueli, A. 1981. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications, S. Muchnick and N. Jones, Eds. Prentice Hall, Englewood Cliffs, N.J., 189--234.
 
40
41
42
 
43
Streckenbach, M. and Snelting, G. 2000. Points-to for Java: A general framework and an empirical comparison. Tech. rep., U. Passau. Sept.
44
45
46
 
47
 
48
49

CITED BY  27


REVIEW

"Birol O. Aygün : Reviewer"

Points-to analysis (PTA) has been a field of research for a long while. The earliest uses of PTA are probably as old as the first program using indirect addressing. The analysis basically consists of determining the set of addresses that can be re  more...

Collaborative Colleagues:
Ana Milanova: colleagues
Atanas Rountev: colleagues
Barbara G. Ryder: colleagues