CSE 238 - Advanced Topics in Static and Dynamic Compilation
Fall 2002
Welcome to CSE 238! All class members are asked to use this web page
to get the latest information.
New:
1. You can find out about some work on varying cache line size
here.(courtesy of Michael Mc Cracken. Note Andrew Chien is involved!)
2. You can read more about Software Obfuscation
here.
Course Description
This course focuses on both classic and leading edge topics relating
to static and dynamic compilers. For fall quarter, the topics are
compiling for performance and parallelism, including multithreading,
dynamic optimization, and automatic compiler generation for special
purpose languages and architectures.
Lecture Times and Location
- Tuesday & Thursday 11 am to 12:20 pm in Center Hall 224C
Class Structure
There will be no exams in the class. The first part of the class (3
weeks) will cover fundamentals of compiling for high performance, with
lectures from the new text book "Optimizing Compilers for Modern
Architectures" by Allen and Kennedy. (You needn't buy the book.) In
the rest of the class (7 weeks) we will be discussing papers which we
have all read in advance of the class. Class members will take turns
leading discussions. Each week, 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
-
Class participation and leading discussions on papers (30%)
-
Weekly critical reviews of papers (30%)
-
Project of your choice (40%)
Projects
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.
Course Text