My research interests include software engineering, programming languages and formal methods. My current research is focused on automated program repair techniques that eliminate bugs in program source code. My goal is to develop a general-purpose program repair system — a system that is able to address many kinds of defects in commodity software. The underlying principle behind my research consists in understanding the meaning of software defects via semantic analysis, which helps to navigate the conceptually large search space of patches and to compensate the lack of specification in real-world software.
- Angelix — Semantics-based program repair tool for C programs. It uses symbolic execution in order to extract specification from tests or a reference implementation, and generates a patch using program synthesis. Angelix is the first constraints-based program repair technique that scales to large real-world programs.
- f1x — Test-driven automated program repair tool for C/C++ programs. f1x is designed to be efficient, robust and easy-to-use. It relies on lightweight analyses to efficiently explore large search spaces and guarantees to find the optimal patch according to a given cost function.
- program-repair.org — Community-driven website, whose goal is to facilitate discovery, access and systematization of data related to automated program repair research.
- Codeflaws — Program repair benchmark consisting of 3902 bugs from Codeforces programming competition for evaluating program repair tools across different defect classes.