COMS W4115
Programming Languages and Translators
Lecture 16: Types in Programming Languages
November 4, 2009

Lecture Outline

  1. Review
  2. Ways of thinking about types
  3. Type systems
  4. Typing in programming languages
  5. Type inference rules
  6. Type conversions

1. Review

2. Ways of Thinking about Types

  1. Denotational: a type is a set of values called a domain.
  2. Constructive: a type is either a primitive type (such as an integer or a character) or a composite type created by applying a type constructor (such as a structure or an array) to one or more simpler types.
  3. Abstraction-based: a type is an interface consisting of a set of operations with well-defined and mutually consistent semantics.

3. Type Systems

4. Typing in Programming Languages

5. Type Inference Rules

6. Type Conversions

7. Reading





aho@cs.columbia.edu