Online Seminar: Practical Program Repair via On-the-Fly Bytecode Manipulation
Dr. Lingming Zhang: Assistant Professor, Computer Science, University of Texas at Dallas
Abstract: Automated Program Repair (APR) is one of the most recent advances in automated debugging, aiming to directly patch buggy programs with minimal human intervention. Because APR can substantially improve software productivity and quality, it has attracted broad attention from both academia and industry. To patch real-world systems, various advanced APR techniques (e.g., based on code search, learning, mining, code synthesis, and constraint solving) have been proposed to reduce the search space for patches. However, state-of-the-art general-purpose APR techniques still scale poorly.
In this talk, I will revisit the APR problem -- while prior general-purpose APR techniques in the past 10 years mainly simulate the human patching process to patch at the source-code level, I propose to let the machines patch at the machine level (and then translate patches to the source code). Specifically, I will present our PraPR work, the first general-purpose APR via on-the-fly bytecode-level patching within the Java Virtual Machine (JVM) for Java systems. PraPR opens the doors to: (1) over 10X faster APR without patch recompilation and program reloading, (2) freestanding APR without mining and learning to avoid the dataset overfitting issue, and (3) universal APR for systems with/without source code information and even for multiple popular JVM languages (such as Kotlin, Scala, and Groovy). Later in this talk, I will also present my group's other ongoing work built on PraPR, such as how to empower APR to help manual debugging even for bugs that APR cannot directly fix. Lastly, I will talk about the deployment of our work in Alibaba, scaling general-purpose APR to million lines of code.
Bio: Dr. Lingming Zhang is an assistant professor in the Computer Science Department at the University of Texas at Dallas. He obtained his Ph.D. degree from the University of Texas at Austin. His main research interests are in Software Engineering and Programming Languages, focusing on building advanced software testing and debugging systems to detect, localize, and fix software bugs automatically. His research also involves techniques from Machine Learning and Formal Methods for more powerful software testing and debugging. He is a recipient of NSF CAREER Award, NSF CRII Award, Google Faculty Award, SAMSUNG GRO Award, and multiple best/distinguished paper awards. His research has been supported by NSF, Alibaba, Amazon, Futurewei, and NVIDIA. More information available at: http://www.utdallas.edu/~lxz144130.