직함: [seminar] Toward More Accessible and Trustworthy Program Synthesis
Program synthesis is the process of automatically generating programs that meet the user’s intent. In the last two decades, this traditional research area has experienced a renaissance and witnessed emerging programming paradigms, automated tools, and prominent applications. However, the promising progress also exposes a tension between making program synthesis more user-friendly and guaranteeing the quality of the produced code.
In this talk, I will discuss two projects from our work on pushing further toward more accessible and trustworthy program synthesis. First, I will present Comparative Synthesis, an interactive synthesis framework that learns near-optimal programs through comparative queries, without explicitly specified optimization objectives. We develop a voting-guided learning algorithm which provides a provable guarantee on the quality of the found program. We have implemented this approach in a system Net10Q for wide-area network design. Experiments with oracles and a pilot user study with network practitioners and researchers show Net10Q is effective in finding allocations that meet diverse user policy goals in an interactive fashion. Second, I will present Toshokan, a bootstrapping synthesis framework which extends traditional counterexample guided inductive synthesis (CEGIS) with an automatically built library model from logged behavior of the library. Toshokan has been implemented and integrated into our in-house Java program synthesizer JSketch. Comparing to vanilla JSketch using mocks or models, Toshokan reduces up to 159 lines of code of required manual inputs, at the cost of less than 40 seconds of performance overheads.
Xiaokang Qiu is an Associate Professor with the Elmore Family School of Electrical and Computer Engineering at Purdue University. He finished his Ph.D. in Computer Science at the University of Illinois at Urbana-Champaign in 2013. Before starting at Purdue in 2016, he was a postdoctoral associate at the Massachusetts Institute of Technology. His current research interests lie in the algorithmic aspects of software verification and synthesis, and their applications. He is a member of the Purdue Center for Programming Principles and Software Systems (PurPL) and leads the Computer-Aided Programming (CAP) group at Purdue. He received a Seed for Success award from Purdue University (2020), an NSF CAREER award (2021) and an U.S. Air Force summer faculty fellowship (2022). He is a senior member of ACM and IEEE.