Home > Research > Areas of Research > Languages, Compilers, & Runtime Systems

Languages, Compilers, & Runtime Systems

Static and run-time compiler systems are used to get more performance, robustness, and energy efficiency through intelligent program analysis, transformation, and adaptation. Deep analysis of application behavior identifies opportunities to customize the software to the underlying hardware as well as providing an automatic approach to customize hardware functionality to a set of applications. Dynamic profile or run-time data expose opportunities to optimize the common case or even input-specific optimizations. CSE faculty are developing new compiler methods to optimize applications from mobile to cloud server. Techniques such as software approximate computing unlock performance in applications where 100% output accuracy is neither necessary or even possible. Lightweight dynamic compilation allows an application to be optimized while it is running without disruptions. Other projects explore problems at the interface of architecture, operating systems and program analysis, to help programmers write and maintain reliable parallel software, including support for tolerating concurrency bugs, memory consistency models and deterministic replay. Moreover, faculty within this area explore specialized solutions to greatly boost the performance of specific algorithms or computing frameworks, for instance frameworks that are widely applied in the context of large data applications, such as MapReduce.

Compilers are also key in identifying new opportunities to make use of specialized accelerators. GPUs, FPGAs, and other accelerators provide great opportunities to offload work from traditional processors. Key challenges being investigated are how to find this work, how to match it to the accelerator, and how to do both of these without having the programmer rewrite or restructure applications. Compilers are also used to design customized processor and accelerator architectures. Customized processors bring previously unattainable performance to edge devices (sensors, phones) in important domains such as deep learning, computer vision, and medical imaging.

CSE Faculty

Todd Austin

WebsiteMentoring PlanComputer architecture, robust and secure system design, hardware and software verification, and performance analysis tools and techniques.

Valeria Bertacco

WebsiteMentoring PlanImproving the functional correctness of digital integrated circuits, by developing technology that attacks the issue at design time, in post-silicon, and throughout the lifetime of a digital integrated component, in face of the challenges posed by fragile silicon and extreme design complexity.

Ang Chen

WebsiteMentoring PlanSystems, networking, security.

Peter M. Chen

WebsiteOperating systems, computer security, virtual machines, fault-tolerant computing.

Ryan Huang

WebsiteMentoring PlanOperating systems, distributed systems, cloud and mobile computing, software dependability, program analysis.

Scott Mahlke

WebsiteMentoring PlanCompilers, application-specific processors, computer architecture and microarchitecture, embedded systems

Yatin Manerkar

WebsiteMentoring PlanFormal methods (modeling, verification, and synthesis) for hardware and software, hardware security, memory consistency, cache coherence, concurrency, ethical AI.

Jason Mars

WebsiteMentoring PlanCross-layer systems architectures for emerging applications, datacenter and warehouse-scale computer architecture, and hardware / software co-design.

Satish Narayanasamy

WebsiteMentoring PlanComputer Architecture; Program Analysis; Confidential Computing; Health Systems

Max New

WebsiteMentoring PlanDeveloping and using mathematical tools to ensure correctness, safety and security of programming languages and their implementations.

Cyrus Omar

WebsiteMentoring PlanFundamentally improving the programming experience for computational and data scientists, web app programmers, students and educators, and for people with disabilities who cannot effectively use other programming tools.

Gokul Ravi

WebsiteMentoring PlanQuantum computing: Application-tailored full-stack optimization, Hardware-tailored error mitigation, Hybrid quantum-classical systems, Quantum error correction decoding, Classical simulation for quantum, Resource management (e.g., in the quantum cloud), Scalable quantum compilers; Computer architecture and systems; ML-assisted systems, Accelerating scientific applications.

Karem A. Sakallah

WebsiteMentoring PlanComputer-aided design of electronic systems, Boolean satisfiability, discrete optimization, and hardware and software verification.

Muhammad Shahbaz

WebsiteMentoring PlanComputer Systems, Networks, and Architecture and their interaction with Machine Learning.

Lingjia Tang

WebsiteMentoring PlanComputer architecture and compiler and runtime systems, especially such systems for large scale data centers.

Georgios Tzimpragos

WebsiteMentoring PlanComputer architecture, new models of computation, computing with emerging devices

Xinyu Wang

WebsiteMentoring PlanProgramming Languages, Formal Methods, Software Engineering. Program synthesis, verification, analysis, and testing.

Westley Weimer

WebsiteMentoring PlanProgramming languages; software engineering; medical imaging; program analysis, synthesis and improvement.

ECE Faculty

Stéphane Lafortune

WebsiteSystem and control theory; Discrete event systems; Application to computer and communication systems