21 Apr 2009 : Detecting and preventing bugs with pluggable type-checking 
Speaker: Michael ErnstType-checking helps to detect and prevent errors. However,
Java's built-in types are incapable of expressing important
information, such as whether a variable may be null, whether a
value is intended to be side-effected, or whether a String is
interned. As a result, a type-correct program can suffer from
null pointer exceptions, undesired mutations, improper equality
testing, and many other types of problems.
Pluggable types (User-defined extensions to the type system) can
detect such errors, prevent them, or verify their absence. This
talk presents the Checker Framework, a practical pluggable type
system for Java. The framework is compatible with all versions
of Java; furthermore, Java 7 will contain syntactic support for
it, in the form of type annotations.
The Checker Framework benefits programmers by improving
documentation and eliminating bugs. It is intuitive to use and
requires few annotations, so the burden on programmers is small.
The Checker Framework also makes it easy to create new, custom
checkers that verify important properties specific to your own
code.
The Checker Framework is publicly available at:
http://groups.csail.mit.edu/pag/jsr308/Note that a video of this presentation is available at:
http://www.vimeo.com/4368251