CS453: Introduction to Compiler Construction |
[Syllabus] | [Grading] | [Topics] | [Assignments] | [Home] |
Spring 2020 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
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. |
Instructor | Lecture Coordinates | |||
Louis-Noel Pouchet |
Lectures: 1:00-2:15pm Mondays and Wednesdays in CSB 425 |
Compiler project The main assignment for this class is to build a full compiler from Java to MIPS. It is split into 4 sub-assignments, each of which graded independently:
|
Late and Makeup Policy Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, family emergency). Students must consult with the instructor as soon as possible, preferably before the start of the exam. Course examination dates are listed on the schedule page; be aware of them and plan accordingly. All assignments are due at 11:59 PM on the due date. Assignments will be posted at least two weeks in advance, the compiler project will be posted more than two months in advance. The deadlines are strictly enforced, no late submission will be accepted. If for exceptional circumstances as above you are unable to meet an assignment deadline, you must contact the instructor at least 24h before the deadline to discuss your specific situation.
Conduct This course will adhere to the CSU Academic Integrity Policy as found in the General Catalog and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.
|
Department of Computer Science, Colorado State University, Fort Collins, CO 80523 USA © 2019 Colorado State University |