An efficient inclusion-based points-to analysis for strictly-typed languages

被引:0
|
作者
Whaley, J [1 ]
Lam, MS [1 ]
机构
[1] Stanford Univ, Comp Syst Lab, Stanford, CA 94305 USA
来源
STATIC ANALYSIS, PROCEEDINGS | 2002年 / 2477卷
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We describe the design and implementation of an efficient. inclusion-based points-to analysis for strictly-typed object-oriented languages. Our implementation easily scales to millions of lines of Java code, and it supports language features such as inheritance, object fields, exceptional control flow, type casting, dynamic dispatch, and reflection. Our algorithm is based on Heintze and Tardieu's Andersen-style points-to analysis designed originally for C programs. We have improved the precision of their algorithm by tracking the fields of individual objects separately and by analyzing the local variables in a method in a flow-sensitive manner. Our algorithm represents the semantics of each procedure concisely using a sparse summary graph representation based on access paths; it iterates over this sparse representation until it reaches a fixed point solution. By utilizing the access path and field information present in the summary graphs, along with minimizing redundant operations and memory management overheads, we are able to quickly and effectively analyze very large programs. Our experimental results demonstrate that this technique can be used to compute precise static call graphs for very large Java programs.
引用
收藏
页码:180 / 195
页数:16
相关论文
共 43 条