CS-540 Syllabus

Course Summary

This course offers a comprehensive introduction to the theory and practice of compiler construction. Students will learn all stages of the compilation process, from front-end parsing to intermediate representations and backend code generation. Each session combines fundamental theory with motivating examples to promote a clear and practical understanding. Short in-class quizzes will reinforce key concepts and support active learning.

Class Time and Location

Time: Tuesday 4:30 pm-7:10 pm

Date Range: Aug 26, 2025 - Dec 2nd, 2025

Location: Innovation Hall 215G

Instructor

Name: Keren Zhou

Email: kzhou6@gmu.edu

Office: ENGR 5315

Office Hour: Tuesday 3:30pm - 4:30pm

Teaching Assistants

Name: Ruochen Wang

Email: rang29@gmu.edu

Office: ENGR 4456

Office Hour:

Canvas Moderator Hour: Monday - Friday

Prerequisites

CS 310 and CS 330 and CS 367

Course Objectives

  1. Provide a comprehensive introduction to fundamental compiler concepts.
  1. Introduce students to state-of-the-art research directions and industry practices in compiler design.
  1. Facilitate hands-on experience by reproducing and analyzing results from classical and influential compiler papers.

Textbooks

  1. Compilers: Principles, Techniques, and Tools: Aho, Alfred, Ullman, Jeffrey, Sethi, Ravi, Lam, Monica
  1. Engineering: A Compiler: Cooper, Keith D., Torczon, Linda (optional)

You are not expected to read every chapter in the textbooks in order to succeed on the quizzes.

Honor Code

Please follow GMU’s honor code policy:

To promote a stronger sense of mutual responsibility, respect, trust, and fairness among all members of the George Mason University community and with the desire for greater academic and personal achievement, we, the student members of the university community, have set forth this honor code: Student members of the George Mason University community pledge not to cheat, plagiarize, steal, or lie in matters related to academic work

And the CS department has its own policy.

Please do note there has been revisions to the honor code policy:

Unless permission to do so is granted by the instructor, you (or your group, if a group assignment) may not:

-
use assistive technology, artificial intelligence, or other tools to complete assignments which can generate, translate, or otherwise create/correct code or answers (many types of assistive technology may be permitted, but you must ask permission)

Disability Accommodations

Should you possess documented evidence of a learning disability or any other condition that could impact your academic achievements, kindly ensure this documentation is registered with the Office of Disability Services. Subsequently, please initiate a conversation with the professor regarding potential accommodations.

Course Structure

Quizzes

Students will complete up to four in-class quizzes during the semester.

Each quiz contributes 20% of the final grade and will consist of short questions spanning no more than two pages. The duration of each quiz will be 1–1.5 hours.

Quizzes are open book and open resource. You may use any textbooks and notes. However, seeking answers online or collaboration with peers or TAs during the quiz is not permitted.

Project

Students may choose one of the following two project options:

Reproducing Classical Papers

Read one of the following papers and write code to reproduce major results declared in the paper, submitting your code and a short report of 2 pages.

The report should:

Paper list:

State-of-the-art Compiler Research

Select five compiler-related papers published after 2020 at the provided conferences and write five individual reports (2 pages each).

Each report should follow this format:

Conference list:

Each report should include the following sections

Grading

Schedule (subject to change)

Week DateTopicTimeline
1Aug 26, 2025Introduction
2Sep 2, 2025Theory
3Sep 9, 2025No Class
4Sep 16, 2025Parser-1
5Sep 23, 2025Parser-2
6Sep 30, 2025SemanticQuiz-1
7Oct 7, 2025Intermediate Representation
9Oct 14, 2025Function-1Quiz-2
8Oct 21, 2025Function-2 (Video)
10Oct 28, 2025Object Oriented Design
11Nov 4, 2025Election Day
12Nov 11, 2025Invited Talk-1Quiz-3
13Nov 18, 2025Code Generation-1
14Nov 25, 2025Code Generation-2
15Dec 2, 2025ConclusionsQuiz-4