Department of Computer Science
CSU Stanislaus
California State University
CS4300-001:
Compiler Theory
Fall 2025
Instructor Dr. Xuejun Liang
My Office: DBH 282
Office Hours: TuTh 1:00 p.m.-2:00 p.m. & W 3:00 p.m. - 4:00 p.m.
ZOOM Meeting ID: 4438930033, Phone: (209) 667-3169, Email: xliang@csustan.edu
Class Information
Classroom: SB 139 / Online
Class Date & Time: MWF 1:00 p.m. - 1:50 p.m.
Class Website: https://www.cs.csustan.edu/~xliang/Courses3/CS4430-25F
Class Server: wozniak.csustan.edu (used for programming assignments and projects)
Class Canvas: Use your class Canvas account to submit homework assignments.
Class Modality: In-Person. Student attendance is required.
Class
Modality: Hybrid Online - Synchronous. In-person class meetings will be on
campus at the room, day, and time listed. Online class meetings will be at the
day and time listed. Students must be available at the class times listed in
the Class Schedule and must attend in person on days indicated as such by the
instructor. Students do not have the option to choose in-person or virtual, nor
opt for asynchronous participation.
Course Materials
Required Textbook
Compilers: Principles, Techniques, & Tools, 2/E, by Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman, Addison Wesley, 2007. ISBN: 9-780-321-486-813
Reference Textbooks
1. Compiler Construction: Principles and Practice, by Kenneth C. Louden, PWS Publishing Company, 1997
2.
flex & bison: Text
Processing Tools, by John Levine, O'Reilly Media, Inc., 2009
3.
Modern Compiler
Implementation in Java, 2/E, by Andrew W. Appel and Jens Palsberg, Cambridge
University Press, 2002
4.
Modern Compiler
Implementation in C, by Andrew W. Appel and Maia Ginsburg, Cambridge University
Press, 2004
5.
Advanced Compiler
Design and Implementation, by Muchnick Steven, Morgan Kaufmann, 2008
6.
Engineering a
Compiler, 2nd Edition, by Keith Cooper and Linda Torczon, Addison
Wesley, 2011
Handouts
Reference Materials
Lecture Slides
1. Chapter 1: Introduction (A)
2. Chapter 2: A Simple Syntax-Directed Translator (A, B, C, D)
3. Chapter 3: Lexical Analysis (A, B, C, D)
4. Chapter 4: Syntax Analysis (A, B, C, D, E, F, G, H)
5. Chapter 5: Syntax-Directed Translation (A, B, C, D)
6. Chapter 6: Intermediate-Code Generation (A)
7.
Cool 1
Course Syllabus and Major Topics
Course
Description
This course is
an introduction to the major methods used in compiler implementation. The
parsing methods of LL(k) and LR(k) are covered as well as finite state methods
for lexical analysis, symbol table construction, internal forms for a program,
run time storage management for block structured languages, and an introduction
to code optimization.
Course Outcomes
Students who successfully complete the course should be able to
7. Describe how the code generator performs instruction selection, register allocation and assignment, and instruction ordering.