{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/stepping-stones-to-inductive-synthesis-of-low","title":"Stepping Stones to Inductive Synthesis of Low-Level Looping Programs","arxiv_id":"1811.10665","date":"2018-11-26","proceeding":null,"authors":["Christopher D. Rosin"],"abstract":"Inductive program synthesis, from input/output examples, can provide an\nopportunity to automatically create programs from scratch without presupposing\nthe algorithmic form of the solution. For induction of general programs with\nloops (as opposed to loop-free programs, or synthesis for domain-specific\nlanguages), the state of the art is at the level of introductory programming\nassignments. Most problems that require algorithmic subtlety, such as fast\nsorting, have remained out of reach without the benefit of significant\nproblem-specific background knowledge. A key challenge is to identify cues that\nare available to guide search towards correct looping programs. We present\nMAKESPEARE, a simple delayed-acceptance hillclimbing method that synthesizes\nlow-level looping programs from input/output examples. During search, delayed\nacceptance bypasses small gains to identify significantly-improved stepping\nstone programs that tend to generalize and enable further progress. The method\nperforms well on a set of established benchmarks, and succeeds on the\npreviously unsolved \"Collatz Numbers\" program synthesis problem. Additional\nbenchmarks include the problem of rapidly sorting integer arrays, in which we\nobserve the emergence of comb sort (a Shell sort variant that is empirically\nfast). MAKESPEARE has also synthesized a record-setting program on one of the\npuzzles from the TIS-100 assembly language programming game.","url_abs":"http://arxiv.org/abs/1811.10665v1","url_pdf":"http://arxiv.org/pdf/1811.10665v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"stepping-stones-to-inductive-synthesis-of-low","repo_url":"https://github.com/ChristopherRosin/MAKESPEARE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"program-synthesis","task_name":"Program Synthesis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}