CS453: Introduction to Compiler Construction

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

Spring 2019
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.
Important announce: the first lecture will be Thursday, January 24 at 11am in CS130.
The lecture on Tuesday, January 22 is cancelled as Pouchet is on travel.

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 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.


Instructor Lecture Coordinates
 

Louis-Noel Pouchet
Office: CSB 346, Computer Science Building
Office Hours (tentative):
2:00-3:00 pm Tuesday
2:00-3:00 pm Thursday
E-mail: pouchet {AT} colostate.edu


Graduate Teaching Assistant
Pooria Taheri
Office Hours in CSB 120:
9:00-11:00 am Mondays
11:00-12:00 pm Wednesdays
3:00-4:00 pm Wednesdays
4:00-5:00 pm Thursdays (in CSB 252)
E-mail: P.Taheri {AT} colostate.edu

 

Lectures: 11:00-12:15pm Tuesdays and Thursdays in CSB 130
Recitation: 4:00-4:50 pm Wednesday


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