CS453: Introduction to Compiler Construction

csu-logo
red-line
[Syllabus] [Grading] [Topics] [Assignments] [Home]

Spring 2024
CS453 Introduction to Compiler Construction teaches how to build a full compiler from scratch, for (a large subset of) the Java language down to MIPS assembly. Topics covered include grammars, parsers, intermediate representation construction, type checking/analysis, AST translation and lowering, register allocation, instruction scheduling, and ASM code generation.
CS453 is geared towards senior undergraduate students and also first-year graduate students who have not taken such an introductory course.

Course Objectives
By the end of the course, students should be able to

  1. Know the base concepts to build an entire compiler, including front-end, middle-end and back-end design
  2. Develop a full compiler from an object-oriented language (Java) down to ASM code generation (MIPS)
  3. Be autonomous in finding algorithms and tools to assist with the development of a compiler

Past classes: CS453: Spring 2022, CS453: Spring 2021, CS453: Spring 2020, CS453: Spring 2019, CS453: Spring 2018, CS453, Spring 2017

Prerequisites
To understand the material in this course, you will need to have a good working knowledge of data structures such as linked lists, trees, dictionaries, and dynamically allocated structures. You will need to know how to implement these data structures in Java, C, and C++. To successfully complete this course, you should be familiar with material related to the above topics, which are covered in CS200 (Algorithms and Data Structures), CS253 (Problem Solving with C++), and CS314 (Software Development Methods). You will also need to have a good understanding of the memory model and the concept of calling conventions, which is covered in CS70 (Computer Organization) at CSU.

Course material
All communications and distribution of material (lecture slides, project assignments, sample exams, etc.) are made available exclusively via the Piazza website for the class. The website is not accessible to the general public, if you wish to look at the material prior to deciding to enroll in CS453 contact Louis-Noel Pouchet directly.

NOTE: for Spring'21, due to licensing terms change for Piazza, we may use a different website for the class material, this will be announced during the first lecture.


Instructor Lecture Coordinates
 

Louis-Noel Pouchet
Office: CSB 346, Computer Science Building
Office Hours:
TBD
TBD
E-mail: pouchet {AT} colostate.edu


Graduate Teaching Assistant
Emily Tucker
Office Hours:
TBD
E-mail: Emily.Tucker {AT} colostate.edu

 

Lectures: 4:00pm-5:15 PM Tuesdays and Thursdays, in Walnut Room 108
Recitations: Wednesdays 3pm-3:50pm, in CSB325


Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 2019 Colorado State University