CSE 320: Programming Languages @ CSU, San Bernardino

Go back to home page

Types Ⅱ

Required Reading

  1. Chapter 15 of PLAI from the start of 15.3 to the end of 15.3.2.3 (stop at the start of 15.3.3). It is highly recommend to do the exercises in the book.

The focus in this reading should be on the following concepts:

  • What are type variables?
  • What is parametric polymorphism?
  • What is predicative polymorphism?
  • What is impredicative polymorphism?
  • What is relational parametricity?
  • What is type inference?
  • What is constraint generation and what is it for?
  • What is unification?
  • What does it mean for a program's types to be under-constrained and over-constrained?
  • What are the principal types of an expression?
  • What is let-polymorphism?

Optional Reading

The required reading is enough this week. The extra credit questions will be from the required reading.

Advanced Reading

  1. “Types and Programming Languages” by Benjamin Pierce. A really excellent book, and the best introductio to this subject.