Skip to content

CUHK-SZ CSC4180: Compiler Construction Course for Undergraduate Students

License

Notifications You must be signed in to change notification settings

as3ert/CSC4180-Compiler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUHKSZ CSC4180 2024 Spring

Hello everyone, welcome to take the course CSC4180: Compiler Construction offered by The Chinese University of Hong Kong, Shenzhen (CUHK-SZ). In this course, you are going to learn the fundamental basics of compiler and get a hands-on exercise implementing your compiler for both the Micro language and the simple C language grammar. This course mainly covers the compiler frontend and only gives a very brief introduction to the backend. To keep our course content up-to-date, LLVM is introduced and you need to build the frontend that finally generates LLVM IR, and then use the LLVM backend to do the optimization and code generation.

Teaching Assistant

Mr. Liu Yuxuan

Email: [email protected] Office Hour: 8:00 P.M. to 9:00 P.M., every Thursday Office Location: TA107

Six Compiler Phases

The first four are called compiler front-end, while the last two are called compiler back-end.

  1. Scanning (Lexical Analysis)
  2. Parsing (Syntactic Analysis)
  3. Semantic Analysis
  4. Intermediate Code Generation
  5. Optimization
  6. Code Generation

Grading Scheme

Class Participation (5%)

  • Roll Call in Lecture on April 30th, 2024

Programming Projects (70%)

  • Project 1: Implement a simple compiler for Micro language (HW#1 2/1, Due 2/28)
  • Project 2: Implement a scanner for Oat v.1 language (HW#2 2/29, Due 3/20)
  • Project 3: Implement a parser for Oat v.1 language (HW#3 3/21, Due 4/10)
  • Project 4: Implement a compiler frontend for Oat v.1 Language (HW#4 4/11, Due 5/1)

Final Exam (25%)

  • Scheduled on May 7th, 2024
  • Location to be determined

About

CUHK-SZ CSC4180: Compiler Construction Course for Undergraduate Students

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 35.9%
  • Assembly 22.6%
  • LLVM 14.9%
  • Python 10.9%
  • Yacc 6.4%
  • Jupyter Notebook 4.2%
  • Other 5.1%