CS 343

Advanced Topics in Compilers - Spring 2011

Course Description

Compiler research for a long time was moribund, stuck on narrow topics such as register allocation and instruction scheduling. In contrast, the last decade has seen an explosion of interesting work using compilers to accomplish something cool. This class will cover a selection of such research papers, ranging across static and dynamic bug finding, binary analysis, reverse engineering, programming via sketching, and other topics that seem worth knowing. The class is discussion oriented. You will read (typically) one paper before each class thoroughly, which will be dissected during the class period. By the end of the course you will be able to read a technical paper and extract its essence as well as noticing when the authors have sinned by omission in their experiments or wording. A good paper along these lines is here.

Papers will be somewhat bimodal. We will often start with an older one to set the stage (since they are simpler), and then a later one so you can see what the current thinking is. To see the papers that were covered last quarter, you can take a look at last year's website.

In addition, students will form groups of 1-3 and do a final project of their design which they will present. There may also be programming projects assigned to follow corresponding papers read.

Logistics

Class

Instructor

TA

Syllabus

Static Bugfinding

March 29 (Tue)

March 31 (Thu)

Dynamic Analysis

April 5 (Tue)

April 7 (Thu)

April 12 (Tue)

April 14 (Thu)

Optimizing JITs

April 19 (Tue)

April 21 (Thu)

Binary Translation

April 26 (Tue)

Midterm! April 28th

Dynamic Code Generation

May 3 (Tue)

Cool Hacks

May 5th (Thu)

May 10 (Tue)

Dynamic Bugfinding

May 12 (Thu)

May 17 (Tue)

Sandboxing

May 19 (Thu)

Memory Management in C

May 24 (Tue)

May 26 (Thu)