Preliminary Definition of Core JML

The JML specification language has evolved over a number of years and several variations/subsets have been formalized, mainly in the context of prototype systems for runtime and static verification. This document records the preliminary definition of basic semantic concepts for a core fragment of JML. It is intended to facilitate investigation of new features and improvement in interoperability between tools. The formalization is based on a denotational semantics and has been encoded in the PVS theorem prover. This material is based upon work supported by the National Science Foundation under grants CCF-0429894, CCF-0429567, and CNS-0627338. Preliminary Definition of Core JML Gary T. Leavens David A. Naumann Stan Rosenberg

[1]  K. Rustan M. Leino,et al.  Data abstraction and information hiding , 2002, TOPL.

[2]  Nick Benton,et al.  Simple relational correctness proofs for static analyses and program transformations , 2004, POPL.

[3]  Jeannette M. Wing A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS , 1983 .

[4]  K. Rustan M. Leino,et al.  Object Invariants in Dynamic Contexts , 2004, ECOOP.

[5]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[6]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[7]  Gary T. Leavens,et al.  JML's Rich, Inherited Specifications for Behavioral Subtypes , 2006, ICFEM.

[8]  Anindya Banerjee,et al.  Ownership confinement ensures representation independence for object-oriented programs , 2002, JACM.

[9]  Alan Wills Specification in Fresco , 1992, Object Orientation in Z.

[10]  Towards imperative modules: reasoning about invariants and sharing of mutable state , 2004, Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004..

[11]  Hongseok Yang,et al.  Relational separation logic , 2007, Theor. Comput. Sci..

[12]  David A. Naumann Verifying a Secure Information Flow Analyzer , 2005, TPHOLs.

[13]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[14]  Gary T. Leavens,et al.  Behavioral Subtyping is Equivalent to Modular Reasoning for Object-oriented Programs , 2006 .

[15]  Peter Van Roy,et al.  Concepts, Techniques, and Models of Computer Programming , 2004 .

[16]  Frank S. de Boer,et al.  Proving Total Correctness of Recursive Procedures , 1990, Inf. Comput..

[17]  Anindya Banerjee,et al.  Representation independence, confinement and access control [extended abstract] , 2002, POPL '02.

[18]  K. Rustan M. Leino,et al.  Verification of Object-Oriented Programs with Invariants , 2003, J. Object Technol..

[19]  Gary T. Leavens,et al.  Forcing behavioral subtyping through specification inheritance , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[20]  Frank S. de Boer,et al.  A proof outline logic for object-oriented programming , 2005, Theor. Comput. Sci..

[21]  T LeavensGary Modular Specification and Verification of Object-Oriented Programs , 1991 .

[22]  Amr Sabry,et al.  Reasoning about programs in continuation-passing style , 1992, LFP '92.

[23]  Gary T. Leavens,et al.  Modular invariants for layered object structures , 2006, Sci. Comput. Program..