ABSTRACT
JML is an ambitious project in formal specification and verification, ongoing since 1997, that has aimed to bring value to Java programmers. Participants in the project are now undertaking a significant revision of the language itself (Cok, Leavens, Ulbrich) and accompanying that with educational materials (Cok, Meija, Leavens), documentation rewrites and tool upgrades (Cok). The current state of this work-in-progress is presented here in order to encourage wide-spread contribution and comment on the language revisions, its semantics, the educational tutorial, and related tools.
- Wolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Reiner Hähnle, Peter H. Schmitt, and Mattias Ulbrich. 2016. Deductive Software Verification – The KeY Book. In Lecture Notes in Computer Science.Google Scholar
- John Barnes. 2003. High Integrity Software: The SPARK Approach to Safety and Security. Addison Wesley, New York, NY.Google Scholar
- Mike Barnett, Robert DeLine, Manuel Fähndrich, K. Rustan M. Leino, and Wolfram Schulte. 2004. Verification of Object-Oriented Programs with Invariants. Journal of Object Technology 3, 6 (2004), 27–56. http://tinyurl.com/m2a8jGoogle ScholarCross Ref
- P. Baudin, P.Cuoq, J-C. Filliâtre, C. Marché, B. Monate, Y. Moy, and V. Prevosto. 2008ff. ACSL: ANSI C Specification Language. http://frama-c.com/download/acsl_1.4.pdf.Google Scholar
- David R. Cok. 2018. Reasoning about Functional Programming in Java and C++. In Companion Proceedings for the ISSTA/ECOOP 2018 Workshops (Amsterdam, Netherlands) (ISSTA ’18). Association for Computing Machinery, New York, NY, USA, 37–39. https://doi.org/10.1145/3236454.3236483Google ScholarDigital Library
- David R. Cok. 2021. JML and OpenJML for Java 16. In Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-like Programs (Virtual, Denmark) (FTfJP 2021). Association for Computing Machinery, New York, NY, USA, 65?67. https://doi.org/10.1145/3464971.3468417Google ScholarDigital Library
- David R. Cok. 2021. OpenJML web site. http://www.openjml.orgGoogle Scholar
- David R. Cok, Gary T. Leavens, and Mattias Ulbrich. 2022. Java Modeling Language (JML) Reference Manual, 2nd edition. In progress. https://www.openjml.org/documentation/JML_Reference_Manual.pdf.Google Scholar
- EPFL 2022. Stainless Verification Framework. EPFL, Lausanne, Switzerland. https://epfl-lara.github.io/stainless/intro.html.Google Scholar
- Frama-C 2007ff. Frama-C web site. https://frama-c.com.Google Scholar
- Key Project 1998ff. The KeY Project. https://www.key-project.orgGoogle Scholar
- Gary T. Leavens. 1997ff. JML web site. http://www.jmlspecs.org.Google Scholar
- Gary T. Leavens, Albert L. Baker, and Clyde Ruby. 2006. Preliminary Design of JML: A Behavioral Interface Specification Language for Java. Technical Report 98-06-rev29. Iowa State University, Department of Computer Science. ftp://ftp.cs.iastate.edu/pub/techreports/TR98-06/TR.pdf Also ACM SIGSOFT Software Engineering Notes, 31(3):1-38, March 2006..Google Scholar
- Gary T. Leavens, David R. Cok, and Amirfarhad Nilizadeh. 2022. Further Lessons from the JML Project. Accepted to appear, July 2022.Google Scholar
- K. Rustan M. Leino 2021. Dafny github site. https://github.com/dafny-lang/dafny. Accessed September 2021.Google Scholar
- K. Rustan M. Leino, Richard L. Ford, and David R. Cok. 2021. Dafny Reference Manual. https://github.com/dafny-lang/dafny/blob/master/docs/DafnyRef/out/DafnyRef.pdf.Google Scholar
Index Terms
- Documentation and Educational Materials for a 2nd Edition of the Java Modeling Language
Recommendations
JML and OpenJML for Java 16
FTfJP '21: Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-like ProgramsAs the Java language evolves, the Java Modeling Language (JML) and the OpenJML deductive verification tool must evolve with it. Changes in Java since Java 8 bring language and organizational changes which affect the semantics of JML and the ...
OpenJML: JML for Java 7 by extending OpenJDK
NFM'11: Proceedings of the Third international conference on NASA Formal methodsThe Java Modeling Language is a widely used specification language for Java. However, the tool support has not kept pace with advances in the Java language. This paper describes OpenJML, an implementation of JML tools built by extending the OpenJDK Java ...
Non-null references by default in the Java modeling language
Based on our experiences and those of our peers, we hypothesized that in Java code, the majority of declarations that are of reference types are meant to be non-null. Unfortunately, the Java Modeling Language (JML), like most interface specification and ...
Comments