Contact Information
Program Analysis and Software Engineering
bdemsky@uci.edu
(949) 824-0356
https://plrg.ics.uci.edu/
Professor Brain Demsky’s Research
Brian Demsky’s is a Professor in the Department of Electrical Engineering and Computer Science at the University of California, Irvine. His research interests are programming languages, software engineering, security, compilation, parallel software, program analysis, and program understanding. Some of his group’s ongoing research include:
- Model Checking and Testing Concurrent Data Structures: A critical component of making effective use of multi-core processors is developing scalable concurrent data structures. Developing concurrent data structures for realistic (and thus relaxed) memory models such as the C/C++11 memory model is extremely challenging. Even experts typically make subtle mistakes. We have developed the first practical tool for exhaustively unit testing C/C++11 data structures.
- Language-Based Tools for Security: We are developing tools that learn the expected behavior of common applications and detect attacks as deviations from this behavior. Our tools can handle large software systems including MS Office, Chrome, and Adobe Acrobat.
- Languages and Analysis for Parallelization: We do research on language designs and static and dynamic analysis for parallelization.
- Language Design for Robust Software Systems: We have developed a static analysis that ensure that embedded systems can recover from arbitrary state corruption. We have developed languages that can isolate failures to components of a software system.
- Bristlecone: Robust Software Systems: We have a developed a language-based approach for building robust software systems. This approach decomposes software systems into a set of a tasks, and uses task specifications to describe how to combine these tasks. In the event of a failure, our system reasons about these task specifications to adapt the execution and continue to provide service.
- Garm: Protecting Private Data in Legacy Applications: We have developed Garm, a new tool for tracing data provenance and enforcing data access policies with arbitrary binaries. Users can use Garm to attach access policies to arbitrary data files (or parts of files) and Garm ensures that all accesses to the data across all applications and executions are consistent with the policy.
- Data Structure Repair: We have developed data structure repair, a technique to enable programs to recover from data structure corruption errors. This technique can be applied to both volatile data structures inside a running program and persistent data structures stored on disk.