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 (http://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! Michael D. Ernst is a Professor in the Computer Science & Engineering department at the University of Washington. 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, 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. More information is available at his homepage: http://homes.cs.washington.edu/~mernst/. Werner Dietl is an assistant professor at the University of Waterloo in Canada. His goal is to provide developers with sound help in eliminating defects. He combines theoretical results with practical tools so developers can create high-quality, trustworthy software and reduce the enormous impact of software defects.
Get notified about new features and conference additions.