Are you tired of null pointer exceptions, unintended side effects, SQL
injections, concurrency errors, 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 errors, and of many other important
Are you a software architect who wants to implement custom checks that
enforce correct usage and prevent errors? You need a framework that
supports you in creating a code checker.
This presentation is aimed at both audiences. Existing language type
systems are insufficiently expressive to capture important properties
and prevent related bugs. A pluggable type system can give a
compile-time guarantee of data properties. We will explain what
it is, how to use it, and how to create your own. You can use
existing pluggable type-checkers, or you can create a simple new one
in 2 minutes.
We will demo the Checker Framework, which enables you to create pluggable
type systems for Java.
Oracle is adding syntax to Java 8 to better support the Checker Framework,
but you can use it with any version of Java.
The Checker Framework provides 12 pluggable type systems that are
ready to use, including nullness, immutability, and
The tools are freely available at
The presentation will first develop a simple declarative type checker
that checks the consistency of method signature strings.
The presentation will then discuss the design and usage of more
The Checker Framework has found hundreds of bugs in over 3 million lines of
well-tested open source code, including from Oracle, Google, Apache, etc.
Even novices can quickly use or create a pluggable type system.
Prerequisite knowledge for this session: A basic understanding of Java programming is assumed. Attendants are encouraged to come with a laptop computer to participate in hands-on exercises, including analyzing participants’ own code.
Michael D. Ernst is an Associate Professor in the Computer Science and
Engineering department at the University of Washington. He has been honored
as a ``Java Rock Star’’ for a crowd-pleasing JavaOne presentation.
He is the
specification lead for the Type Annotations language extension (``JSR
308’’) that will be part of Java 8
- the first non-Sun-employee to
be the specification lead for a Java language change. This JSR was awarded
``most innovative JSR’’ by Sun. 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. Dr. Ernst was
previously a tenured professor at MIT, and before that a researcher at
Microsoft Research. More information is available at his homepage.
Werner Dietl is a post-doctoral research associate at the University
of Washington, where he is a member of the programming languages and
software engineering groups and collaborates with the architecture
group. His research goal is to help software engineers produce
high-quality software by enabling them to better understand and
structure their software. Previously, he was a research and teaching
assistant at the Chair of Programming Methodology, ETH Zurich.
More information is available at his homepage.
Comments on this page are now closed.
For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or email@example.com.
View a complete list of OSCON contacts