Computing That Serves

Adding Types to Untyped Languages


Thursday, November 4, 2010 - 11:00am


Matthias Felleisen
Trustee Professor
College of Computer Science
Northeastern University


Jay McCarthy

Over the last 15 years, we have experienced a programming language renaissance. Numerous scripting languages have become widely used in industrial and open-source projects. They have supplemented the existing mainstream languages---C++ and Java---and, in contexts such as systems administration and web programming, they have started to play a dominant role. While each scripting language comes with its own philosophy, their designers share an antipathy to types. As a result, these languages come without a static type system. Most script developers initially welcome this freedom, but soon discover that the lack of a type system deprives them of an essential maintenance tool.

My talk explains my team's approach to equip such languages with a type system. The goal of our work is to empower programmers so that they can gradually enrich scripts with types on a module-by-module basis as they perform maintenance work on the system. Naturally, we wish to ensure type soundness so that the type annotations are meaningful, and we wish to accommodate the programming idioms of the original language in order to keep the overhead of type enrichment low.


Matthias Felleisen is currently a Trustee Professor in the College of Computer and Information Science at Northeastern University in Boston, Massachusetts.  In the past, he has taught at Rice University after receiving his PhD from Indiana University.

Felleisen's interests include design of programming tools, web programming, and software contracts for software applications. Felleisen launched PLT and TeachScheme! to teach program-design principles to beginners and to explore the use of Scheme to produce large systems. As part of this effort, he authored How to Design Programs (MIT Press, 2001) with Findler, Flatt, and Krishnamurthi.

Felleisen gave the keynote address at the 2004 European Conference on Object-Oriented Programming and the 2001 Symposium on the Principles of Programming Languages.  In 2006 he was inducted as a Fellow of the Association for Computing Machinery. In 2009 he received the Karl V. Karlstrom Outstanding Educator Award from the ACM. In 2010 he received the SIGCSE Award for Outstanding Contribution to Computer Science Education from the ACM.