198:415 - Compilers
Spring 1999
Professor Barbara G. Ryder


This course is a "learn by doing" approach to compilation, the translation of a program to machine executable instructions. We will cover the theory and practice of lexical analysis, parsing, semantic analysis (type checking), optimization and code generation. Compiler technology is used as the basis for many software tools -- debuggers, execution profilers, testing systems, program understanding systems. This course will require a large Java program to be coded and documented; you should not take other large project courses concurrently to taking 415.

Our course will emphasize using the techniques we learn, so each student will write a working compiler for a small imperative language. This project will be coded in Java, using packages provided by our textbook. Familiarity with object-oriented programming is a prerequisite; if you do not already know the Java langauge, then you will have to learn it on your own as part of the course. The formal prerequisite for the course is 198:314; students who did not achieve at least a grade of C+ in 314 must see the instructor to evaluate if they are ready 415. Any student unsure whether or not s/he has the prerequisites should come see the instructor.

Expected Work

We will code the compiler in four "pieces" during the semester. We also will have weekly book homeworks to gain facility with the more theoretical material. Lecture notes will be available on web before each class. We will have a 1.5 hour midterm (planned for March 10, 1999) and a 3 hour final exam on Friday May 7, 1999. Please note the date of our final differs from that listed in the bulletin.



Grades will be approximately on the following scale: 50% compiler project, 25% final exam, 15% midterm and 10% book homeworks. Participation in class and recitation is factored into your grade.

Turning in a programming project late, but within 24 hours of the posted due time, will result in a 30% reduction in the possible maximum grade achievable on that project; projects more than 24 hours late will receive a grade of 0. Projects which do not compile also will receive a grade of 0.


Professor Barbara Ryder (ryder@cs.rutgers.edu)
Office: CoRE 311, 445-3699
Office hours: Tuesdays, 1:30-3:30pm

TA: Florin Isaila (isaila@paul.rutgers.edu)
Office: Office hours: TBD


Please post questions regarding the projects and homeworks in newsgroup ru.nb.dcs.class.415. You should read the newsgroup at least every other day! My preferred mode of quick communication is by email; this will almost always reach me before phone messages.

Class Lecture Date Changes

Makeup Class Scheduled at Regular Class Cancelled on
3pm, Sunday, March 7, 1999 Monday, March 8, 1999
3pm, Sunday, March 28, 1999 Wednesday, March 31, 1999
3pm, Sunday, April 25, 1999 Friday, April 30, 1999

All makeup lectures except March 7th, will be in SERC 202.


Programming Assignments

Written Homework Assignments

Answers to the written homeworks will be available in the SERC reading room.

Online Lecture Notes

Useful Websites

last updated by Barbara Ryder, 5:45pm April 4, 1999