CS 453: Introduction to Compilers (Spring 2007)

Syllabus for CS 453 (http://www.cs.colostate.edu/~cs453)

(Detailed class schedule at http://www.cs.colostate.edu/~cs453/schedule.html) The projects in the class will involve writing a compiler in Java for a subset of Java called MiniJava. From MiniJava, we will be generating MIPS code, which we will then run through the SPIM simulator. In the process, we will work with many common data structures, implement algorithms, and practice the design visitor pattern. We will also learn about lexing, parsing, and semantic analysis and show how they bring the theory from CS 301 to life.

Check out some setup notes, if you are interested in learning about some of the software tools we will be using in this class.

Quotes, Jokes, Etc. from README files


Date and Time

MWF 2:10-3:00, Location USC 110


Dr. Michelle Strout (mstrout@cs.colostate.edu), Office hours: W 3-4pm, Lab hours: F 3-4:30pm

Teaching Assistant

David Rostron (drostron@cs.colostate.edu)
Office hour: Fri 1-2pm, USC 200 - W6
Lab hours: Tues 8-9pm in S.Lab, Tues 9-12pm in N.Lab

Class Communication

Email: cs453@googlegroups.com, URL: http://groups.google.com/group/cs453


Modern Compiler Implementation in Java, 2nd Edition by Andrew W. Appel, 2002.

Programming Assignments

There will be eight programming assignments to be completed in pairs or individually. The first programming assignment is a warmup to introduce the visitor design pattern. The later assignments result in a compiler that compiles a subset of Java called MiniJava to MIPS assembly. The percentage breakdown for the programming assignments will be 2%, 3%, 5%, 2%, 8%, 4%, 8%, and 8%.


The midterm exam is in class on March 9th. The final exam time is 7:00am-9:00am on May 7th.

Students should study for the exams by fully understanding and practicing the suggested exercises. Feel free to email possible answers to the class mailing list to get feedback from other students, the TA, and the instructor.

Grades (will be posted at WebCT)

Programming Assignments: 40%, Final exam: 40%, Midterm exam: 20%

Honesty Policy

Read and know the Computer Science Department Student Information Sheet at http://www.cs.colostate.edu/~info/student-info.html.
Michelle Strout
Last modified: January 26, 2007