For each paper, you should read the paper, mark it up with comments, and then at the end of the paper, write three sentences: (1) one sentence that summarizes the paper (2) one sentence that summarizes the main limitation of the paper (3) one sentence that states possible directions for future work. You need to hand in your marked-up paper in class on the day the reading is due.

10/1: Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language

10/8: Trace-based Just-in-Time Type Specialization for Dynamic Languages

10/15: Superoptimizer -- A Look at the Smallest Program (optional: read the beginning of this post for a brief history of superoptimizers)

10/22: Stochastic Superoptimization

11/5: Classic Bug Reports , including some compiler ones. Don't print anything out! Just write down your insights on a piece of paper: what did you learn by reading these?

Optional: Worse is better (also, browse through here for a complete history and follow-ups)

11/12: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code

Optional: Pointer Analysis: Haven’t We Solved This Problem Yet?

11/19: Provably Correct Peephole Optimizations with Alive