Introduction to algorithms
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A Discipline of Programming
Weakest-precondition of unstructured programs
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Extended static checking in JML4: benefits of multiple-prover support
Proceedings of the 2009 ACM symposium on Applied Computing
Faster and More Complete Extended Static Checking for the Java Modeling Language
Journal of Automated Reasoning
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
A lightweight technique for distributed and incremental program verification
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Hi-index | 0.00 |
JML4 is an Eclipse-based Integrated Verification Environment for the Java Modeling Language (JML) that supports several forms of verification, including Runtime Assertion Checking, Extended Static Checking (ESC), and Full Static Program Verification. The first of these developed was ESC4, JML4's ESC component. This paper presents its architecture. ESC4's verification-condition (VC) generation is based on the approach described by Barnett and Leino, but we provide an optimization for loops. A configurable Prover Coordinator allows the easy implementation of various proof strategies. Caching discharged VCs helps reduce the number of calls to the provers when reverifying code. Caches are not commonly used because of their fragility w.r.t. source code changes, but we propose a simple way to make them more resilient.