CS445/CS545 Compiler Construction
Lectures: TR 9:30-10:45am, Science Center 342
hours: SC373, TR 8:30-9:30, 10:45-11:15, 3:00-4:00
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 and Assignments 60%; Exams 40%
- Required: Alfred V. Aho, Monica Lam, Ravi Sethi and Jeffrey D.
Ullman. "Compilers: Principles, Techniques, and Tools," 2nd edition,
- Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language,"
2nd edition, Prentice-Hall (1988) (on reserve)
- John Levine, Tony Mason, and Jason Brown, "lex & yacc," 2nd edition,
O'Reilly (1992) (on reserve)
- Language translation. Compilation. Overview.
- Lexical Analysis. Regular expressions.
- Syntax Analysis. Theory of Parsing: top-down LL(1); bottom-up SLR(1),
LR(1) (and LALR(1)).
- Semantic Analysis. Parse trees. Syntax-directed translation. Type
- 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:
- C Proficiency.
- Knowledge of standard UNIX tools for software design and compiler
- Knowledge of assembly language and its run-time environment relevant for
- Ability to build a small and functional compiler in a UNIX programming
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