Course Description:
This course investigates theoretical and practical issues in the design and construction of modern compilers. Topics covered include lexical and syntactic analysis, syntax-directed translation, type checking, intermediate representation, code generation, and runtime systems. A major portion of the course involves implementing a compiler from scratch for a C-like programming language.Prerequisite:
- C or higher in CS 3358: Data Structures
Course Objectives:
1. |
Knowledge of compiler organization and design. |
2. |
Experience with the application of theory, specifically automata theory, to software design. |
3. |
Improved C programming skills and experience with a semester-long software project. |
Section Info:
Lecture/Lab Hours: 3 hours lecture, 0 hours lab
Offered: Frequently (typically once a year).