Compiler Construction
Grading & Policy
Assignments= 20 points
Projects= 20 points
Midterm = 30 points
Final = 30 points
Research Activities = +10 points
Course Staff
The Instructor:
Mehran Alidoost Nia
Topics & Scheduling
Introductory Session
Overview of Compilation
Introduction to LLVM
Regular Expressions and Scanners
Introduction to Parsing
Top-Down Parsing
Bottom-Up Parsing
Intermediate Representations
Translation
Procedures
Arithmetic Operators, Boolean and Relational Operators
Control-Flow Constructs
Operations on Strings
Compiler Optimization
Iterative/Interprocedural Data-Flow Analysis
Scheduling
Runtime Optimization
Midterm, Assignments, Project and Grades
Assignment I
Assignment II
Project (phase I)
Midterm
Assignment III
Assignment IV
Project (phase II)
Final
Calendar Subscription
Textbooks and Resources
The main references:
Complementary resources:
Crafting a Compiler by Charles Fischer, Richard LeBlanc and Ron Cytron, 1st edition, October 2009 (pdf).
Compilers: Principles, Techniques, and Tools by Alfred Aho, Jeffrey Ullman, Ravi Sethi and Monica Lam, 2nd edition, August 2006 (pdf).
Learn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++ by by Kai Nacke, May 2021 (pdf)
Programming tools:
The LLVM Compiler Infrastructure, https://llvm.org.