计算机学报
計算機學報
계산궤학보
CHINESE JOURNAL OF COMPUTERS
2010年
4期
736-746
,共11页
于利前%王林章%雷斌%赵建华%李宣东
于利前%王林章%雷斌%趙建華%李宣東
우리전%왕림장%뢰빈%조건화%리선동
不变性%静态分析%动态分析%混合分析
不變性%靜態分析%動態分析%混閤分析
불변성%정태분석%동태분석%혼합분석
immutability%static analysis%dynamic analysis%combined static and dynamic analysis
程序的不变性(immutability)是指类的实例对象在其生命周期内状态不会发生改变.不变性信息可以用来指导程序的分析、测试和验证等工作.现有分析不变性的技术主要集中于对程序的静态分析,而动态分析方面的工作很少.文中在分析了静、动态分析技术各自的优缺点后,提出了一种静动态结合的混合分析技术.首先通过对程序进行静态分析,即对程序进行分析测试和验证,来获得初步的程序不变性信息,然后对静态分析的结果中不确定的部分再进行动态分析,即通过观察程序运行时各个对象的状态变化进行分析,同时还将动态分析用于对静态分析结果的验证.静动态结合的分析技术比单纯的静态分析提高了分析结果的精度,同时也比单纯的动态分析降低了开销,提高了效率.
程序的不變性(immutability)是指類的實例對象在其生命週期內狀態不會髮生改變.不變性信息可以用來指導程序的分析、測試和驗證等工作.現有分析不變性的技術主要集中于對程序的靜態分析,而動態分析方麵的工作很少.文中在分析瞭靜、動態分析技術各自的優缺點後,提齣瞭一種靜動態結閤的混閤分析技術.首先通過對程序進行靜態分析,即對程序進行分析測試和驗證,來穫得初步的程序不變性信息,然後對靜態分析的結果中不確定的部分再進行動態分析,即通過觀察程序運行時各箇對象的狀態變化進行分析,同時還將動態分析用于對靜態分析結果的驗證.靜動態結閤的分析技術比單純的靜態分析提高瞭分析結果的精度,同時也比單純的動態分析降低瞭開銷,提高瞭效率.
정서적불변성(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.