Computer Science 371 - Compiler Design

Compiler Design

Fall
2025
01
4.00
Scott Kaplan

M/W | 11:35 AM - 12:50 PM

Amherst College
COSC-371-01-2526F
Science Center Room A131
sfkaplan@amherst.edu

An introduction to the principles of the design of compilers, which are translators that convert programs from a source language to a target language. Compilers typically take programs written in a general-purpose programming language, such as Java or C, and produce equivalent assembly language programs.   This course examines how source code is parsed, how an internal representation of that code is built, and then how the equivalent assembly code is generated.  We examine basic type systems and static analysis, where the compiler can catch errors in the code during translation.  We see how procedural, functional, and object oriented languages are modeled and translated.

Each student will design and implement a compiler for a small language. Offered in alternate years.

Requisite: COSC 171 and 211. Limited to 50 students. Fall 2025.

How to handle overenrollment: Priority to majors

Students who enroll in this course will likely encounter and be expected to engage in the following intellectual skills, modes of learning, and assessment: Quantitative work.

Permission is required for interchange registration during all registration periods.