Today, the systems of interest involve multi/many-core processors, embedded and distributed systems, and mobile and web applications. Our Programming Languages & Software Engineering (PL & SE) group works on both performance optimizations and correctness problems for such systems, with research that focuses on a wide range of issues, from providing new abstractions for expressing parallelism, security, and real-time properties, to devising new program analysis and compiler optimization techniques, to examining managed runtimes and dynamic optimizations, to defining new techniques for testing and debugging modern software systems.
Current practice in software engineering requires developers to spend enormous effort to produce software that is mostly correct at best. Unfortunately, bugs can cost an enterprise millions of dollars, and security vulnerabilities can have catastrophic effects.
The PL & SE group actively researches new techniques and tools that help programmers find critical but subtle software bugs and vulnerabilities by using powerful foundations in automatic theorem proving and automata theory and by leveraging new testing and debugging approaches. For example, we are developing techniques that find and eliminates (1) reliability bugs in concurrent programs, (2) performance bugs in heavily-used application libraries, (3) security bugs and attacks in critical circuit designs, and (4) subtle bugs in software after it has been deployed.
PL & SE also investigates brand new directions of predictive compiler analysis that are geared toward forecasting the dynamic properties of applications during their execution. Such properties, when conveyed to the execution environment, allow systems to operate at their best efficiency and also allow best matching of resources to the dynamic application needs, thus offering huge gains in performance.
The group actively releases software and tools into the public domain. Our major sources of funding are the National Science Foundation and the Department of Defense (DARPA). We also have a number of industry partners, including Intel, Google, IBM, Microsoft, Infineon, Sony, Toshiba, Greenhills, LogicBlox, and Qualcomm.
- Bill Harris
- Mayur Naik
- Alessandro Orso
- Santosh Pande
Coordinator: Mayur Naik