Compilers take input programs written in a high-level language and generate equivalent programs in a low-level language. This course introduces the mathematical tools (formal languages and automata) necessary for recognizing and validating input programs and the computational techniques used to construct equivalent output programs. Students develop first-hand experience with the process by implementing a sample compiler as a course project. The tools and techniques introduced in this course can be applied across a wide range of applications. In particular, this course is valuable preparation for writing any program that needs to read and act on structured input files.

Prerequisites
CSCI 240, 361 and 281. CSCI 370 is recommended. All prerequisite courses must have been completed with a grade of C- or higher.
Course UID
001318.1
Course Subject
Catalog Number
481
Long title
Compilers and Compiler Writing