Synthesizing Programs with Continuous Optimization
Shantanu Mandal, Todd A. Anderson, Javier Turek, Justin Gottschlich,, Abdullah Muzahid

TL;DR
This paper introduces GENESYS, a novel approach to program synthesis that formulates the problem as a continuous optimization task and employs evolutionary strategies, outperforming existing methods in synthesis efficiency.
Contribution
The paper presents a new continuous optimization formulation for program synthesis and a mapping scheme, demonstrating improved synthesis rates over prior discrete and continuous methods.
Findings
GENESYS synthesizes 28% more programs of length 10 within the same time budget.
The continuous formulation enables more efficient exploration of program space.
GENESYS outperforms several recent synthesis techniques in empirical evaluations.
Abstract
Automatic software generation based on some specification is known as program synthesis. Most existing approaches formulate program synthesis as a search problem with discrete parameters. In this paper, we present a novel formulation of program synthesis as a continuous optimization problem and use a state-of-the-art evolutionary approach, known as Covariance Matrix Adaptation Evolution Strategy to solve the problem. We then propose a mapping scheme to convert the continuous formulation into actual programs. We compare our system, called GENESYS, with several recent program synthesis techniques (in both discrete and continuous domains) and show that GENESYS synthesizes more programs within a fixed time budget than those existing schemes. For example, for programs of length 10, GENESYS synthesizes 28% more programs than those existing schemes within the same time budget.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Evolutionary Algorithms and Applications · Software Testing and Debugging Techniques
