15-312 Foundations of Programming Languages
Lecture 11: Parametric Polymorphism

After tying together static and dynamic semantics in the form of the type preservation and progress theorems, we have spent a few lectures enriching our basic computational mechanisms by introducing exceptions and continuations. In the next few lectures we return to the basic questions behind types and investigate extensions to the type system that are, to a large degree, independent of the underlying computational mechanisms.

The first of these will be polymorphism or, more specifically, parametric polymorphism. This allows a given expression to work at more than one type---in fact, at an infinite family of related types. We discuss in particular the effect this extension has (or doesn't have) on the run-time behavior of programs, which leads to a large debate regarding static vs. dynamic type systems.

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning