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.
Professor Barbara Ryder
Office: CoRE 311, 445-3699
Office hours: Tuesdays, 1:30-3:30pm
TA: Florin Isaila (firstname.lastname@example.org)
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.
|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.
Answers to the written homeworks will be available in the SERC reading room.
last updated by Barbara Ryder, 5:45pm April 4, 1999