CSE 231 - Advanced Compilers
Welcome to CSE 231! All class members are asked to use this web page
to get the latest information.
the SCHEDULE to see when your paper is scheduled! All links now are active.
Also check out information on how what to prepare for the discussion you are leading, and how to write paper reviews here.
This course focuses on the analysis and optimization
phases of compilers.
Lecture Times and Location
Monday and Thursday at 4:15 - 5:35 pm, in APM 4882
The first half of the class will cover advanced compiling from the
recommended text, Advanced Compiler Design and
Implementation} by Steven S. Muchnick, 1997, Morgan Kaufmann
with lectures mainly from chapters 7, 8, 9, 11,
12, 13, and 14. ( You needn't buy the book.)
In the second half, we will be discussing papers which we have all
read in advance of the class. The papers will be taken from the
``classics'' as well as some recent papers taken from selected topics,
such as empirical-driven optimization guidance; performance models for
optimization guidance; machine-learning approaches to optimization;
meta-compilation; and runtime optimization. Class members will take
turns leading discussions. Each week, when not leading a class
discussion, you will in addition write a critical review of one of the
papers discussed that week. In addition, students will do (small)
projects of their own choosing.
Class Requirements and Grading
Homeworks covering the text (20 %)
Class participation and leading discussions on papers (20%)
Weekly critical reviews of papers (20%)
Project of your choice (40%)
Your project can take one of three forms:
A survey of major research results in a particular area related
to the course. You will need to identify the area, propose a set of
8-10 papers, and write a 6-10 page report.
A proposal for new research related to the course. You will
need to identify the area, propose a set of 4-5 papers as background,
and write a 6-10 page report describing and justifying the problem or
question that you are proposing, and outlining a method for
approaching the problem.
An implementation or experiments extending the work of a chosen
paper. You will need to identify the paper, propose a set of
experiments or implementation, and write a 4-5 page report describing
your problem, your implementation, and the results.