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