Advanced Programming Languages
CIS 670 Fall 2002

Resources and References

The papers and books listed on this page are places to look for more information about the lecture topics. Almost all of them are available online. Skimming through them may also help you find an interesting topic for your semester project. I will be updating this list throughout the semester.

Papers

  1. Introduction

  2. Polymorphic Lambda Calculus

  3. Encoding of inductive types

  4. Existential Types

  5. Termination/Strong Normalization of System F
  6. Curry-Howard Isomorphism/Parametricity
  7. Higher-order types

  8. Type inference

  9. Pitfalls with references

  10. Dynamic types

  11. Compiling Parametric Polymorphism

  12. More on intensional polymorphism

  13. Haskell Type Classes

  14. Polytypic programming & Generic Haskell


  15. Dependent Types
  16. Overloading/Multi-method dispatch
  17. Named vs. Structural Types

  18. Generic Types in Java

  19. Aspect-Oriented Programming

Books and Lecture Notes

Types and Programming Languages (2001)
Benjamin Pierce
MIT Press

Programming Languages: Theory and Practice (Book Draft, 2002)
Robert Harper

Lectures on the Curry-Howard Isomorphism (1998)
M H Sørensen and P Urzyczyn.

The Lambda Calculus: Its Syntax and Semantics (1984)
Henk Barendregt

Type Theory and Functional Programming (1991)
Simon Thompson

LaTeX

  1. proof.sty - inference rules
  2. code.sty - verbatim-like environment for writing code mixed with math symbols
  3. General tricks


Home | Course Description | Assignments and Grading | Schedule | Last Modified: 09.12.02