Fast and Reliable Program Synthesis via User Interaction

The performance of programming-by-example systems varies significantly across different tasks and even across different examples in one task. The key issue is that the search space depends on the given examples in a complex way. In particular, scalable synthesizers typically rely on a combination of...

Full description

Saved in:
Bibliographic Details
Published inIEEE/ACM International Conference on Automated Software Engineering : [proceedings] pp. 963 - 975
Main Authors Chen, Yanju, Wang, Chenglong, Wang, Xinyu, Bastani, Osbert, Feng, Yu
Format Conference Proceeding
LanguageEnglish
Published IEEE 11.09.2023
Subjects
Online AccessGet full text
ISSN2643-1572
DOI10.1109/ASE56229.2023.00129

Cover

More Information
Summary:The performance of programming-by-example systems varies significantly across different tasks and even across different examples in one task. The key issue is that the search space depends on the given examples in a complex way. In particular, scalable synthesizers typically rely on a combination of machine learning to prioritize search order and deduction to prune search space, making it hard to quantitatively reason about how much an example speeds up the search. We propose a novel approach for quantifying the effectiveness of an example at reducing synthesis time. Based on this technique, we devise an algorithm that actively queries the user to obtain additional examples that significantly reduce synthesis time. We evaluate our approach on 30 challenging benchmarks across two different data science domains. Even with ineffective initial user-provided examples for pruning, our approach on average achieves a 6.0× speed-up in synthesis time compared to state-of-the-art synthesizers.
ISSN:2643-1572
DOI:10.1109/ASE56229.2023.00129