|
ABSTRACT
We present Paddle, a framework of BDD-based context-sensitive points-to and call graph analyses for Java, as well as client analyses that use their results. Paddle supports several variations of context-sensitive analyses, including call site strings and object sensitivity, and context-sensitively specializes both pointer variables and the heap abstraction. We empirically evaluate the precision of these context-sensitive analyses on significant Java programs. We find that that object-sensitive analyses are more precise than comparable variations of the other approaches, and that specializing the heap abstraction improves precision more than extending the length of context strings.
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
|
|
| |
2
|
|
 |
3
|
B. Alpern , M. N. Wegman , F. K. Zadeck, Detecting equality of variables in programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-11, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73561]
|
| |
4
|
Ananian, C. S. 2006. JavaCUP. http://www2.cs.tum.edu/projects/cup/.
|
| |
5
|
Andersen, L. O. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, DIKU report 94/19, DIKU, University of Copenhagen.
|
 |
6
|
David F. Bacon , Peter F. Sweeney, Fast static analysis of C++ virtual function calls, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.324-341, October 06-10, 1996, San Jose, California, United States
|
 |
7
|
|
| |
8
|
Berndl, M., Lhoták, O., Qian, F., Hendren, L., and Umanee, N. 2002. Points-to analysis using BDDs. Tech. rep. 2002-10, Sable Research Group, McGill University.
|
 |
9
|
Marc Berndl , Ondrej Lhoták , Feng Qian , Laurie Hendren , Navindra Umanee, Points-to analysis using BDDs, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
 |
10
|
|
| |
11
|
Burke, M., Carini, P., Choi, J., and Hind, M. 1997. Interprocedural pointer alias analysis. Tech. rep. RC 21055, IBM T. J. Watson Research Center.
|
| |
12
|
|
| |
13
|
Cahoon, B. and McKinley, K. S. 2001b. JOlden benchmarks. ftp://ftp.cs.umass.edu/pub/o8l/benchmarks/jolden.tar.gz.
|
 |
14
|
|
| |
15
|
DaCapo Project. 2005. The DaCapo benchmark suite. http://www-ali.cs.umass.edu/DaCapo/gcbm.html.
|
| |
16
|
|
 |
17
|
Amer Diwan , J. Eliot B. Moss , Kathryn S. McKinley, Simple and effective analysis of statically-typed object-oriented programs, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, October 06-10, 1996, San Jose, California, United States
|
| |
18
|
Dufour, B. 2004. Objective quantification of program behaviour using dynamic metrics. M.S. thesis, McGill University.
|
 |
19
|
Bruno Dufour , Karel Driesen , Laurie Hendren , Clark Verbrugge, Dynamic metrics for java, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
20
|
Maryam Emami , Rakesh Ghiya , Laurie J. Hendren, Context-sensitive interprocedural points-to analysis in the presence of function pointers, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.242-256, June 20-24, 1994, Orlando, Florida, United States
|
 |
21
|
Manuel Fähndrich , Jeffrey S. Foster , Zhendong Su , Alexander Aiken, Partial online cycle elimination in inclusion constraint graphs, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.85-96, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
22
|
|
| |
23
|
Gagnon, E. M., Menking, B., Nowostawski, M., Agbakpem, K., and Gergely, K. 2006. SableCC parser generator. http://sablecc.org.
|
| |
24
|
|
| |
25
|
Gilbert, D. 2006. JFreechart. http://jfree.org/jfreechart.
|
 |
26
|
|
 |
27
|
|
| |
28
|
Heintze, N. 1999. Analysis of large code bases: the compile-link-analyze model. http://citeseer,ist,psu.edu/heintze99analysis.html.
|
 |
29
|
|
 |
30
|
|
 |
31
|
|
 |
32
|
William Landi , Barbara G. Ryder , Sean Zhang, Interprocedural modification side effect analysis with pointer aliasing, Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation, p.56-67, June 21-25, 1993, Albuquerque, New Mexico, United States
|
| |
33
|
Lhoták, O. 2002. Spark: A flexible points-to analysis framework for Java. M.S. thesis, McGill University.
|
| |
34
|
Lhoták, O. 2006. Program analysis using binary decision diagrams. Ph.D. thesis, McGill University.
|
| |
35
|
Lhoták, O. and Hendren, L. 2003. Scaling Java points-to analysis using Spark. In Proceedings of the 12th International Conference on Compiler Construction, G. Hedin, Ed. Lecture Notes in Computer Science, vol. 2622. Springer, 153--169.
|
 |
36
|
|
| |
37
|
Lhoták, O. and Hendren, L. 2006. Context-sensitive points-to analysis: is it worth it? In Proceedings of the 15th International Conference on Compiler Construction, A. Mycroft and A. Zeller, Eds. Lecture Notes in Computer Science, vol. 3923. Springer, Vienna, 47--64.
|
 |
38
|
|
 |
39
|
|
 |
40
|
|
| |
41
|
Lind-Nielsen, J. 2006. BuDDy, A Binary Decision Diagram Package. http://sourceforge,net/projects/buddy.
|
| |
42
|
|
| |
43
|
Manevich, R. 2003. Data structures and algorithms for efficient shape analysis. M.S. thesis, School of Computer Science, Tel-Aviv University, Israel.
|
| |
44
|
|
| |
45
|
|
 |
46
|
|
 |
47
|
|
| |
48
|
|
 |
49
|
|
| |
50
|
Nystrom, N., Clarkson, M. R., and Myers, A. C. 2003. Polyglot: An extensible compiler framework for Java. In Proceedings of the 12th International Conference on Compiler Construction. Lecture Notes in Computer Science, vol. 2622. 138--152.
|
 |
51
|
|
 |
52
|
Atanas Rountev , Ana Milanova , Barbara G. Ryder, Points-to analysis for Java using annotated constraints, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.43-55, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
53
|
|
| |
54
|
Ryder, B. G. 2003. Dimensions of precision in reference analysis of object-oriented programming languages. In Proceedings of the 12th International Conference on Compiler Construction (CC'03). G. Hedin, Ed. Lecture Notes in Computer Science, vol. 2622. Springer, 126--137.
|
 |
55
|
|
 |
56
|
|
| |
57
|
Sharir, M. and Pnueli, A. 1981. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications, S. S. Muchnick and N. D. Jones, Eds. Prentice-Hall, Chapter 7, 189--233.
|
 |
58
|
|
 |
59
|
Tatiana Shpeisman , Vijay Menon , Ali-Reza Adl-Tabatabai , Steven Balensiefer , Dan Grossman , Richard L. Hudson , Katherine F. Moore , Bratin Saha, Enforcing isolation and ordering in STM, Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, June 10-13, 2007, San Diego, California, USA
|
 |
60
|
|
| |
61
|
Somenzi, F. 2006. CUDD: CU Decision Diagram Package. http://vlsi.colorado.edu/~fabio/CUDD.
|
| |
62
|
Standard Performance Evaluation Corporation. 1998. SPEC JVM98 benchmarks. http://www. spec.org/osg/jvm/(Aug 10, 2006).
|
 |
63
|
|
 |
64
|
Vijay Sundaresan , Laurie Hendren , Chrislain Razafimahefa , Raja Vallée-Rai , Patrick Lam , Etienne Gagnon , Charles Godin, Practical virtual method call resolution for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.264-280, October 2000, Minneapolis, Minnesota, United States
|
 |
65
|
|
 |
66
|
Frank Tip , Jens Palsberg, Scalable propagation-based call graph construction algorithms, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.281-293, October 2000, Minneapolis, Minnesota, United States
|
| |
67
|
Vallée-Rai, R. 2000. Ashes suite collection. http://www.sable.mcgill.ca/ashes.
|
| |
68
|
Raja Vallée-Rai , Etienne Gagnon , Laurie J. Hendren , Patrick Lam , Patrice Pominville , Vijay Sundaresan, Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?, Proceedings of the 9th International Conference on Compiler Construction, p.18-34, March 25-April 02, 2000
|
 |
69
|
|
| |
70
|
|
| |
71
|
|
| |
72
|
|
 |
73
|
|
 |
74
|
John Whaley , Martin Rinard, Compositional pointer and escape analysis for Java programs, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.187-206, November 01-05, 1999, Denver, Colorado, United States
|
 |
75
|
|
 |
76
|
|
 |
77
|
|
|