Houdini, an Annotation Assistant for ESC/Java
نویسندگان
چکیده
A static program checker that performs modular checking can check one program module for errors without needing to analyze the entire program. Modular checking requires that each module be accompanied by annotations that specify the module. To help reduce the cost of writing specifications, this paper presents Houdini, an annotation assistant for the modular checker ESC/Java. To infer suitable ESC/Java annotations for a given program, Houdini generates a large number of candidate annotations and uses ESC/Java to verify or refute each of these annotations. The paper describes the design, implementation, and preliminary evaluation of Houdini.
منابع مشابه
A System and Language for Building System-Specific Static Analyses
There have been several recent techniques for detecting program bugs statically. PREfix performs symbolic evaluation of interprocedural execution paths, while looking for errors such as uninitialized memory, buffer overflows and memory leaks. While it is very comprehensive, it allows only for fixed types of analyses, and thus finds a fixed subset of the bugs. ESC/Java uses programmer-written an...
متن کاملEfficient Annotation Inference for an Extended Static Checker
(Submission to SAS’01.) A modular static program checker relies on annotations specifying module interfaces. Writing annotations is a burden to the programmer. The Houdini algorithm is a whole-program analysis that reduces this burden by inferring many annotations automatically. The basic Houdini algorithm infers useful annotations for an extended static checker, but is very slow. This paper de...
متن کاملExplainHoudini: Making Houdini Inference Transparent
Houdini is a simple yet scalable technique for annotation inference for modular contract checking. The input to Houdini is a set of candidate annotations, and the output is a consistent subset of these candidates. Since this technique is most useful as an annotation assistant for user-guided refinement of annotations, understanding the reason for the removal of annotations is crucial for a user...
متن کاملESC / Java 2 : Uniting ESC / Java and JML Progress and issues in building and using ESC / Java 2 , including a
The ESC/Java tool was a lauded advance in effective static checking of realistic Java programs, but has become out-of-date with respect to Java and the Java Modeling Language (JML). The ESC/Java2 project, whose progress is described in this paper, builds on the final release of ESC/Java from DEC/SRC in several ways. It parses all of JML, thus can be used with the growing body of JML-annotated J...
متن کاملComparison between CPBPV, ESC/Java, CBMC, Blast, EUREKA and Why for Bounded Program Verification
– ESC/Java (http://kind.ucd.ie/products/opensource/ESCJava2/): Extended Static Checker for Java is a programming tool that attempts to find common run-time errors in JML-annotated Java programs by static analysis of the program code and its formal annotations. – CBMC (http://www.cprover.org/cbmc/): is a Bounded Model Checker for ANSI-C and C++ programs. It allows verifying array bounds (buffer ...
متن کامل