Model Checking for Programming Languages using VeriSoft (1997)
| Venue: | IN PROCEEDINGS OF THE 24TH ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES |
| Citations: | 324 - 10 self |
BibTeX
@INPROCEEDINGS{Godefroid97modelchecking,
author = {Patrice Godefroid},
title = {Model Checking for Programming Languages using VeriSoft},
booktitle = {IN PROCEEDINGS OF THE 24TH ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES},
year = {1997},
pages = {174--186},
publisher = {ACM Press}
}
Years of Citing Articles
OpenURL
Abstract
Verification by state-space exploration, also often referred to as "model checking", is an effective method for analyzing the correctness of concurrent reactive systems (e.g., communication protocols). Unfortunately, existing model-checking techniques are restricted to the verification of properties of models, i.e., abstractions, of concurrent systems. In this paper, we discuss how model checking can be extended to deal directly with "actual" descriptions of concurrent systems, e.g., implementations of communication protocols written in programming languages such as C or C++. We then introduce a new search technique that is suitable for exploring the state spaces of such systems. This algorithm has been implemented in VeriSoft, a tool for systematically exploring the state spaces of systems composed of several concurrent processes executing arbitrary C code. As an example of application, we describe how VeriSoft successfully discovered an error in a 2500-line C program controlling rob...







