Course Homepage: Principles and Techniques of Compiler

University of Science and Technology of China
Fall 2020


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

Teaching Assistants(TAs):

Zewen Jin (金泽文)Group, qq: 1033329461
Ping Gong (龚平)Group
Jiahao Li (李嘉豪)Group
Yiming Zhu (朱一铭)Group
Qingyuan Chen (陈清源)Group
Haiquan Wang (王海权)Group
Kai Ma (马凯)Group
Yuxin Ma (马煜昕)Group


The class meets on Monday (1,2) and Thursday (6,7). The location is Building 3C, Room 303. Lectures are held in one location. Students are encouraged to meet the teaching staff during office hours for help with any questions or problems. Tutorials will be offered when needed.

Lecture notes, course schedule

Lecture notes, course schedule, recommended readings, and assignments can be found in Slides & Homework. Before you register, please read the Account Requirements and Submission Rules in detail.

For more information, see the git page.


Any question/advice is welcome. Please write an issue on the git page. Read Rules of Submissions first.

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.