相关论文

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.

引用
Automated analysis of energy efficiency and execution performance for mobile applications
2015
Algorithms for analyzing parallel computations
2017
Enhancing symbolic execution using memoization and incremental techniques
2013
Systematic techniques for efficiently checking Software Product Lines
2013
Contract-driven data structure repair : a novel approach for error recovery
2014
Predicate detection for parallel computations
2016
Compositional verification of component-based real-time systems and applications. (Vérification compositionnelle des systèmes temps-réel à base de composants et applications)
2016
State Controlled Object Oriented Programming
2014
Fundamental Approaches to Software Engineering
Lecture Notes in Computer Science
2013
Automated Technology for Verification and Analysis
Lecture Notes in Computer Science
2004
Jason A Java-based interpreter for an extended version of AgentSpeak developed by
2007
Type systems for formal verification of concurrent programs
2008
With an Open Mind: How to Write Good Models
FTSCS
2013
Model checking C programs using F-Soft
2005 International Conference on Computer Design
2005
Reasoning about the Implementation of Concurrency Abstractions on x86-TSO
ECOOP
2010
MUX: algorithm selection for software model checkers
MSR 2014
2014
Dynamic Adaptations of Synchronization Granularity in Concurrent Data Structures
2018
A direct path to dependable software
CACM
2009
Ariadne: Hybridizing Directed Model Checking and Static Analysis
2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)
2017
Towards Model-Based Integration of Tools and Techniques for Embedded Control System Design, Verification, and Implementation
MoDELS
2009