19th ECOOP       

Conference Programme 

Programme Diary
 Design by Contract and Extended Static Checking for Java with JML and ESC/Java2
Organizers: Joe Kiniry, Erik Poll, and David Cok

  ABSTRACT:
Full Description

Abstract:

This tutorial introduces ESC/Java2 and the JML annotation language.
The [4]Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the Design by Contract approach of Eiffel and the model-based specification approach of the Larch family of interface specification languages, with some elements of the refinement calculus. JML has a Java-based syntax and semantics, thus is easy to learn for Java programmers.

[5]ESC/Java2 is a tool that checks that a program is consistent with its annotation. It also detects, at compile time, common programming errors that ordinarily are not detected until run time, and sometimes not even then; for example, null dereference errors, array bounds errors, type cast errors, and race conditions. While ESC/Java uses a theorem prover, it feels to a programmer more like a powerful type checker.
Because JML is familiar to Java programmers, and ESC/Java2 just feels like a typechecker, we believe that they are an excellent way to gently introduce programmers to formal methods.

 

     

  Workshop Schedule

  Tutorials

  Schedule

  Conference at a Glance

  Technical Paper Schedule



<< BACK | LIST | NEXT >>

  © 2004 European Confernce on Object-Orientated Programming, ECOOP 2005
Download PDF Print Version