Journal of Automated Reasoning

, 44:145

Faster and More Complete Extended Static Checking for the Java Modeling Language

Authors

    • Dependable Software Research Group, Department of Computer Science and Software EngineeringConcordia University
  • Patrice Chalin
    • Dependable Software Research Group, Department of Computer Science and Software EngineeringConcordia University
Article

DOI: 10.1007/s10817-009-9134-9

Cite this article as:
James, P.R. & Chalin, P. J Autom Reasoning (2010) 44: 145. doi:10.1007/s10817-009-9134-9

Abstract

Extended Static Checking (ESC) is a fully automated formal verification technique. Verification in ESC is achieved by translating programs and their specifications into verification conditions (VCs). Proof of a VC establishes the correctness of the program. The implementations of many seemingly simple algorithms are beyond the ability of traditional Extended Static Checking (ESC) tools to verify. Not being able to verify toy examples is often enough to turn users off of the idea of using formal methods. ESC4, the ESC component of the JML4 project, is able to verify many more kinds of methods in part because of its use of novel techniques which apply multiple theorem provers. In particular, we present Offline User-Assisted ESC (OUA-ESC), a new form of verification that lies between ESC and Full Static Program Verification (FSPV). ESC is generally quite efficient, as far as verification tools go, but it is still orders of magnitude slower than simple compilation. As can be imagined, proving VCs is computationally expensive: While small classes can be verified in seconds, verifying larger programs of 50 KLOC can take hours. To help address the added cost of using multiple provers and this lack of scalability, we present the multi-threaded version of ESC4 and its distributed prover back-end.

Keywords

Extended static checkingStatic verificationTheorem proversJava Modeling LanguageJML4ESCESC4

Copyright information

© Springer Science+Business Media B.V. 2009