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.
Course prerequisite(s): 
Foundation Prerequisites for Cybersecurity Majors:EN.605.621 AND EN.695.601 AND EN.695.641

View Course Homepage(s) for this course.

Course instructor(s) :