CS445/CS545 Compiler Construction


Instructor: Christino Tamon
Lectures: Tue-Thu 9:30-10:45am, Science Center 342 (or 334 ITL Lab)
Office hours: SC373, Tue-Thu 9:15-9:30,10:45-13:00
Pre-requisites: CS344 Data Structures and Algorithms, CS345 Automata Theory and Formal Languages
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.

GRADING Project 50%; Exams 50%

  1. Language translation. Compilation. Overview.
  2. Lexical Analysis. Regular expressions.
  3. Syntax Analysis. Theory of Parsing: top-down LL(1); bottom-up SLR(1), LR(1) (and LALR(1)).
  4. Semantic Analysis. Parse trees. Syntax-directed translation. Type checking.
  5. Code generation. Runtime environments.

The objective of this course is to learn the fundamentals of compiler theory and its application in constructing a real working compiler. The specific outcomes are:
Although attendance is not mandatory, students are responsible for all course materials covered in lectures and any exams given during class periods. Students that need to make up missing course work must follow the official Clarkson policies regarding these matters. All students must submit their own work; the exchange of ideas are encouraged but ultimately the submitted work must be the student's own. Please refer to the Clarkson University Regulations for more guidelines on academic integrity and related matters.