Course Description
Compiler technology is an important topic today in light of the rapid expansion of new programming models and processor architectures, including domain-specific languages and architectures. This trend is creating a huge demand for new compilers and for the compiler engineers who can design and implement them. This course will cover universal compiler topics such as intermediate representations, data flow, and code optimization, as well as more research-oriented topics such as parallelization, just-in-time compilation, garbage collection, and deep learning compilers. This course is not about parsing and syntax, but rather it concerns the semantics of programs and how programs can be converted into executable code that implements those semantics on a given processor architecture, while meeting correctness, performance, and security requirements. The class work will consist of readings, in-class learning activities and exercises, and programming assignments using the LLVM open-source compiler, as well as midterm and final exams. The programming assignments will solidify your understanding of the abstract concepts by having you turn them into real code. Graduate students will also do an open-ended project and write a report about it (project will be optional for undergraduate students).
Office hours
Dr. Moore: 12:00-1:00pm Mondays, 3:00-4:00pm Thursdays, others by appointment
In-person in CCSB 3.0608 or virtually on Teams
C++ Resources
W3 Schools C++ Tutorial
TutorialsPoint C++ Tutorial
Comments (0)
You don't have permission to comment on this page.