course number instructor title
CS 6304 C Jung Advanced Topics in Languages & Translators
This course will explore advanced topics in compilers and computer
architecture whose synergy can enhance both capabilities and 
efficiency of computing systems, with a focus on performance, 
reliability, and security. 
The goal is to understand the state-of-the-art, to learn basic 
concepts and mechanisms for compiler-architecture interaction, 
and to identify new ideas for advancing the state-of-the-art. 

On the compilation side, the possible topics include program
analysis, program transformation, and the interaction between 
the compiler and the rest of the system. 
On the architecture side, the possible topics include processor 
micro-architecture, memory hierarchy, multi-threading, and the impact
of emerging hardware trends such as nonvolatile memory (a.k.a. persistent
memory). 
Any hands-on compilers/architecture experience, e.g., LLVM and Gem5,
will definitely help, but I will not assume this prior knowledge. You will be
expected to complete a major project using a compiler framework or an
architecture simulator framework. Since the frameworks are mostly written in
C/C++, students should be familiar with the language features.