Compiler Principles Course Homepage

University of Science and Technology of China
Fall Semester 2018

Course Overview


Name E-mail Office
Cheng Li Office hours: Monday 12:00 pm - 1:30 pm
Room 503, National High Performance Computing Center, East Campus, USTC

Teaching Assistants(TA):

Name E-mail
Youhui Bai
Xinyang Shao
Jiawei Wang
Yiduo Wang
Guanbin Xu


The class meets on Mondays (6,7) and Thursday (3,4). The location is building 3B, room 201. Lectures are held in one location. There is a experiment class on Thursday (14:00-17:00, in building diansan, room 406). Students are encouraged to meet the teaching staff during office hours for help with any questions or problems. Tutorials will be offered when needed.

Mailing Lists: : includes everyone involved with the course, the teaching staff as well as the students. Important announcements, such as exam schedules and assignment deadlines, will be posted on this list. Students can also use it to form project teams, to discuss projects, and to exchange ideas and experience. Everyone should join and read this group mailing list daily. To subscribe, please visit .

Contact us by : includes all members of the teaching staff, the instructors as well as the teaching assistants. Students should use this for all communication with the course staff.

Please, email individual staff members only when the communication is personal, and is not related to the course in general.

Lecture notes, course schedule

Lecture notes, course schedule, recommended readings, and assignments can be found here.


for more information:

Course Description

This course considers the principles that underlie a wide variety of compilers, and focuses on the problem of translating programs written in a high-level language into semantically equivalent programs written in low-level machine code. After taking this course, students are expected to understand the principles of designing and implementing modern programming languages, and to implement a working compiler using standard compiler tools.

Intended Audience / Prerequisites

This core course is open to Bachelor students. Bachelor students must have passed the basic courses on Programming. Proficiency in programming (C/C++) is strictly required to take this course.

The language of the course is Chinese, but some lecture notes might be written in English.


Compiler Principles:

The lecture will cover some topics in more depth than the books, and also in a different order.

Lecture Notes

Summary lecture notes will be available on the course web-site for some of the material covered in the class. These notes are primarily meant to help students with taking notes. However, they will not accurately or consistently cover all the material discussed in the lectures. Students are expected to know all material covered in the lectures, and in the assigned readings and projects. Therefore, students should not rely only on the lecture notes. They should attend class regularly, take their own notes, and complete all assignments.





Class Project


Rules for team registration:

  1. 编译原理课程项目组队,最多三人一组,自由组合,并在下周二(09.18)23:59前将名单发送到 ,主题:项目组队-学生名字1-学生名字2-学生名字3,邮件内容包括所有成员的的学号和姓名。
  2. 其他没有完成组队的同学,将由助教以三人为一组安排团队。