Available to view recording at: https://mediaspace.illinois.edu/media/1_nlzeylwt
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: I am very excited to start this new semester in Illinois CS (I am looking for PhD students and open for collaborations)! Before joining Illinois, I was an assistant professor at UTD CS for the past 6 years. My 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. My research also involves techniques from Machine Learning and Formal Methods for more powerful software testing and debugging. I am a recipient of NSF CAREER Award, NSF CRII Award, Google Faculty Award, SAMSUNG GRO Award, and multiple best/distinguished paper awards. More information about me and my research can be found at: http://lingming.cs.illinois.edu/
by: Grigore Rosu