ABSTRACT
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), that allows users to control the level of completeness of the tool. ESC4's improved performance should encourage greater use of static verification.
- Isabelle, 2008. Homepage at http://isabelle.in.tum.de.Google Scholar
- Metis theorem prover, 2008. Homepage at http://www.gilith.com/software/metis/.Google Scholar
- Proof General Eclipse, 2008. Homepage at http://proofgeneral.inf.ed.ac.uk/eclipse.Google Scholar
- Why: software verification platform, 2008. Homepage at http://why.lri.fr.Google Scholar
- Barnett, M., and Leino, K. R. M. Weakest-precondition of unstructured programs. In PASTE '05: The 6th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (New York, NY, 2005), ACM Press, pp. 82--87. Google ScholarDigital Library
- Barnett, M., Leino, K. R. M., and Schulte, W. The Spec# Programming System: An overview. In CASSIS 2004: International Workshop on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices (2004), pp. 49--69. Google ScholarDigital Library
- Böhme, S., Leino, R., and Wolff, B. HOL-Boogie --- An interactive prover for the Boogie program verifier. In Proceedings of the 21th International Conference on Theorem proving in Higher-Order Logics (TPHOLs 2008) (2008), LNCS 5170, Springer. Google ScholarDigital Library
- Chalin, P., James, P. R., and Karabotsos, G. An integrated verification environment for JML: Architecture and early results. In SAVCBS '07: Proceedings of the 2007 Workshop on Specification and Verification of Component-Based Systems (2007), pp. 47--53. Google ScholarDigital Library
- Chalin, P., James, P. R., and Karabotsos, G. JML4: Towards an industrial grade IVE for Java and next generation research platform for JML. In VSTTE '08: Proceedings of the 2008 Conference on Verified Systems: Theories, Tools, and Experiments (2008). Google ScholarDigital Library
- Cok, D. R., and Kiniry, J. R. ESC/Java2: Uniting ESC/Java and JML. In Construction and Analysis of Safe, Secure, and Interoperable Smart Devices (2005), vol. 3362/2005 of LNCS, Springer Berlin, pp. 108--128. Google ScholarDigital Library
- Filliâtre, J.-C. The WHY verification tool: Tutorial and reference manual, 2008. Available at http://why.lri.fr.Google Scholar
- Filliâtre, J.-C., Hubert, T., and Marché, C. The Caduceus verification tool for C programs: Tutorial and reference manual, 2008. Available at http://caduceus.lri.fr.Google Scholar
- Flanagan, C., Leino, K. R. M., Lillibridge, M., Nelson, G., Saxe, J. B., and Stata, R. Extended static checking for java. In PLDI '02: Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (New York, NY, 2002), ACM Press, pp. 234--245. Google ScholarDigital Library
- Karabotsos, G., Chalin, P., James, P. R., and Giannas, L. Total correctness of recursive functions using JML4FSPV. In SAVCBS '08: Proceedings of the 2008 Workshop on Specification and Verification of Component-Based Systems (2008).Google Scholar
- Kolman, B., and Busby, R. C. Discrete mathematical structures for computer science (2nd ed.). Prentice-Hall, Inc., Upper Saddle River, NJ, 1986. Google ScholarDigital Library
- Leavens, G. T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Müller, P., Kiniry, J., and Chalin, P. JML reference manual, 2008. Available at http://www.jmlspecs.org.Google Scholar
- Leino, K. R. M., and Monahan, R. Automatic verification of textbook programs that use comprehensions. In FTfJP '07: Proceedings of the 9th Workshop on Formal Techniques for Java-like Programs (2007).Google Scholar
- Nipkow, T., Paulson, L. C., and Wenzel, M. Isabelle/HOL---A Proof Assistant for Higher-Order Logic, vol. 2283 of LNCS. Springer, 2002. Google ScholarDigital Library
- Paulson, L. C., and Susanto, K. W. Source-level proof reconstruction for interactive theorem proving. In Theorem Proving in Higher Order Logics: TPHOLs 2007 (2007), K. Schneider and J. Brandt, Eds., LNCS 4732, Springer, pp. 232--245. Google ScholarDigital Library
- Wenzel, M. Isar - A generic interpretative approach to readable formal proof documents. In TPHOLs '99: Proceedings of the 12th International Conference on Theorem Proving in Higher Order Logics (London, UK, 1999), Springer-Verlag, pp. 167--184. Google ScholarDigital Library
Index Terms
- Extended static checking in JML4: benefits of multiple-prover support
Recommendations
Faster and More Complete Extended Static Checking for the Java Modeling Language
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 ...
ESC4: a modern caching ESC for Java
SAVCBS '09: Proceedings of the 8th international workshop on Specification and verification of component-based systemsJML4 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. ...
Improving the Quality of Web-based Enterprise Applications with Extended Static Checking: A Case Study
ESC/Java2 is a tool that statically detects errors in Java programs and that uses the Java Modeling Language (JML) as its annotation language. ESC/Java2 can modularly reason about the code of a Java Web-based Enterprise Application (WEA) and uncover ...
Comments