Skip to Main Content
Summary form only given. This tutorial surveys the state of the art in type systems for programming languages, focusing on the achievements and changes in emphasis during the past decade. The first part of the talk considers the trajectory of work on object types, one of the major hot topics of the early and mid-'90s. Following some fundamental conceptual breakthroughs, the focus of attention in this area has shifted from foundational research to applications to the development and analysis of real-world language designs. The next part outlines recent progress on a number of "bread and butter" type systems topics and their applications in new programming languages: subtyping, polymorphism, type inference, effect systems, dependent types, and type systems for modular programming. The final section introduces some newer topics that have emerged (or gained unexpected prominence) in the past few years, including type systems for concurrent and distributed languages, high-level type systems for low-level languages such as assembly and C, substructural type systems based on linear logic and its relatives, modal type systems, the burgeoning area of language-based security, and native language support for statistically typed XML processing.