Fall 2023 Course Descriptions

CS 107-01 Compilers

R. Townsend
MW 1:30-2:45, Room To Be Announced
G+ Block

In COMP 181, you will learn about the design and implementation of modern compilers. The course will focus on the main steps of general compilation (Scanning, Parsing, Semantic Checking, and Code Generation), while also introducing some specific compilation techniques for language-specific features. Traditional compiler optimizations may also be introduced.

Outside the classroom, the focus of the course is an intensive, semester-long project: you and a team will design a small programming language and implement a compiler for it using the OCaml language. The algorithms and concepts you will learn have broad application outside of the course: many programming tasks can be understood as variations of interpretation or translation, and understanding how a compiler operates will further develop your abstract thinking skills and make you a better programmer.

Prerequisite: CS 40 and CS 105, or graduate standing, or permission of the instructor.

Back to Main Courses Page