Lectures | Tuesday and Thursday, 15:00--16:40, Room 1D 104 SIST Building |
Discussions | TBD |
Instructors | 宋富 <songfu > |
Office hours | Room 1B-101 SIST Building |
高鹏飞: Tuesday 19:30-20:30 | |
秦琦: Friday 13:00-14:00 | |
Q&A | Post all your questions on the forum. |
1.Compiler Testing
2.Compile real programs into floating-point programs with controllable round errors
3.Self-selected related projects
At most 3 students for each team. Each team has to submit: (1) A report that clearly describe the background, your design thoughts, the specific realization and the testing results, (2) Source code and a user guide, and (3) A final presentation to show what you have doneSubmitting proposal of your optional project, due Oct. 31, 23:59
Week | Date | Topic | Reading | Notes |
---|---|---|---|---|
1 | 09-18 | Introduction I | CPUR 1 | Slides |
09-20 | Introduction II & Lexical Analysis | CPUR 1,3 | Slides | |
2 | 09-25 | Lexical Analysis | CPUR 3 | Slides |
09-27 | Slides | |||
3 | 10-02 | National Day | ||
10-04 | move to 09-29 | |||
4 | 10-09 | Syntax Analysis | CPUR 4 | Slides1 Slides2 |
10-11 | Slides | |||
5 | 10-16 | Slides | ||
10-18 | Slides | |||
6 | 10-23 | Slides | ||
10-25 | Slides | |||
7 | 10-30 | Intermediate Representation (IR) | Slides1 Slides2 | |
11-01 | Midterm Review | |||
8 | 11-06 | Syntax-Directed Translation | CPUR 5 | Slides |
11-08 | Midterm | |||
9 | 11-13 | Syntax-Directed Translation | Slides | |
11-15 | Semantic Analysis and Type Checking | CPUR 6.1-6.5, TypeSystems.pdf | Slides | |
10 | 11-20 | Slides | ||
11-22 | Intermediate Code Generation | CPUR 6.3-6.4, 6.6-6.9 | Slides | |
11 | 11-27 | Operational Semantics | COOL manual, SA 1-3,5-6 | Slides |
11-29 | Run-time Environments | CPUR 7.1-7.4 | Slides | |
12 | 12-04 | Code Generation | CPUR 8 | Slides |
12-06 | Slides | |||
13 | 12-11 | Slides | ||
12-13 | Garbage Collection | CPUR 7.5-7.8 | Slides | |
14 | 12-18 | Optimization | Slides | |
12-20 | Dataflow Analysis | Slides | ||
15 | 12-25 | Slides | ||
12-27 | Control Hijacking Attack | Slides | ||
16 | 01-01 | New Year's Day | ||
01-03 | Review |
Note: schedule is subject to change.
This course covers the fundamentals of compiler design, including lexical analysis, parsing, semantic analysis, compile-time memory organization, run-time memory organization, code generation, and compiler portability issues.
Projects 30%+ Homework 20%+ Midterm 20% + Final 30% + Bonus 10%
We enforce academic integrity strictly. If you participate in any form of cheating, you will fail this course immediately. Examples of cheating on homework include (but are not limited to):
We never accept late homework submission in any circumstances. Since we hand out homework several weeks before its deadline, you should allocate sufficient time and allow for contigencies.
You may not post anonymously. If you do, we will delete your post without notice and will deduct from your class participation score.
We always welcome any feedback on what we could do better. You are also welcome to send us feedback anonymously if you like.