Automated program repair relying on static analysis complements test-driven repair, since it does not require failing tests to repair a bug, and it avoids test-overfitting by considering program properties. Due to the rich variety and complexity of program analyses, existing static program repair techniques are tied to specific analysers, and thus repair only narrow classes of defects. To develop a general-purpose static program repair framework that targets a wide range of properties and programming languages, we propose to integrate program repair with Datalog-based analysis. Datalog solvers are programmable fixed point engines which can be used to encode many program analysis problems in a modular fashion. The program under analysis is encoded as Datalog facts, while the fixed point equations of the program analysis are expressed as recursive Datalog rules. In this context, we view repairing the program as modifying the corresponding Datalog facts. This is accomplished by a novel technique, symbolic execution of Datalog, that evaluates Datalog queries over a symbolic database of facts, instead of a concrete set of facts. The result of symbolic query evaluation allows us to infer what changes to a given set of Datalog facts repair the program so that it meets the desired analysis goals. We developed a symbolic executor for Datalog called Symlog, on top of which we built a repair tool SymlogRepair. We show the versatility of our approach on several analysis problems — repairing null pointer exceptions in Java programs, repairing data leaks in Python notebooks, and repairing four types of security vulnerabilities in Solidity smart contracts.
Wed 6 DecDisplayed time zone: Pacific Time (US & Canada) change
16:00 - 18:00 | Automated Repair IIJournal First / Research Papers at Golden Gate C3 Chair(s): Luciano Baresi Politecnico di Milano | ||
16:00 15mTalk | A Large-scale Empirical Review of Patch Correctness Checking Approaches Research Papers Jun Yang UIUC, Yuehan Wang University of Illinois at Urbana-Champaign, Yiling Lou Fudan University, Ming Wen Huazhong University of Science and Technology, Lingming Zhang University of Illinois at Urbana-Champaign Media Attached | ||
16:15 15mTalk | Program Repair Guided by Datalog-Defined Static Analysis Research Papers Yu Liu Beijing University of Technology, Sergey Mechtaev University College London, Pavle Subotic Microsoft, Abhik Roychoudhury National University of Singapore Media Attached | ||
16:30 15mTalk | SynShine: Improved Fixing of Syntax Errors Journal First Toufique Ahmed University of California at Davis, Noah Rose Ledesma UC Davis, Prem Devanbu University of California at Davis Media Attached | ||
16:45 15mTalk | Baldur: Whole-Proof Generation and Repair with Large Language Models Research Papers Emily First University of California, San Diego, Markus Rabe Google, Talia Ringer University of Illinois at Urbana-Champaign, Yuriy Brun University of Massachusetts Media Attached | ||
17:00 15mTalk | KG4CraSolver: Recommending Crash Solutions via Knowledge Graph Research Papers Xueying Du Fudan University, Yiling Lou Fudan University, Mingwei Liu Fudan University, Xin Peng Fudan University, Tianyong Yang Fudan University Pre-print Media Attached | ||
17:15 15mTalk | [Remote] Automated and Context-Aware Repair of Color-Related Accessibility Issues for Android Apps Research Papers Yuxin Zhang Tianjin University, Sen Chen College of Intelligence and Computing, Tianjin University, Lingling Fan College of Cyber Science, Nankai University, Chunyang Chen Monash University, Xiaohong Li Tianjin University Media Attached | ||
17:30 15mTalk | [Remote] Semantic Test Repair for Web applications Research Papers Xiaofang Qi School of Computer Science and Engineering, Southeast University, Xiang Qian School of Computer Science and Engineering, Southeast University, Yanhui Li Nanjing University Media Attached |