Course Number
Primary Program
Course Format
Synchronous Online

The components of a compiler appear in every software application that handles input from an external source. This course shows how the components of a compiler are built and how they fit together to extract meaning from the input and how the data flows through the compiler’s components to become useful to applications. Students will get practical experience in how to use the LLVM tools to build a complete compiler for a subset of the C++ programming language that can target almost any platform. Students will also get experience in developing a “Just In Time” component for an application that will accept code as input into the application while it is running, to be compiled and linked into the application so the application can execute it. Prerequisites: This course has no formal prerequisites, but experience with C++ is highly recommended because LLVM is written in C++, and therefore, all homework will be in C++, and this course is software homework intensive.

Course Offerings

There are no sections currently offered, however you can view a sample syllabus from a prior section of this course.