Java Non-Null Types Language Extension

Extends the Java 1.4 frontend

Non-null types is a type-based approach to detect possible null pointer violations in code statically at compile time. Fähndrich and Leino showed how an object-oriented language such as Java or C# could be extended with non-null types. We have extended a Java compiler, in a modular way, to include non-null types. This is an example of how a large JastAdd project can be extended in an easy and declarative way. We have also implemented an inference algorithm to retrofit legacy code to include non-null types.

This project builds on the Java 1.4 Frontend. The front-end and the JastAdd system are bundled with the non-null source archives. The project uses Apache Ant as build system.

A draft presenting the implementation is available in:
Modular implementation of non-null types for Java, Torbjörn Ekman and Görel Hedin, Submitted for publication, Available in pdf

The work by Fähndrich and Leino is available in:
Declaring and Checking Non-Null Types in an Object-Oriented Language, Manuel Fähndrich and Rustan Leino, Proceedings of the 18th ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Anaheim, CA, October 2003, Available in pdf

Non-Null Types