Complexity of points-to analysis of Java']Java in the presence of exceptions

被引:15
|
作者
Chatterjee, R
Ryder, BG
Landi, WA
机构
[1] Oracle Corp, Nashua, NH 03062 USA
[2] Rutgers State Univ, Dept Comp Sci, Piscataway, NJ 08854 USA
[3] Siemens Corp Res Inc, Princeton, NJ 08540 USA
基金
美国国家科学基金会;
关键词
points-to analysis; !text type='Java']Java[!/text; exceptions; complexity;
D O I
10.1109/32.926173
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
At each program point, points-fo analysis for statically typed object-oriented programming languages (e.g., Java, C++) determines those objects to which a reference may refer (or a pointer may point) during execution. Points-to analysis is necessary for any semantics-based software tools for object-oriented systems. Our new complexity results for points-to analysis distinguish the difficulty of intraprocedural and interprocedural points-to analyses for languages with combinations of single-level types (i.e., types with data members only of primitive type), exceptions with or without subtyping, and dynamic dispatch. Our results include: 1) The first polynomial-time algorithm for points-to analysis in the presence of exceptions that handles a robust subset of Java without threads and can be applied to C++; 2) proof that the above algorithm is safe, in general, and provably precise on programs with single-level types and exceptions without subtyping, but not dynamic dispatch. thus, this case is in P; 3) proof that an interprocedural points-to analysis problem with single-level types and exceptions with subtyping, but without dynamic dispatch, is PSPACE-hard, while the intraprocedural problem is PSPACE-complete. Other complexity characterizations of points-to analysis in programs without exceptions are presented, including an algorithm with worst-case bound of O(n(5)), which improves over the O(n(7)) worst-case bound achievable from previous approaches of Reps et al. [53] and Landi and Ryder [42].
引用
收藏
页码:481 / 512
页数:32
相关论文
共 50 条
  • [1] Efficient and Effective Handling of Exceptions in Java']Java Points-to Analysis
    Kastrinis, George
    Smaragdakis, Yannis
    [J]. COMPILER CONSTRUCTION, CC 2013, 2013, 7791 : 41 - 60
  • [2] Probabilistic Points-to Analysis for Java']Java
    Sun, Qiang
    Zhao, Jianjun
    Chen, Yuting
    [J]. COMPILER CONSTRUCTION, 2011, 6601 : 62 - +
  • [3] Scaling Java']Java points-to analysis using SPARK
    Lhoták, O
    Hendren, L
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 153 - 169
  • [4] Demand-driven points-to analysis for Java']Java
    Sridharan, M
    Gopan, D
    Shan, L
    Bodík, R
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (10) : 59 - 76
  • [5] Points-to analysis for Java']Java using annotated constraints
    Rountev, A
    Milanova, A
    Ryder, BG
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (11) : 43 - 55
  • [6] Parameterized object sensitivity for points-to analysis for Java']Java
    Milanova, A
    Rountev, A
    Ryder, BG
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2005, 14 (01) : 1 - 41
  • [7] Incremental Points-to Analysis for Java']Java via Edit Propagation
    Chen, Yuting
    Shi, Qiuwei
    Miao, Weikai
    [J]. STRUCTURED OBJECT-ORIENTED FORMAL LANGUAGE AND METHOD, 2015, 8979 : 164 - 178
  • [8] 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
  • [9] Control flow analysis in the presence of exceptions for Java']Java
    Yahyaoui, H
    Tawbi, N
    Rodrigue, JF
    [J]. CCECE 2003: CANADIAN CONFERENCE ON ELECTRICAL AND COMPUTER ENGINEERING, VOLS 1-3, PROCEEDINGS: TOWARD A CARING AND HUMANE TECHNOLOGY, 2003, : 1363 - 1368
  • [10] PATH IDENTIFYING IN POINTS-TO ANALYSIS FOR JAVA']JAVA WITH ANSWER SET PROGRAMMING
    Bo, Yang
    Ying, Zhang
    Ming-Yi, Zhang
    [J]. UNCERTAINTY MODELING IN KNOWLEDGE ENGINEERING AND DECISION MAKING, 2012, 7 : 360 - 367