15-312 Foundations of Programming Languages
Lecture 18: Records
In this lecture we introduce records as an extension of products.
We consider properties of typing and operational semantics, following
by an investigation of subtyping. Records permit various forms of
subtyping, which can have profound consequences for the implementation.
This include depth subtyping, width subtyping, and exchange subtyping.
With a basic understanding of records we are ready to discuss
some features of object-oriented languages and we develop a succession
of increasingly complex models of objects.