15-312 Foundations of Programming Languages
Lecture 17: Type Checking
At the beginning of this class we were quite careful to guarantee that
every well-typed expression has a unique type. We relaxed our vigilance
a bit when we came to constructs such as universal types, existential
types, and recursive types, essentially because the question of unique
typing became less obvious. In this lecture we first consider how to
systematically design the language so that every expression has a unique
type, and how this statement has to be modified when we consider
subtyping. This kind of language will turn out to be impractical, so we
consider a more relaxed notion of type checking, which is nonetheless
quite a bit removed from the type inference offered by ML (which
is left for another lecture).
[ Home
| Schedule
| Assignments
| Software
| Resources
]
fp@cs
Frank Pfenning
|