Bootstrapping Library-Based Synthesis

June 5, 2023
2:00pm ET
Cummings 610
Speaker: Xiaokang Qiu
Host: Jeff Foster

Abstract

Constraint-based program synthesis technology has been widely used in numerous settings. However, synthesizing programs that use libraries remains a major challenge. To handle complex or black-box libraries, the state of the art is to provide carefully crafted mocks or models to the synthesizer, requiring extra manual work. We address this challenge by proposing Toshokan, a new synthesis framework as an alternative approach in which library-using programs can be generated without any user-provided artifacts at the cost of moderate performance overhead. The framework extends the classic counter- example-guided synthesis framework with a bootstrapping, log-based library model. The model collects input-output samples from running failed candidate programs on witness inputs. We prove that the framework is sound when bounded verification could be achieved, and also complete if the underlying synthesizer and verifier promise to produce minimal outputs. We implement and incorporate the framework to JSketch, a Java sketching tool. Experiments show that Toshokan can successfully synthesize programs that use a wide variety of libraries, ranging from mathematical functions to data structures. Comparing to state-of-the-art synthesis algorithms which use mocks or models, Toshokan reduces up to 159 lines of code of required manual inputs, at the cost of less than 40 second of performance overheads.

Bio:

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 Air Force summer faculty fellowship (2022). He is a senior member of ACM and IEEE.