This course is a continuation of CS780 covering the theory and practice of compiler design. Topics emphasized are semantic analysis, code generation, and optimization.
The course load includes two programming assignments based on the COOL compiler project worth 70 points, and an examination worth 30 points. Alternatively, depending on the number of registered students, a term paper with in-class presentation may replace the exams.
The letter grades will be assigned using the following scale: A[90-100], B[80-90), C[70-80), D[60-70), and F[0-60). However, I reserve the right to adjust the scale somewhat to utilize the gaps in the distribution. Academic dishonesty will be "rewarded" with a grade of "F". "Sharing/reuse" of solutions to assignment problems is strictly prohibited.
| Topic | |
|---|---|
| Class 1 | Overview of Semantic Analysis |
| Class 2 | Type Checking in Cool |
| Class 3 | (continue) |
| Class 4 | Run-time Environments |
| Class 5 | ( Extra : Buffer Overflow Problem) |
| Class 6 | Code Generation for Cool |
| Class 7 | (continue) (Extra: C++ Multiple Inheritance) |
| Class 8 | Operational Semantics of Cool |
| Class 9 | (continue) |
| Class 10 | Intermediate Code |
| Class 11 | Local Optimization |
| Class 12 | Global Optimization |
| Class 13 | |
| Class 14 | Register Allocation |
| Class 15 | (continue) |
| Class 16 | Instruction Scheduling |
| Class 17 | Control Flow Analysis : Revisited |
| Class 18 | Data Flow Analysis : Revisited |
| Class 19 | Optimization : Continued |
| Class 20 | Automatic Memory Management |
|
Final Exam (-) |
T. K. Prasad (01/31/2007)