Course Syllabus
Goals
- Understand the fundamental issues in modern compiler design and implementation.
- Become familiar with the concepts, methods and tools in compiler front-end design.
- Become familiar with the methods, techniques in compiler intermediate representation and code generation.
- Become familiar with basics of compiler analysis and optimization.
Textbooks
- Keith Cooper and Linda Torzon, Engineering a Compiler, Morgan Kauffman Publishers.
Class
We will cover the following topics from Engineering a Compiler:
- Introduction
- Scanning
- Parsing and Parser construction (recursive descent and LR(1))
- Context-sensitive analysis
- Syntax-directed translation
- Intermediate representations
- Procedure abstraction
- Code generation
- Instruction selection
- Register allocation
- Instruction scheduling
- Compiler analysis and optimization
Details of topics can be found on the schedule page. Lecture slides will be available on the schedule page after class.
Prerequisites
91.204 or by permission of the instructor.
Grading
- Homework and Projects: 60%. We will have small written homework and ~5 programming projects to implement a working compiler targeting embedded robot system.
- Exams: 40%, the midterm and final exams account for 20% each.
Lateness policy:
You should submit your homework online (directions on the assignment page). The homework assignments are due at midnight and your submission files should have timestamp no later than that. The timestamp will be used to check your submission time.
To account for any unexpected event or delay, each student is granted a total extension pool of three late days during the semester. You can use these extension days for any of your turn-in. However, if you have used up all three days, no other form of extension will be granted and any late turn-in will be rejected with 0 grade for the assignment. So use the extension days judiciously and submit your turn-in on time.
Collboration policy:
You must do the homework assignments individually. You may discuss the concepts in any open forum but must not discuss the actual solution or code implementation. You should be aware of proper academic attribution. If your homework contains unattributed answers that are substantially other persons' work then your course grade may be lowered between one and three letter grades. In cases of cheating on exams, or repeat offenses, the University's maximum penalty may be imposed.