西安电子科技大学学报 ›› 2019, Vol. 46 ›› Issue (1): 33-38.doi: 10.19665/j.issn1001-2400.2019.01.006

• • 上一篇    下一篇

采用CPAChecker的动态程序验证

段钊1,刘锟龙2   

  1. 1. 西安电子科技大学 计算机学院,陕西 西安 710071
    2. 合肥工业大学 电气与自动化工程学院,安徽 合肥 230009
  • 收稿日期:2018-06-27 出版日期:2019-02-20 发布日期:2019-03-05
  • 作者简介:段 钊 (1990-),男,西安电子科技大学博士研究生,E-mail: duanzhao_xidian@163.com
  • 基金资助:
    国家自然科学基金(61732013)

Dynamic program verification via a CPAChecker

DUAN Zhao1,LIU Kunlong2   

  1. 1. School of Computer Science and Technology, Xidian Univ., Xi’an 710071, China;
    2. School of Electrical Engineering and Automaton, Hefei University of Technology, Anhui 230009, China
  • Received:2018-06-27 Online:2019-02-20 Published:2019-03-05

摘要:

针对模型检测中状态空间爆炸问题,在CPAChecker的抽象谓词检测方法的基础上,提出了一种基于动态执行的检测方法. 首先,根据程序的控制流程图,对程序进行静态检测。 在静态检测的过程中,根据分支语句的确定性,利用动态执行的方法来加快检测的过程。 其中,抽象检测可以有效地限制系统模型的规模,动态执行不仅可以有效地减少静态检测导致的误判,而且有助于引导构建精确的系统模型,降低虚假反例的数量和不必要的反例分析和精化。 实验数据显示,这种算法明显提高了传统的反例引导谓词抽象精化算法的检测效率和准确率。

关键词: 模型检测, 抽象精化, 动态执行, 程序验证, 状态空间爆炸

Abstract:

To overcome the state space explosion problem in model checking, a CPAChecker based dynamic program verification approach is proposed. The proposed approach first verifies the program statically by unwinding the control flow chart. In the process, dynamic execution is applied to accelerate the verification on the basis of the determinism of branch statements. Specifically, abstract verification effectively reduces the size of the system models, while dynamic detection not only effectively reduces false positives, but also guides the construction of more accurate system models. As a result, the proposed approach makes counterexample-guided abstraction refinement more efficient and accurate in practice.

Key words: model checking, abstract refinement, dynamic execution, program verification, state space explosion

中图分类号: 

  • TP302.7
Baidu
map