计算机科学 ›› 2015, Vol. 42 ›› Issue (12): 47-51.
冬雨辰,王寒非,赵建华
DONG Yu-chen, WANG Han-fei and ZHAO Jian-hua
摘要: 程序验证中的常见情景是判断某个用户指定的性质在程序执行之后或执行过程中的某个程序点上是否成立。人工的形式化验证过程繁琐且容易出错,因此形式化验证的自动化是提高代码验证效率的重要方法。数据流分析技术是一种能够自动发现程序中某类性质的技术。研究了将一种数据流分析技术(单链表形状分析)和基于Scope Logic的代码验证过程相结合的方法。通过数据流分析获得所有程序点上的单链表可达性性质,将结果表达为带有递归函数的一阶逻辑公式,并将其插入到相应程序点中。分析程序还根据Scope Logic的证明法则设定了这些公式之间的逻辑依赖关系。实例测试表明所提方法可以分析得到单链表可达性性质,并且分析结果能够被基于Scope Logic的代码形式化验证过程有效利用,提高了代码形式化证明的效率。
[1] Hoare C A R.An axiomatic basis for computer programming[J].Communications of the ACM,1969,12(10):576-580 [2] D’silva V,Kroening D,Weissenbacher G.A survey of automated techniques for formal software verification[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2008,27(7):1165-1178 [3] Aho A V.Compilers:Principles,Techniques and Tools[M].Pearson Education India,2003 [4] Z Jian-hua,L Xuan-dong.Scope Logic:An Extension to Hoare Logic for Pointers and Recursive Data Structures[C]∥Theore-tical Aspects of Computing-ICTAC 2013.Springer Berlin Heidelberg,2013:409-426 [5] De Moura L,Bjrner N.Z3:An efficient SMT solver[M]∥Tools and Algorithms for the Construction and Analysis of Systems.Springer Berlin Heidelberg,2008:337-340 [6] Khedker U,Sanyal A,Sathe B.Data flow analysis:theory and practice[M].CRC Press,2009 |
No related articles found! |
|