Refreshments 3:50 p.m.
Abstract
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.