arXiv · 2201.03758
Predictive Synthesis of API-Centric Code
Abstract
Today's programmers, especially data science practitioners, make heavy use of data-processing libraries (APIs) such as PyTorch, Tensorflow, NumPy, Pandas, and the like. Program synthesizers can provide significant coding assistance to this community of users; however program synthesis also can be slow due to enormous search spaces. In this work, we examine ways in which machine learning can be used to accelerate enumerative program synthesis. We present a deep-learning-based model to predict the sequence of API functions that would be needed to go from a given input to a desired output, both being numeric vectors. Our work is based on two insights. First, it is possible to learn, based on a large number of input-output examples, to predict the likely API function needed in a given situation. Second, and crucially, it is also possible to learn to compose API functions into a sequence, given an input and the desired final output, without explicitly knowing the intermediate values. We show that we can speed up an enumerative program synthesizer by using predictions from our model variants. These speedups significantly outperform previous ways (e.g. DeepCoder) in which researchers have used ML models in enumerative synthesis.
Explore related subjects
Keep this discovery
Daye Nam, Baishakhi Ray, Seohyun Kim, Xianshan Qu, Satish Chandra. 2022-01-11. Predictive Synthesis of API-Centric Code. https://arxiv.org/abs/2201.03758
Cite the original work for its findings. Save a collection to share your selection of sources.