摘要
程序的不变性(immutability)是指类的实例对象在其生命周期内状态不会发生改变.不变性信息可以用来指导程序的分析、测试和验证等工作.现有分析不变性的技术主要集中于对程序的静态分析,而动态分析方面的工作很少.文中在分析了静、动态分析技术各自的优缺点后,提出了一种静动态结合的混合分析技术.首先通过对程序进行静态分析,即对程序进行分析测试和验证,来获得初步的程序不变性信息,然后对静态分析的结果中不确定的部分再进行动态分析,即通过观察程序运行时各个对象的状态变化进行分析,同时还将动态分析用于对静态分析结果的验证.静动态结合的分析技术比单纯的静态分析提高了分析结果的精度,同时也比单纯的动态分析降低了开销,提高了效率.
An object is immutable if its state cannot be changed during its life cycle.This characteristic of object is called immutability.The immutability information can be applied to conduct program analysis,testing,verification,and so on.The analysis techniques of object immutability can be classified into two categories:One is static analysis,the other is dynamic analysis.Consider both the advantages and disadvantages of static analysis and dynamic analysis,this paper presents a hybrid analysis technique,which combines the static and dynamic technique to analyze the immutability of Java program:first analyzes a program statically,and then dynamically checks the undecided parts in the result of static analysis.Also dynamic analysis can be used to verify the results of static analysis.This hybrid analysis technique not only increases the precision to static analysis but also reduces the cost to dynamic analysis.
出处
《计算机学报》
EI
CSCD
北大核心
2010年第4期736-746,共11页
Chinese Journal of Computers
基金
国家自然科学基金(60721002
60603036
90818022)
国家"九七三"重点基础研究发展规划项目基金(2009CB320702)
国家"八六三"高技术研究发展计划项目基金(2009AA01Z148
2007AA010302)
江苏省基础研究计划项目基金(BK2007139)资助~~
关键词
不变性
静态分析
动态分析
混合分析
immutability
static analysis
dynamic analysis
combined static and dynamic analysis