Fall 2020

Compiler Design

Listed in: Computer Science, as COSC-335

Formerly listed as: COSC-37


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. Traditionally, a compiler translates source code written in a general-purpose programming language, such as C, into an equivalent assembly language program.  Modern compilers may also translate from one source language to another source language (e.g., C to JavaScript), or from one machine code format to another (e.g., Java bytecode to x86).

This course will develop the fundamental concepts used by compilers: formal grammars, parsing, semantic representation, type systems, code generation, run-time environments, optimization, and error handling.  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 Semester. Professor Kaplan.

If Overenrolled: Priority to majors


Quantitative Reasoning


2019-20: Not offered
Other years: Offered in Spring 2008, Spring 2010, Fall 2011, Spring 2014, Fall 2015, Fall 2020