Instructor: Doug Lea
Class: T-Th: 8am5
Office/Lab hours: Almost anytime.
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.
- Parsing: Tokenization of regular languages; top-down and
bottom up parsing of context-free languages
- Static analysis: Abstract Syntax trees; type checking and
static semantics checking
- Code generation: Mapping instructions and storage to
processors; virtual machine representations;
- Run-time support: Procedure conventions; linkage;
initialization, dynamic memory management;
- Optimization: Data flow graphs; forward, backward, and
Upon completion of this course, students will demonstrate ability to:
- [Design] Choose among relevant approaches, techniques, and
tools for parsing, static analysis, code generation,
optimization, and run-time support.
- [Development] Design, implement, and test a compiler for a
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
Subject to minor change:
- Two exams (one during final exam week) (25%)
- Exam questions mainly cover the theory of operation of
parsing, analysis, code generation, optimization, and run-time
- Exercises (10%)
- two to three short assigments
- Project (65%)
- A compiler for a small language, submitted in approximately
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 http://www.oswego.edu/integrity