BU CAS CS 525
Compiler Design
Semester: Spring 2005

Course Information

  • Instructor: Hongwei Xi (email: hwxi AT cs DOT bu DOT edu)
  • Instructor's Office: MCS 172
  • Instructor's Office Hours: Monday 4-6 and Thursday 5-6
  • Grader: Rui Shi (email: shearer AT cs DOT bu DOT edu)
  • Lecture Times: MWF 3:00-4:00 PM
  • Classroom: BRB, Room 122, 5 Cumminton Street
  • Tuesday, February 22 (after five weeks) is the last day to drop a course *without* a notation of "W" on the transcript
  • Friday, March 18 (end of the eighth week) is the last day to drop a course *with* a notation of "W" on the transcript
  • Midterm Exam is a one-hour in-class exam scheduled on Friday, March 18, 2005
  • Final Exam is a two-hour exam officially scheduled on Monday, May 16, 2005, from 9 to 11AM
  • Overview

    Compiler Design is a course that introduces students to some basics in the design and implementation of compilers. In this course, we are to teach the theory behind various components of a compiler, the programming techniques involved to put the theory into practice, and the interfaces used to modularize the compiler. In particular, we choose Java as the implementation language, allowing students to learn first-handedly as to how object-oriented programming can be used effectively in constructing (relatively) large programs. We plan to cover the first part, that is, the first twelve chapters of the following textbook by Andrew Appel.

    Textbook

  • Modern Compiler Implementation in Java by Andrew Appel with Jens Palsberg. Second Edition. ISBN 0-521-82060-X. Cambridge University Press.
  • Reference Books

  • Introduction to the Theory of Computation, by Michael Sipser. ISBN 0-534-95651-3. PWS Publishing Company, 20 Park Plaza, Boston, MA 02116.
  • Prerequisites

  • Familiarity with programming in general.
  • CS320 (Concepts of Programming Languages)
  • Programming Languages

  • Java
  • Eclipse, an IDE for Java
  • Logistics

  • Syllabus (ps)(pdf)
  • Schedules
  • Guidelines for Homework Submission (ps) (pdf)
  • How to use gsubmit to submit homework?
  • Archived Messages(new!)
  • Slides

  • Introduction (ppt) (ps)
  • References

  • Intel Architecture: Software Developer's Manual: Basic Architechture (pdf)
  • Intel Architecture: Software Developer's Manual: Instruction Set Reference (pdf)
  • Intel Architecture: Software Developer's Manual: System Programming (pdf)
  • Mailing List

  • To join the course mailing list, type csmail -a cs525 at the Unix prompt
  • To inspect who else is on the mailing list, type csmail -p cs525
  • To remove yourself from the mailing list, type csmail -r cs525
  • Class Calendar

  • Class begins on Monday, January 18, 2005
  • Class suspended on Monday, February 21, 2005
  • Substitute Monday Schedule of Classes Tuesday, February 22, 2005
  • Spring Recess Saturday, March 5, through Sunday, March 13, 2005
  • Midterm Exam is a one-hour in-class exam scheduled on Friday, March 18, 2005
  • Class suspended Monday, April 18, 2005
  • Instruction ends on Wednesday, MAY 4, 2005
  • Final Exam is a two-hour exam officially scheduled on Monday, May 16, 2005, from 9 to 11AM
  • Assignments

  • Assignment 1 (ps) (pdf) (Due on Wednesday, the 2nd of February, 2005)
  • Assignment 2 (ps) (pdf) (Due on Monday, the 14th of February, 2005)
  • Assignment 3 (ps) (pdf) (Due on Monday, the 21st of February, 2005)
  • Assignment 4 (ps) (pdf) (Due on Monday, the 28th of February, 2005)
    Here is some information on the programming language Geizela (ps) (pdf)
    Also, you may find some programs written Tiger (here).
  • Assignment 5 (ps) (pdf) (Due on Monday, the 14th of March, 2005)
  • Assignment 6 (ps) (pdf) (Due on Wednesday, the 23rd of March, 2005)
  • Assignment 7 (ps) (pdf) (Due on Monday, the 4th of April, 2005)
  • Assignment 8 (ps) (pdf) (Due on Monday, the 11th of April, 2005)
  • Assignment 9 (ps) (pdf) (Due on Monday, the 25th of April, 2005)
  • Assignment 10 (ps) (pdf) (Due on Monday, the 2nd of May, 2005)
  • Solutions

  • Solution 3 (ps) (pdf)
  • Examination