摘要
堆内存的大量使用使得Java程序上数据依赖关系的精确提取仍存在许多困难.对于堆空间上的依赖提取,通常的做法是先对堆上空间进行命名,再据此分析依赖关系.然而该方法不能在多个定义间进行强更新,故分析精度不够理想.针对此问题,该文首先提出了一种点间确定别名的概念,然后用它生成强更新和相对更新来精化数据依赖分析.实验表明,与不进行强更新和相对更新的数据依赖分析方法相比,新算法能够在相对较少的额外时间消耗内,有效地提高堆空间上依赖分析的精度.
Data dependence is widely used in software engineering activities. Due to the massive use of heap objects, it is still difficult to extract them from Java programs precisely. Several methods have been proposed to address this problem. One simple but scalable method is performing dependence analysis based on heap object naming. However, such a method, although effective, is not precise enough. This paper firstly introduces a notion of interstatement must alias, and then refines dependence analysis by generating strong updates and relative updates with these aliases. Empirical results show that the proposed algorithm can effectively improve the precision of dependence analysis for heap locations with very limited analysis time increment.
出处
《计算机学报》
EI
CSCD
北大核心
2008年第3期419-430,共12页
Chinese Journal of Computers
基金
国家杰出青年科学基金(60425206)
国家自然科学基金重点项目(60633010)
江苏省高技术研究项目基金(BG2005032)
江苏省“六大人才高峰”计划资助
关键词
数据依赖
指针分析
别名分析
确定别名
强更新
data dependence
pointer analysis
alias analysis
must alias
strong update