Instructor: Doug Lea
Class: T-Th: 8am
Office/Lab hours: T-Th 1-2pm.
Prereqs: CSC344 (365 and 322 strongly encouraged)
Course home page:


The design and implementation of programming language compilers performing parsing, analysis of program representations, code generation, optimization, and language run-time support; with applications to related tools including intepretors, static analyzers, development environments, and virtual machines.



Upon completion of this course, students will demonstrate ability to:


Compilers: Principles, Techniques, and Tools, by Aho, Lam, Sethi, and Ullman. Addison-Wesley, 2007, ISBN-10: 0321486811

This is the reference-quality "Dragon book" providing definitive treatments of most topics in compilation.

Links to online readings and materials

Links to optional readings

Other links


Subject to minor change:
Two exams (final exam is take-home style) (25%)
Exam questions mainly cover the theory of operation of parsing, analysis, code generation, optimization, and run-time support.
Exercises (10%)
two to three short assigments
Project (65%)
A compiler for a small language, submitted in approximately 4 parts
  1. Create a parser for your dialect of Minijava using any parser generator tool or framework. Include evidence of successful parse of all Minijava sample programs as well as at least three examples with your extensions. Demonstrate appropriate user error handling, and (partial) recovery using synchronizing tokens, using test programs with syntax errors.
  2. Add symbol resolution and type-checking. Create unit tests and include results for cases of expression and invocation errors, duplicate declarations, overload/override errors, and illegal inheritance.
  3. Generate and run code for all of the sample programs.
  4. (Optional) Use an optimization framework to add an optimization and regenerate and run sample programs.

Campus references

See the CS and College course policies and resources.

If you have a disabling condition, which may interfere with your ability to successfully complete this course, please contact the Office of Disability Services.

SUNY Oswego is committed to Intellectual Integrity. Any form of intellectual dishonesty is a serious concern and therefore prohibited. The full policy can be found at

Doug Lea