CS 640 -- Advanced Compilers
Dr. Elizabeth White
office: Engineering Building, Rm. 5315
Office Hours: Tuesday 10 - 12
Data-flow and control-flow analysis
Global Optimization (inter- and intra-procedural)
- Instruction Scheduling
Generation and Optimization for Parallel, OO and Functional Programming
Environments (vectorization, loop transforamtion, instruction scheduling)
You will need one of the following textbooks:
There will also be papers (to be determined later)
- Engineering a Compiler, Cooper & Torczon
"Compilers: Principles, Techniques, and Tools", A. Aho, M. Lam, R. Sethi and J.
Ullman (also known as the "dragon" book), 2007. NOTE: the earlier edition is not sufficient
Some of the material from this course is also covered in:
The last two texts are difficult reading, but are state of the art on this subject.
- Modern Compiler Implementation in Java, A. Appel, Cambridge Press.
"High Performance Compiling for Parallel Computing", M. Wolfe Focuses on issues for compiling to high performance architectures.
"Advanced Compiler Design and Implementation" S. Muchnick, Morgan Kaufmann
- "Optimizing Compilers for Modern Architectures", R. Allen and K. Kennedy, Morgan Kauffman Publishers, 2002.
You are expected to abide by the honor code for work done in this class.
All work is to be your individual effort unless I tell you otherwise.
Current information about this course will be kept on a CS640 web page:
- Exams: Midterm Exam (20%), Final Exam (20%)
Both exams (midterm and final) will have an in-class portion and
a take-home portion. The honor code will be in effect for both portions
of the exam, including the
take home portion
- Homeworks (20%)
Homeworks may be done in groups or individually.
- Projects (40%)
There will be at least three programming assignments, all requiring you
to implement algorithms we are studying. These projects may assume standard front end skills you would acquire in a class like CS 540.
Programming assignments are to be individual efforts, unless I specify otherwise.