Detecting and preventing bugs with pluggable type-checking

*

Excerpt

Are you tired of null pointer exceptions, unintended side effects, mistaken equality tests, security breaches, and other run-time errors that appear during testing or in the field?

Description

Are you tired of null pointer exceptions, unintended side effects, mistaken equality tests, and other run-time errors that appear during testing or in the field? A pluggable type system can guarantee the absence of these types of errors, and many more. This talk describes a set of pluggable type checkers that operate as annotation processors for javac. The type checkers are easy to use (for example, the syntax is much less verbose than generics) and have found many errors in real programs. Java 7 will contain syntactic support for type annotations, but in the meanwhile your code remains backward-compatible with all versions of Java. The talk also describes the Checker Framework, which enables a programmer to write an annotation processors that checks custom properties of your code and prevents even more bugs. The talk will demonstrate the tools in action. The type-checkers and the Checker Framework are publicly available at http://groups.csail.mit.edu/pag/jsr308/

Speaking experience

Speaker

  • Mernst headshot

    Michael Ernst

    University of Washington

    Biography

    Michael Ernst is an Associate Professor in the Computer Science and Engineering department at the University of Washington.

    Michael Ernst’s research aims to make software more reliable, more secure, and easier (and more fun!) to produce. His primary technical interests are in software engineering and related areas, including programming languages, type theory, security, program analysis, bug prediction, testing, and verification. Ernst’s research combines strong theoretical foundations with realistic experimentation, with an eye to changing the way that software developers work.