Architectures, Compiler Optimization, and Embedded Systems
Research in this area explores the design, development, and use of computer architectures and compilers to improve computational efficiency, throughput and security. Efficiency, throughput and security of code execution at the machine level is influenced by the machine architectures, the static and dynamic compilation of high-level languages, and use of parallelism and multi-processors. Specific research in this field includes enhancement of computer micro-architectures and compilers to support system security at both the source code and the binary level, leveraging machine learning techniques to improve compilers, using dynamic binary translation and optimization techniques to support system virtualization, and program execution monitoring for optimization, testing, debugging and security. Recent accomplishments include the first learning-based approach to enhance dynamic binary translation for system virtualization, compiler techniques to enhance security and memory performance of modern multicore processors, and various techniques to localize and fix concurrency bugs in parallel programs.