CS 343

Advanced Topics in Compilers - Spring 2012

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.

Previous offerings:

Logistics

Class

Instructor

TA

Syllabus

Static Bugfinding

April 3 (Tue)

April 5 (Thu)

Guest Lecture (Prof. Philip Levis)

April 10 (Tue)

Dynamic Analysis

April 12 (Thu)

April 17 (Tue)

April 19 (Thu)

Optimizing JITs

April 24 (Tue)

April 26 (Thu)

May 1 (Tue)

May 3 (Thu) - Midterm Exam

May 8 (Tue)

Dynamic Code Generation

May 10 (Thu)

Cool Hacks

May 15 (Tue)

May 17 (Thu) - Informal project progress presentations (you can just doodle on whiteboard)

May 22 (Tue) - Informal project progress presentations (continued)

May 24 (Thu)

May 29 (Tue)

May 31 (Thu)

June 11 (Mon) - Final Project Presentations - 5:30pm to 8:30pm in Gates 104