Next Meetup

Implement your own type system in 1 hour
• What we'll do Don't let programming language designers have all the fun: you can design your own type system that is better than the current one. 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. We will do exactly that during the course of the presentation. Starting from nothing, in 1 hour we will create a full-fledged type-checker that detects real errors in real programs. For concreteness, we will implement our type-checker for the Java language, and it will handle all Java constructs, such as generics, subtyping, and lambdas. Our type system will be better than the built-in Java type system: it will detect errors in the use of the Optional type that the Java compiler permits and that would go undetected until run time. Although our example will use Java, the ideas translate to other languages. Even if you don't want to implement your own type system, you will come away with a better understanding of type systems and of compile-time verification in general. And, you will 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. SPEAKER: Michael Ernst 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. Ernst is an ACM Fellow (2014) and received the inaugural John Backus Award (2009) and the NSF CAREER Award (2002). His research has received an ISSTA Impact Award Award (2018), an ICSE Most Influential Paper Award (2017), an ACM SIGSOFT Impact Paper Award (2013), 8 ACM Distinguished Paper Awards (FSE 2014, ISSTA 2014, ESEC/FSE 2011, ISSTA 2009, ESEC/FSE 2007, ICSE 2007, ICSE 2004, ESEC/FSE 2003), an ECOOP 2011 Best Paper Award, honorable mention in the 2000 ACM doctoral dissertation competition, and other honors. In 2013, Microsoft Academic Search ranked Ernst #2 in the world, in software engineering research contributions over the past 10 years. In 2016, AMiner ranked Ernst #3 among all software engineering researchers ever. Dr. Ernst was previously a tenured professor at MIT, and before that a researcher at Microsoft Research. More information is available at his homepage: • What to bring • Important to know

K&L Gates building

925 4th Ave, 4th Floor · Seattle, WA

1 comment

    Past Meetups (36)

    What we're about

    Public Group

    The Seattle Java User's group has been meeting since the mid-90s in the Seattle and Eastside area. It is geared towards topics related to the Java Virtual Machine and languages which run on it such as Java, etc. Go to for more details.

    Members (1,262)

    Photos (64)

    Find us also at