Spring 2024

Compiler Design

Listed in: Computer Science, as COSC-371


Scott F. Kaplan (Section 01)


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. Spring semester: Professor Kaplan.

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: (none specified)


Other years: Offered in Fall 2011, Spring 2014, Fall 2015