Semantic program repair

Software is buggy, and bugs have serious consequences, such as reducing the quality of software products and introducing security vulnerabilities. Since bug fixing is a difficult and tedious process, developers often cannot allocate sufficient time and resources to address all problems, and even critical bugs remain unresolved for years. Automated program repair is a rapidly growing area of research that aims to solve this problem by automatically suggesting patches for buggy code, without or with minimal developer involvement. Despite recent advances, adoption of program repair is hindered by technical challenges such as the scalability problem and the low quality of automatically generated patches. The main idea behind semantic program repair is to address these challenges by using semantic analysis to understand the meaning of software defects. This helps to address the scalability problem, since it enables efficient reasoning on the search space of patches. Besides, semantic program repair helps to alleviate the low quality of automatic fixes, since it is able to precisely controls how changes affect program behaviour, and to compensate the lack of specification in real-world projects. The goal of this project is to develop a practical and intelligent general-purpose semantic program repair system.

Artifacts

Selected publications

Please view full publication list for more details.