期刊文献+

静动态结合的Java程序不变性分析方法 被引量:10

Combined Static and Dynamic Immutability Analysis of Java Program
下载PDF
导出
摘要 程序的不变性(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
  • 相关文献

参考文献10

  • 1Porat S, Biberstein M, Koved L, Mendelson B. Automatic detection of immutable fields in Java//Proceedings of the Annual International Conference Hosted by the IBM Centers for Advanced Studies (CASCON ' 00). Mississauga, Ontario, Canada, 2000. 被引量:1
  • 2Artzi S, Kiezun A, Glasser D, Ernst M D. Combined static and dynamic mutability analysis//Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering(ASE'07). Atlanta, Georgia, USA, 2007: 104- 113. 被引量:1
  • 3Zibin Y, Potanin A, All M, Artzi S, Kiezun A, Ernst M D. Object and reference immutability using Java geueries//Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESC/FSE' 07). Cavat near Dubrovnik. Croatia. 2007. 75-84. 被引量:1
  • 4Salcianu A, Rinard M. A combined pointer and purity analysis for Java programs. MIT CSAIL, Massachusetts Institute of Technology, Cambridge, MA: Technical Report MIT CSAIL-TR- 949, 2004. 被引量:1
  • 5Birka A, Ernst M D. A practical type system and language for reference immutability//Proceedings of the International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA'04). Vancouver, British, Columbia, Canada, 2004:35-49. 被引量:1
  • 6Tschantz M S, Ernst M D. Javari: Adding reference immutability to Java//Proceedings of the International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA' 05). San Diego, California, USA, 2005:211-230. 被引量:1
  • 7Pechtchanski I, Sarkar V. Immutability specification and its applications//Proeeedings of the Joint ACM Java Grande- ISCOPE Conference. Seattle, Washington, USA, 2002: 202-211. 被引量:1
  • 8Haaek C, Poll E et al. Immutable objects for a java-like language//Proceedings of the 16th European Symposium on Programming. Braga, Portugal, 2007:347-362. 被引量:1
  • 9Quinonez J, Tschantz M S, Ernst M D. Inference of reference immutability//Proceedings of the European Conference on Object Oriented Programming (ECOOP' 08). Paphos, Cyprus, 2008:616-641. 被引量:1
  • 10Artzi S, Kiezun A, Quinonez J, Ernst M D. Parameter reference immutability: Formal definition, inference tool, and comparison. Automatic Software Engineering, 2009, 16(1) : 145-192. 被引量:1

同被引文献67

引证文献10

二级引证文献4

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部