ACM Home Page
Please provide us with feedback. Feedback
Demand-driven points-to analysis for Java
Full text PdfPdf (364 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
San Diego, CA, USA
SESSION: Analysis analyzed table of contents
Pages: 59 - 76  
Year of Publication: 2005
ISBN:1-59593-031-0
Also published in ...
Authors
Manu Sridharan  University of California, Berkeley
Denis Gopan  University of Wisconsin, Madison
Lexin Shan  University of California, Berkeley
Rastislav Bodík  University of California, Berkeley
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 98,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   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/1094811.1094817
What is a DOI?

ABSTRACT

We present a points-to analysis technique suitable for environments with small time and memory budgets, such as just-in-time (JIT) compilers and interactive development environments (IDEs). Our technique is demand-driven, performing only the work necessary to answer each query (a request for a variable's points-to information) issued by a client. In cases where even the demand-driven approach exceeds the time budget for a query, we employ early termination, i.e., stopping the analysis prematurely and returning an over-approximated result to the client. Our technique improves on previous demand-driven points-to analysis algorithms [17, 33] by achieving much higher precision under small time budgets and early termination.We formulate Andersen's analysis [5] for Java as a CFL-reachability problem [33]. This formulation shows that Andersen's analysis for Java is a balanced-parentheses problem, an insight that enables our new techniques. We exploit the balanced parentheses structure to approximate Andersen's analysis by regularizing the CFL-reachability problem, yielding an asymptotically cheaper algorithm. We also show how to regain most of the precision lost in the regular approximation as needed through refinement. Our evaluation shows that our regularization and refinement approach achieves nearly the precision of field-sensitive Andersen's analysis in time budgets as small as 2ms per query. Our technique can yield speedups of up to 16x over computing an exhaustive Andersen's analysis for some clients, with little to no precision loss.


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
Ashes suite collection. http://www.sable.mcgill.ca/software/.
 
2
jEdit: Open source programmer's text editor. http://www.jedit.org.
 
3
 
4
 
5
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, University of Copenhagen, DIKU, 1994.
6
7
8
9
10
 
11
12
 
13
 
14
 
15
 
16
S. Z. Guyer and C. Lin. Client-driven pointer analysis. In International Static Analysis Symposium (SAS), San Diego, CA, June 2003.
17
18
19
 
20
M. Hirzel, A. Diwan, and M. Hind. Pointer analysis in the presence of dynamic class loading. In European Conference on Object-Oriented Programming (ECOOP), June 2004.
 
21
M. Hirzel, D. von Dincklage, A. Diwan, and M. Hind. Fast online pointer analysis. Technical report, IBM Research RC23638, June 2005.
22
23
 
24
J. Kodumal and A. Aiken. Banshee: A scalable constraint-based analysis toolkit. In SAS '05: Proceedings of the 12th International Static Analysis Symposium. London, United Kingdom, September 2005.
 
25
O. Lhoták. Spark: A flexible points-to analysis framework for Java. Master's thesis, McGill University, December 2002.
 
26
O. Lhoták and L. Hendren. Scaling Java points-to analysis using Spark. In International Conference on Compiler Construction (CC), Warsaw, Poland, April 2003.
27
28
29
30
 
31
 
32
 
33
T. Reps. Program analysis via graph reachability. Information and Software Technology, 40(11-12):701--726, November/December 1998.
34
35
36
37
 
38
B. G. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. In International Conference on Compiler Construction (CC), Warsaw, Poland, April 2003.
39
40
41
 
42
R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot - a Java optimization framework. In Proceedings of CASCON 1999, pages 125--135, 1999.
43
 
44
45
46
47
48
49


Collaborative Colleagues:
Manu Sridharan: colleagues
Denis Gopan: colleagues
Lexin Shan: colleagues
Rastislav Bodík: colleagues