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 条
  • [31] Generalized Points-to Graphs: A Precise and Scalable Abstraction for Points-to Analysis
    Gharat, Pritam M.
    Khedker, Uday P.
    Mycroft, Alan
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2020, 42 (02):
  • [32] Searching,for points-to analysis
    Bruns, G
    Chandra, S
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2003, 29 (10) : 883 - 897
  • [33] The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
    Halalingaiah, Shashin
    Sundaresan, Vijay
    Maier, Daryl
    Nandivada, V. Krishna
    Proceedings of the ACM on Programming Languages, 2024, 8 (OOPSLA2)
  • [34] AMIDST: A Java']Java toolbox for scalable probabilistic machine learning
    Masegosa, Andres R.
    Martinez, Ana M.
    Ramos-Lopez, Dario
    Cabanas, Rafael
    Salmeron, Antonio
    Langseth, Helge
    Nielsen, Thomas D.
    Madsen, Anders L.
    KNOWLEDGE-BASED SYSTEMS, 2019, 163 : 595 - 597
  • [35] Java']Java-based animation of probabilistic search algorithms
    Syrjakow, M
    Szczerbicka, H
    PROCEEDINGS OF THE 1999 INTERNATIONAL CONFERENCE ON WEB-BASED MODELING AND SIMULATION, 1999, 31 (03): : 182 - 187
  • [36] Heterogeneous fixed points with application to points-to analysis
    Kanade, A
    Khedker, U
    Sanyal, A
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 298 - 314
  • [37] OO design and implementation: Java']Java and Java']Java analysis studio
    Johnson, AS
    2000 CERN SCHOOL OF COMPUTING, 2000, 2000 (13): : 99 - 105
  • [38] An Effective Approach of Points-To Analysis
    Zhang Yuping
    Deng Zhaori
    Zhang Xiaoning
    Ma Yan
    PROCEEDINGS OF THE 2015 INTERNATIONAL SYMPOSIUM ON COMPUTERS & INFORMATICS, 2015, 13 : 2038 - 2045
  • [39] Java']Java & static analysis
    Chaturvedi, A
    DR DOBBS JOURNAL, 2005, 30 (07): : 25 - +
  • [40] Concurrency analysis for Java']Java
    Ungureanu, C
    Jagannathan, S
    STATIC ANALYSIS, 2000, 1824 : 413 - 432