The VeriJava Programming System: An Overview

Jianjun Zhao,Cheng Zhang,Sibo Zhang,Jiaming Zhang
2006-01-01
Abstract:VeriJava is a novel programming system, which extends Java lan- guage, with just a few new language constructs, to support adding contracts to Java. VeriJava consists of an object-oriented programming language called Veri- Java, a compiler for compiling VeriJava programs to Java bytecode, and a static verifier for assuring that the VeriJava code is consistent with its specifications. This paper discusses the goal and the overall programming approach of VeriJava. The paper also gives examples of VeriJava programs. On one hand, VeriJava pro- vides a way with assertions (pre- and postconditions, and class invariants), to support runtime checking such as debugging and testing. On the other hand, Ver- iJava also offers the possibility of automatic compile-time verifications such as checking the code of a method against its specification, checking that the specifi- cation of a subclass is compatible with the specification of its superclass.
What problem does this paper attempt to address?