Combining model finder and genetic programming into a general purpose automatic program synthesizer

•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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Information processing letters Ročník 154; s. 105866
Hlavní autoři: Correia, Alexandre, Iyoda, Juliano, Mota, Alexandre
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier B.V 01.02.2020
Témata:
ISSN:0020-0190, 1872-6119
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:•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).
ISSN:0020-0190
1872-6119
DOI:10.1016/j.ipl.2019.105866