CSC 439/639: Introduction to Compiler Design

Fall 2020
Department of Computer Science
UNC Greensboro
Class Meetings: Mon/Wed 2:00-3:15 -- see Genie or the syllabus for your section's meeting pattern

Instructor

Steve Tate
Office: 157 Petty Building
Office Hours: Mon/Wed 10:00-11:30 (virtual -- use the Zoom link in Canvas)
E-mail:

Special Note for Fall 2020

Due to the ongoing COVID-19 pandemic, there are several important things to keep in mind. First, office hours have been changed to "virtual" in order to avoid in-person interaction in a small room. If you have an emergency need to meet in person, email me and we'll see if we can arrange something (perhaps in a larger room), but please consider this only for emergency situations. Second, the schedule and class structure is more uncertain that usual, and changes in the pandemic situation might require a rapid transition to online-only classes. Be prepared and stay on top of things!

For more information on UNCG and class policies regarding COVID-19, please see the class syllabus.

Overview

Catalog description: Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block-structured language with strong typing. Pre-reqs: CSC 261 and CSC 330. CSC 452/652 helpful.

This class provides an introduction to how compilers and language translation systems work, including both the underlying theory and the practical implementation. This is a programming-intensive class, and by the end of the class each student is expected to have produced a fully-functional compiler, which will be thousands of lines of code. You must be comfortable and confident in your ability to crank out non-trivial amounts of code to succeed in this class.