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 bugs.
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 concurrency type-checkers. The tools are freely available at http://types.cs.washington.edu/checker-framework.
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 advanced checkers.
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 firstname.lastname@example.org.
View a complete list of OSCON contacts