| Venue: | IEEE Spectrum |
| Citations: | 92 - 2 self |
@ARTICLE{Kurshan96computer-aidedverification,
author = {Robert P. Kurshan},
title = {Computer-aided verification},
journal = {IEEE Spectrum},
year = {1996},
volume = {33},
pages = {61--67}
}
How can a computer program developer ensure that a program actually implements its intended purpose? This article describes a method for checking the correctness of certain types of computer programs. The method is used commercially in the development of programs implemented as integrated circuits and is applicable to the development of “control-intensive ” software programs as well. “Divide-and-conquer ” techniques central to this method apply to a broad range of program verification methodologies. Classical methods for testing and quality control no longer are sufficient to protect us from communication network collapses, fatalities from medical machinery malfunction, rocket guidance failure, or a half-billion dollar commercial loss due to incorrect arithmetic in a popular integrated circuit. These sensational examples are only the headline cases. Behind them are multitudes of mundane programs whose failures merely infuriate their users and cause increased costs to their producers. A source of such problems is the growth in program complexity. The more a program controls, the more types of interactions it supports. For example, the telephone “call-forwarding ” service (forwarding incoming calls to a customer-designated number) interacts with the “billing ” program that must determine whether the forwarding number or the calling number gets charged for the additional connection to the customer-designated number. At the same time, call-forwarding interacts with the “connection ” program that deals with the issue of
| 1207 | Symbolic Model Checking - McMillan - 1993 |
| 698 | Design and synthesis of synchronization skeletons using branching time temporal logic - Clarke, Emerson - 1981 |
| 510 | P.: An automata-theoretic approach to automatic program verification - Vardi, Wolper - 1986 |
| 393 | Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach - Kurshan - 1994 |
| 236 | Program development by stepwise refinement - Wirth - 1971 |
| 173 | Hierarchical ordering of sequential processes - Dijkstra - 2002 |
| 110 | Temporal and modal logic. Handbook of Theoretical Computer Science - Emerson - 1990 |
| 89 | Social processes and the proofs of theorems and programs - DeMillo, Lipton, et al. - 1979 |
| 61 | Lectures on Boolean Algebras - Halmos - 1963 |
| 31 | Model Checking - Jr, Peled - 1999 |
| 17 | Mathematical proofs of computer system correctness - Barwise - 1989 |
| 2 | Turning to formal verification - Schroeder - 1997 |
| 1 | eds.), Automated Theorem Proving: After 25 - Bledsoe, Loveland |
Developed at and hosted by The College of Information Sciences and Technology
© 2007-2010 The Pennsylvania State University
