CS 502: Compiling and Programming Systems

Fall 2008

The course syllabus can be found here.


Lectures

Lecture 1. Introduction and Course Overview.
Lecture 2. Mini-ML.
Lecture 3. Pattern-Match Compilation.
Lecture 4. Type Inference.
Lecture 5. Continuation-Passing Style.
Lecture 6. More on Continuation-Passing Style.
Lecture 7. Closure Representations.
Lecture 8. Introduction to Dataflow Analysis.
Lecture 9. Iterative Dataflow Analysis.
Lecture 10. Foundations of Dataflow Analysis.
Lecture 11. Introduction to Pointer and Shape Analysis..
Lecture 12. Shape Analysis Details.
Lecture 13. Interprocedural Analysis.
Lecture 14. Register Allocation.
Lecture 15. Low-Level Optimizations.
Lecture 16. Course Review.

Reading List

There is no required textbook for the class. The syllabus handout lists a number of recommended texts. In addition, there are a number of papers that we will discuss (mostly indirectly) during the course. This reading list will be updated throughout the semester.

Assignments

Mini-ML Interpreter. Due: midnight, September 9, 2008.
       Turnin Instructions: turnin -c cs502 -p proj1 .

Mini-ML Type Inference. Due: midnight, September 25, 2008.
       Modified test cases can be found here
       Turnin Instructions: turnin -c cs502 -p proj2 .

CPS Translation. Due: midnight, October 15, 2008.
       Turnin Instructions: turnin -c cs502 -p proj3 .

Static Environments. Due: midnight, October 28, 2008.
       Turnin Instructions: turnin -c cs502 -p proj4 .

CPS Simplification. Due: midnight, November 19, 2008.
      A slightly modified interpreter for the simplified CPS intermediate representation can be found here
       Turnin Instructions: turnin -c cs502 -p proj5 .

Live Variable Analysis. Due: midnight, December 11, 2008.
       Turnin Instructions: turnin -c cs502 -p proj6 .

Miscellaneous

A style guide for SML can be found here.
An overview of Mini-ML can be found here.
A sample midterm can be found here. A sample solution can be found here.

Announcements

The midterm exam will be held on Wednesday, Oct. 8, 2008 from 8pm to 9:30pm in BRNG 1268. The solution paper can be found here.

Web Blog