Refinement-based context-sensitive points-to analysis for Java']Java

被引:2
|
作者
Sridharan, Manu [1 ]
Bodik, Rastislav [1 ]
机构
[1] Univ Calif Berkeley, Berkeley, CA 94720 USA
关键词
refinement; context-sensitive analysis; points-to analysis; demand-driven analysis;
D O I
10.1145/1133255.1134027
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a scalable and precise context-sensitive points-to analysis with three key properties: ( 1) filtering out of unrealizable paths, ( 2) a context-sensitive heap abstraction, and ( 3) a context-sensitive call graph. Previous work [ 21] has shown that all three properties are important for precisely analyzing large programs, e. g., to show safety of downcasts. Existing analyses typically give up one or more of the properties for scalability. We have developed a refinement-based analysis that succeeds by simultaneously refining handling of method calls and heap accesses, allowing the analysis to precisely analyze important code while entirely skipping irrelevant code. The analysis is demand-driven and client-driven, facilitating refinement specific to each queried variable and increasing scalability. In our experimental evaluation, our analysis proved the safety of 61% more casts than one of the most precise existing analyses across a suite of large benchmarks. The analysis checked the casts in under 13 minutes per benchmark (taking less than 1 second per query) and required only 35MB of memory, far less than previous approaches.
引用
收藏
页码:387 / 400
页数:14
相关论文
共 50 条
  • [1] Light Context-Sensitive Points-to Analysis for Java']Java
    Milanova, Ana
    [J]. PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, : 25 - 30
  • [2] Stacking-Based Context-Sensitive Points-to Analysis for Java']Java
    Li, Xin
    Ogawa, Mizuhito
    [J]. HARDWARE AND SOFTWARE: VERIFICATION AND TESTING, 2011, 6405 : 133 - 149
  • [3] Stacking-based context-sensitive points-to analysis for Java
    School of Information Science, Japan Advanced Institute of Science and Technology, Nomi, Japan
    [J]. Lect. Notes Comput. Sci., (133-149):
  • [4] Call-Graph-Based Context-Sensitive Points-to Analysis for Java']Java
    Bao, Yulin
    Zhang, Chenyi
    Su, Kaile
    [J]. IEEE TRANSACTIONS ON RELIABILITY, 2024, 73 (02) : 851 - 860
  • [5] An Ahead-of-time Yet Context-Sensitive Points-to Analysis for Java']Java
    Li, Xin
    Ogawa, Mizuhito
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 253 (05) : 31 - 46
  • [6] Context-sensitive points-to analysis:: Is it worth it?
    Lhoták, O
    Hendren, L
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2006, 3923 : 47 - 64
  • [7] Probabilistic Points-to Analysis for Java']Java
    Sun, Qiang
    Zhao, Jianjun
    Chen, Yuting
    [J]. COMPILER CONSTRUCTION, 2011, 6601 : 62 - +
  • [8] Thread-sensitive points-to analysis for multithreaded Java']Java programs
    Chang, BM
    Choi, JD
    [J]. COMPUTER AND INFORMATION SCIENCES - ISCIS 2004, PROCEEDINGS, 2004, 3280 : 945 - 954
  • [9] Context-sensitive trace inlining for Java']Java
    Haeubl, Christian
    Wimmer, Christian
    Moessenboeck, Hanspeter
    [J]. COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2013, 39 (04) : 123 - 141
  • [10] Flow-Sensitive Points-to Analysis for Java']Java Programs using BDDs
    Toussi, Hamid A.
    Rasoolzadegan, Abbas
    [J]. 2014 4TH INTERNATIONAL CONFERENCE ON COMPUTER AND KNOWLEDGE ENGINEERING (ICCKE), 2014, : 380 - 386