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.