CS445 Compiler Construction
Spring 1999

Instructor: Christino Tamon
Lectures: MWF 8am
Office hours: MWF 9-11am
Pre-requisites: CS344, CS345 or consent.
Syllabus: A study of compiler design. Overview of the compilation process. Formal definition of syntax, lexical scanning, parsing including LL and LR grammars, run-time structures, intermediate code generation, and storage allocation. Students are expected to develop a compiler for a substantial subset of a high-level language using compiler tools such as lex and yacc.
Course grading
  • Project 60%
  • Exams (2) 40%

Required Texts:
  • Aho, Sethi and Ullman. Compilers. Addison-Wesley Publishing Company, 1986.
  • Levine, Mason, and Brown. lex & yacc. O'Reilly and Associates, Inc., 1992.
Recommended references
  • Kelley and Pohl. A Book on C. Fourth edition. Addison-Wesley, 1998.
  • Horspool. The Berkeley UNIX Environment. Second edition. Prentice-Hall, 1992.
  • Paul. SPARC Architecture, Assembly Language Programming, & C. Prentice-Hall, 1994.

Course project

  • Design a lex scanner for Pascal.
  • Design a yacc parser for Pascal.
  • Design a symbol table and type checker module that performs necessary semantic checking for Pascal (scoping rules, proper variable usage, etc.)
  • Design a code generator that outputs assembly code for the Sun SPARC assembly language.