Open AccessBook
Using Runtime Analysis to Guide Model Checking of Java Programs
Klaus Havelund
- 06 Aug 2013
TL;DR: Two runtime analysis algorithms, an existing data race detection algorithm and a new deadlock detection algorithm, have been implemented to analyze Java programs to generate a set of warnings which can be used to guide a model checker, thereby reducing the search space.
read more
Abstract: This paper describes how two runtime analysis algorithms, an existing data race detection algorithm and a new deadlock detection algorithm, have been implemented to analyze Java programs. Runtime analysis is based on the idea of executing the program once, and observing the generated run to extract various kinds of information. This information can then be used to predict whether other different runs may violate some properties of interest, in addition of course to demonstrate whether the generated run itself violates such properties. These runtime analyses can be performed stand-alone to generate a set of warnings. It is furthermore demonstrated how these warnings can be used to guide a model checker, thereby reducing the search space. The described techniques have been implemented in the home grown Java model checker called Java PathFinder.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Model checking programs
Willem Visser,Klaus Havelund,Guillaume Brat,Seungjoon Park +3 more
- 11 Sep 2000
TL;DR: A verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing, and uses state compression to handle big states and partial order and symmetry reduction, slicing, abstraction, and runtime analysis techniques to reduce the state space.
Monitoring Java Programs with Java PathExplorer
Klaus Havelund,Grigore Rosu +1 more
- 01 Oct 2001
TL;DR: Recent work on the development of Java PathExplorer (\JPaXX), a tool for monitoring the execution of Java programs, can be used during program testing to gain increased information about program executions, and can potentially furthermore be applied during operation to survey safety critical systems.
311
Model Checking a Path (Preliminary Report)
N. Markey,P. Schnoebelen,Cnrs Fre +2 more
- 01 Jan 2003
TL;DR: It is shown that the problem of model checking a path can usually be solved efficiently, and profit from specialized algorithms, and it is possible to efficiently check paths given in compressed form.
Static deadlock detection for java libraries
Amy L. Williams,William Thies,Michael D. Ernst +2 more
- 25 Jul 2005
TL;DR: In this article, a lock-order graph is used to determine whether client code exists that may deadlock a library, and, if so, to enable the library writer to discover the calling patterns that can lead to deadlock.
Verify Your Runs
Klaus Havelund,Allen Goldberg +1 more
- 10 Oct 2005
TL;DR: In this paper it is argued that regular economic use of program verification of arbitrary properties to be fully achieved within the 15 year time horizon of the challenge is not expected.
References
•Book
The Java Language Specification
James Gosling,Bill Joy,Guy L. Steele +2 more
- 12 Sep 1996
TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
The model checker SPIN
Gerard J. Holzmann
- 01 May 1997
TL;DR: An overview of the design and structure of the verifier, its theoretical foundation, and an overview of significant practical applications are given.
Eraser: a dynamic data race detector for multithreaded programs
TL;DR: A new tool, called Eraser, is described, for dynamically detecting data races in lock-based multithreaded programs, which uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed.
Model checking programs
Willem Visser,Klaus Havelund,Guillaume Brat,Seungjoon Park +3 more
- 11 Sep 2000
TL;DR: A verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing, and uses state compression to handle big states and partial order and symmetry reduction, slicing, abstraction, and runtime analysis techniques to reduce the state space.
Model Checking JAVA Programs Using Java Pathfinder
TL;DR: An effort to formally analyze, using Spin, a multi-threaded operating system for the Deep-Space 1 space craft, and of previous work in applying existing model checkers and theorem provers to real applications.
Related Papers (5)
Willem Visser,Klaus Havelund,Guillaume Brat,Seungjoon Park +3 more
- 11 Sep 2000
Dawson Engler,Ken Ashcraft +1 more
- 19 Oct 2003
Amy L. Williams,William Thies,Michael D. Ernst +2 more
- 25 Jul 2005