Model checking programs
Abstract:The majority of the work carried out in the formal methods community throughout the last three decades has (for good reasons) been devoted to special languages designed to make it easier to experiment with mechanized formal methods such as theorem provers and model checkers. In this paper, we give arguments for why we believe it is time for the formal methods community to shift some of its attention towards the analysis of programs written in modern programming languages. In keeping with this philosophy, we have developed a verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing. Part of this work has consisted of building a new Java Virtual Machine that interprets Java bytecode. JPF uses state compression to handle large states, and partial order reduction, slicing, abstraction and run-time analysis techniques to reduce the state space. JPF has been applied to a real-time avionics operating system developed at Honeywell, illustrating an intricate error, and to a model of a spacecraft controller, illustrating the combination of abstraction, run-time analysis and slicing with model checking.
摘要:在过去的三十年里,形式化方法社区开展的大部分工作(有充分的理由)都致力于特殊的语言,旨在更容易地试验机械化的形式化方法,如定理证明器和模型检查器。在这篇文章中,我们给出了为什么我们认为形式方法社区应该将部分注意力转移到用现代编程语言编写的程序的分析上的论点。本着这一理念,我们为Java开发了一个验证和测试环境,称为Java探路器(JPF),它集成了模型检查、程序分析和测试。这项工作的一部分是构建一个新的解释Java字节码的Java虚拟机。JPF使用状态压缩来处理大状态,并使用偏序缩减、切片、抽象和运行时分析技术来缩减状态空间。JPF已被应用于霍尼韦尔开发的实时航空电子操作系统,说明了一个复杂的错误,并应用于航天器控制器的模型,说明了抽象、运行时分析和切片与模型检查的组合。
暂无分享,去 创建一个
[1] Frank Tip,et al. A survey of program slicing techniques , 1994, J. Program. Lang..
[2] David L. Dill,et al. Experience with Predicate Abstraction , 1999, CAV.
[3] Natarajan Shankar,et al. PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.
[4] Lynette I. Millett,et al. Slicing Promela and its Applications to Model Checking, Simulation, and Protocol Understanding , 2002 .
[5] John Penix,et al. Using predicate abstraction to reduce object-oriented programs for model checking , 2000, FMSP '00.
[6] Sérgio Vale Aguiar Campos,et al. Symbolic Model Checking , 1993, CAV.
[7] Natarajan Shankar,et al. Abstract and Model Check While You Prove , 1999, CAV.
[8] C. A. R. HOARE,et al. An axiomatic basis for computer programming , 1969, CACM.
[9] Masahiro Fujita,et al. Program Slicing of Hardware Description Languages , 1999, CHARME.
[10] Klaus Havelund,et al. Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.
[11] Frits W. Vaandrager,et al. Proof-Checking a Data Link Protocol , 1994, TYPES.
[12] David L. Dill,et al. Validity Checking for Combinations of Theories with Equality , 1996, FMCAD.
[13] John Penix,et al. Verification of time partitioning in the DEOS scheduler kernel , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.
[14] Michael Burrows,et al. Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.
[15] Gerard J. Holzmann,et al. An improvement in formal verification , 1994, FORTE.