15:30 - 16:30
Null pointer exceptions are the bane of programmers, and have been called the "billion dollar mistake". They happen even if you think hard about your code and test it thoroughly. However, you don’t have to be a victim any longer! Come learn about a simple, yet powerful type system that prevents null pointer exceptions at compile time.
This session will explain the causes of null pointer exceptions, including their relationship to issues such as object initialization, map keys, method contracts, Java 8’s Optional class, and dynamic checks. It will show how programmers’ informal reasoning can be automated into a formal proof, in a way that is easier to use than Java generics or the Optional class.
You will learn how to use pluggable type-checking, and in particular a freely-available tool called the Nullness Checker (CheckerFramework.org) that integrates with your development environment and toolchain. It has found hundreds of bugs in millions of lines of well-tested code, and it is easy enough for novices such as beginning CS students.
Bring your tricky nullness issues and see how they can be solved!