Probabilistic Points-to Analysis for Java']Java

被引:0
|
作者
Sun, Qiang [1 ]
Zhao, Jianjun [1 ,2 ]
Chen, Yuting [2 ]
机构
[1] Shanghai Jiao Tong Univ, Dept Comp Sci & Engn, 800 Dongchuan Rd, Shanghai 200240, Peoples R China
[2] Shanghai Jiao Tong Univ, Sch Software, Shanghai 200240, Peoples R China
来源
COMPILER CONSTRUCTION | 2011年 / 6601卷
关键词
points-to analysis; probability; !text type='Java']Java[!/text;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Probabilistic points-to analysis is an analysis technique for defining the probabilities on the points-to relations in programs. It provides the compiler with some optimization chances such as speculative dead store elimination, speculative redundancy elimination, and speculative code scheduling. Although several static probabilistic points-to analysis techniques have been developed for C language, they cannot be applied directly to Java because they do not handle the classes, objects, inheritances and invocations of virtual methods. In this paper, we propose a context-insensitive and flow-sensitive probabilistic points-to analysis for Java (JPPA) for statically predicting the probability of points-to relations at all program points (i.e., points before or after statements) of a Java program. JPPA first constructs an interprocedural control flow graph (ICFG) for a Java program, whose edges are labeled with the probabilities calculated by an algorithm based on a static branch prediction approach, and then calculates the probabilistic points-to relations of the program based upon the ICFG. We have also developed a tool called Lukewarm to support JPPA and conducted an experiment to compare JPPA with a traditional context-insensitive and flow-sensitive points-to analysis approach. The experimental results show that JPPA is a precise and effective probabilistic points-to analysis technique for Java.
引用
收藏
页码:62 / +
页数:3
相关论文
共 50 条
  • [1] Scaling Java']Java points-to analysis using SPARK
    Lhoták, O
    Hendren, L
    COMPILER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 153 - 169
  • [2] Demand-driven points-to analysis for Java']Java
    Sridharan, M
    Gopan, D
    Shan, L
    Bodík, R
    ACM SIGPLAN NOTICES, 2005, 40 (10) : 59 - 76
  • [3] Points-to analysis for Java']Java using annotated constraints
    Rountev, A
    Milanova, A
    Ryder, BG
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 43 - 55
  • [4] Complexity of points-to analysis of Java']Java in the presence of exceptions
    Chatterjee, R
    Ryder, BG
    Landi, WA
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2001, 27 (06) : 481 - 512
  • [5] Parameterized object sensitivity for points-to analysis for Java']Java
    Milanova, A
    Rountev, A
    Ryder, BG
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2005, 14 (01) : 1 - 41
  • [6] Incremental Points-to Analysis for Java']Java via Edit Propagation
    Chen, Yuting
    Shi, Qiuwei
    Miao, Weikai
    STRUCTURED OBJECT-ORIENTED FORMAL LANGUAGE AND METHOD, 2015, 8979 : 164 - 178
  • [7] Light Context-Sensitive Points-to Analysis for Java']Java
    Milanova, Ana
    PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, : 25 - 30
  • [8] Efficient and Effective Handling of Exceptions in Java']Java Points-to Analysis
    Kastrinis, George
    Smaragdakis, Yannis
    COMPILER CONSTRUCTION, CC 2013, 2013, 7791 : 41 - 60
  • [9] PATH IDENTIFYING IN POINTS-TO ANALYSIS FOR JAVA']JAVA WITH ANSWER SET PROGRAMMING
    Bo, Yang
    Ying, Zhang
    Ming-Yi, Zhang
    UNCERTAINTY MODELING IN KNOWLEDGE ENGINEERING AND DECISION MAKING, 2012, 7 : 360 - 367
  • [10] Thread-sensitive points-to analysis for multithreaded Java']Java programs
    Chang, BM
    Choi, JD
    COMPUTER AND INFORMATION SCIENCES - ISCIS 2004, PROCEEDINGS, 2004, 3280 : 945 - 954