course number instructor title
CS 6304 Changhee Jung Topics in Advanced Compilers and Computer Architecture

 

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.  At least one course on computer architecture
(including caching, branch prediction, and virtual memory), one course on
compilers (i.e., CS 5304) or programming languages (i.e., CS 5314), and some
experience with assembly code (any architecture). Operating system experience
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, and all of the frameworks I know of require very good
C, C++, or Java programming skills.