Quick Facts

Course P523—Programming Language Implementation
Credits 3
Location Lindley Hall 008
Times Tue & Thu, 11:15 AM-12:30 PM
Instructor Arun Chauhan
Office Hours By appointment
Textbook Keith Cooper and Linda Torczon, Engineering a Compiler, 2nd edition. Morgan Kaufmann Publishers, 2011.
E-book version

About the course

We did not regard language design as a difficult problem, merely a simple prelude to the real problem: designing a compiler that could produce efficient programs.

John Backus, the “Father of Fortran”

Consider this:

We will attempt to answer these questions in this course.

Goals

This course aims to provide:

Prerequisites

You are expected to know at least two programming languages and be fluent in at least one of those (meaning, you should have written multiple non-trivial programs in that language). You are not required to have any prior background in compilers, but prior knowledge of the fundamentals of programming languages and compilation will certainly help. Familiarity with Unix / Linux is highly recommended.

Course-load

There will be 4-5 programming assignments, the last of which may be a project. There will be a mid-term and a final exam. There may be a few unannounced pop quizzes. The course will assume no background in compilers.

In addition to the textbook, the course will also spend a significant amount of time covering advanced topics, such as parallelizing compilers, memory-hierarchy optimizations, and high-level languages from supplementary sources.