Modern Jass is the latest development in the series of Jass tools. Modern Jass uses Java 5 annotations for its input language, while many language design descisions were taken from Java Modeling Language (JML) for assertions.
Jass 3 will no longer use it's own input language, but will use the Java Modeling Language (JML) for assertions.
Your help is welcome! If you like to help, please go to to the download section, get the latest Jass 3 snapshot, try and report bugs or send patches back to us. Thanks in advance for any help!
1 Intro
Many people have criticized the lack of assertions in Java. Assertion support was voted second on the list 'Request For Enhancements'. This bug is closed now and the (beta) release 1.4 of Java 2 has assertion support. However, the assertion support of 1.4 is very primitive, no pre/post conditions or invariants.
So other people requested `Support for Design by Contract Beyond a Simple Assertion Mechanism'. It is currently the voted 9th on the list 'Request For Enhancements'. Jass (acronym: Java with assertions, spoken: jazz - like the music) is a precompiler that supports these extended assertions for Java. The concepts of design by contract from Bertrand Meyer have been transferred to Java and extended with new features. So even if you switched to the Java 1.4 version, Jass can still do a lot for you.
The Jass precompiler is written in 100% pure Java and can be downloaded from this pages. It is an improvement of the language extension JaWA designed by Dieter Meemken.
Jass supports the 'design by contract' with the following features:
- Pre- and postconditions for methods
- Invariants for classes
- Invariants and variants for loops
- Check statements
- Forall and exists expressions
- Rescue and retry statements
- Inheritance of assertions (refinement)
- JavaDoc support (since Jass 2.0.6)
- Comments in assertions
- Jass 2.x provides the new Feature of Trace-Assertions
- Jass comes with an Ant-Task
2 Development
Jass was developed by Dipl.-Inform. Detlef Bartetzko at his mastersthesis. The concept of Trace Assertions was added by Dipl.-Infom. Michael Plath as part of his mastersthesis. The development was supported by Dr. Clemens Fischer. The concept of Trace-Assertions was developed by Dr.Clemens Fischer at his PhD thesis.
Jass is a product of the Correct System Design Group .
3 Information & Contact
Please send questions comments and bugs to jass@informatik.uni-oldenburg.de.
3.1 Jass Mailing List
If you want to be informed about jass, please subscribe to the jass mailing-list. Send a mail to lists@theoretica.informatik.uni-oldenburg.de with the subject `subscribe jass-list'; to unsubscribe use the subject `unsubscribe jass-list'.
Messages to the list must be send to jass-list@theoretica.informatik.uni-oldenburg.de. Only subscribers of the list will be able to post messages. Therefore this list usually has low traffic (no SPAM since we switched to allow subscribers only)!