11:45 - 12:45
Many developers view type theory as abstruse and confusing. It’s not! This talk will show you the four simple components of a type system: the types, their subtyping relationships, how to give a type to each expression in your program, and what operations are illegal. If you specify these four things, you have designed a type system!
Starting from nothing, in less than an hour we will create a full-fledged type-checker that detects real errors in real programs. We will implement our type-checker for Java, and it will handle all Java constructs, such as generics, subtyping, and lambdas. Our type system will detect errors in the use of the optional type that the Java compiler permits and that would go undetected until run time. You will also be ready to use the dozens of available pluggable type-systems that others have already implemented and that are in use at companies such as Amazon, Google, and Uber to improve code quality. The tool is freely available at checkerframework.org.