Compiler Construction Spring 2017
This course studies the construction of optimizing compilers, focusing on the "backend" of the compiler: techniques for generating efficient code on modern architectures. We will cover dataflow analysis, program optimization, and code generation across basic blocks, procedures, and complete programs. We will look some of the key challenges for modern compilers and runtime systems: optimization of object-oriented languages, dynamic compilation, garbage collection, dependence analysis, and loop transformations.
|Lectures||Mon 10:30–12:15, Wed 8:30–10:15 in Room SI-013|
CC on Moodle
|Grading||40% Homeworks, 30% Quizzes, 30% Final exam|
Nate Nystrom instructor
Sun Haiyang teaching assistant
|Office||Open Space (2nd floor)|
Schedule Subject to change
GradingYou will be graded on programming assignments, quizzes, and a final exam. There will be approximately one assignment per week. Assignments will consist of programming exercises in Haskell and a several small compiler implementation projects. There will be approximately one 15-minute quiz per week.
Assignments will include both written and programming assignments. You are encouraged to work on the programming assignments with your classmates. The contributions of each student must be explicitly described. All students are responsible for understanding the assignments.
Assignments should be submitted through Github.
Cheating and plagiarism is unacceptable
You are free to discuss assignments and solutions with others. However, you must write your own assignments, and must not represent any portion of others' work as your own. Assignments found to have been plagiarized will be given a grade of -100%.
Collaboration on quizzes and exams is forbidden.