Combining model finder and genetic programming into a general purpose automatic program synthesizer - Correia, Alexandre; Iyoda, Juliano; Mota, Alexandre (Information processing letters, 2020)
•PSMF2 is a new general purpose automatic program synthesizer that combines model checking and genetic programming.•PSMF2 introduces soft sketches as user intent.•PSMF2 uses Input/Output examples, with or without soft sketches.•PSMF2 has synthesized seven well-known programs used by many benchmarks in program synthesis. Program synthesis aims to mechanize the task of programming from the user intent (expressed in various forms like pre/post conditions, examples, sketches, etc). There are many approaches to program synthesis that are usually implemented in isolation: deductive, syntax-based, inductive, etc. In this paper, we describe PSMF2, a program synthesizer that combines model finder and genetic programming. PSMF2 takes as user intent examples and a soft sketch: a new kind of user intent defined as a set of commands that must appear in the synthesized program (and that are in no particular order of execution). The output of PSMF2 is a general purpose imperative program. The combination of inductive synthesis and genetic programming has allowed PSMF2 to synthesize 7 programs (IntSQRT, Majority of 5, Majority of 8, Max of 4, Modulo, Factorial, and Fibonacci) found in the SyGuS competition, the iJava and IntroClass, and the Genetic programming communities. We carried out an empirical evaluation on the synthesis time of these 7 programs and the mean time varied from 56.4 seconds (Majority of 5) to 15.9 minutes (Fibonacci).