Automated program repair is an emerging and exciting field of research, which allows for automated rectification of errors and vulnerabilities. The use of automated program repair can be myriad, such as (a) improving programmer productivity (b) automated patching of security vulnerabilities, (c) self-healing software for autonomous devices such as drones, as well as (d) use of repair in introductory programming education by grading and providing hints for programming assignments. We will first provide a discussion of existing approaches to program repair, as well as existing repair tools. We will thus discuss various approaches to automated repair including search based repair, semantic repair, and learning guided repair. One of the key technical challenges in achieving automated program repair, is the lack of formal specifications of intended program behavior. In this talk, we will conceptualize the use of symbolic execution approaches and tools for extracting such specifications. This is done by analyzing a buggy program against selected tests, or against reference implementations. This also provides a completely novel use of symbolic execution beyond verification, and navigation of large search spaces. The field of program repair in its current form can construct “imaginative” patches, serves as a test-bed for the grand-challenge of automated programming, and contributes to the vision of trustworthy self-healing software. Towards the end, we will discuss concrete applications of program repair in programming education. We will conclude with a forward looking view of the field by discussing newer applications of program repair.
Abhik Roychoudhury is a Professor of Computer Science at National University of Singapore. His research focuses on software testing and analysis, software security and trust-worthy software construction. His research group has built scalable techniques for testing, debugging and repair of programs using systematic semantic analysis. The capability to automatically repair programs at a large scale contributes to the vision of self-healing software.He has been an ACM Distinguished Speaker (2013-19). He is currently leading the TSUNAMi center, a large five-year long targeted research effort funded by National Research Foundation in the domain of trust-worthy software. He is also the Lead Principal Investigator of the Singapore Cyber-security Consortium, which is a consortium of over 30 companies in the cyber-security space engaging with academia for research and collaboration.