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 条
  • [41] Reflection analysis for Java']Java
    Livshits, B
    Whaley, J
    Lam, MS
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 139 - 160
  • [42] Escape analysis for Java']Java
    Choi, JD
    Gupta, M
    Serrano, M
    Sreedhar, VC
    Midkiff, S
    ACM SIGPLAN NOTICES, 1999, 34 (10) : 1 - 19
  • [43] Formal analysis of Java']Java programs in Java']JavaFAN
    Farzan, A
    Chen, F
    Meseguer, J
    Rosu, G
    COMPUTER AIDED VERIFICATION, 2004, 3114 : 501 - 505
  • [44] Probabilistic Programming for Java']Java using Symbolic Execution and Model Counting
    Visser, Willem
    Pasareanu, Corina S.
    SOUTH AFRICAN INSTITUTE OF COMPUTER SCIENTISTS AND INFORMATION TECHNOLOGISTS (SACSIT 2017), 2017, : 319 - 328
  • [45] Analysis of Java']Java Programs using Joana and Java']Java SDG API
    Kumar, Ranjan
    Panda, Subhrakanta
    Mohapatra, Durga Prasad
    2015 INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTING, COMMUNICATIONS AND INFORMATICS (ICACCI), 2015, : 2402 - 2408
  • [46] No Java']Java without caffeine -: A tool for dynamic analysis of Java']Java programs
    Guéhéneuc, YG
    Douence, R
    Jussien, N
    ASE 2002: 17TH IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, 2002, : 117 - 126
  • [47] Probabilistic longevity estimate for the LUSI mud volcano, East Java']Java
    Davies, Richard J.
    Mathias, Simon A.
    Swarbrick, Richard E.
    Tingay, Mark J.
    JOURNAL OF THE GEOLOGICAL SOCIETY, 2011, 168 (02) : 517 - 523
  • [48] Fine-grained parallelism in probabilistic parsing with Habanero Java']Java
    Francis-Landau, Matthew
    Xue, Bing
    Eisner, Jason
    Sarkar, Vivek
    PROCEEDINGS OF 2016 6TH WORKSHOP ON IRREGULAR APPLICATIONS: ARCHITECTURE AND ALGORITHMS (IA3), 2016, : 78 - 81
  • [49] Using ZBDDs in points-to analysis
    Lhotak, Ondrej
    Curial, Stephen
    Amaral, Jose Nelson
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2008, 5234 : 338 - +
  • [50] Fast and precise points-to analysis
    Lundberg, Jonas
    Gutzmann, Tobias
    Edvinsson, Marcus
    Lowe, Welf
    INFORMATION AND SOFTWARE TECHNOLOGY, 2009, 51 (10) : 1428 - 1439