Inductive Synthesis of Structurally Recursive Functional Programs from Non-recursive Expressions
DC Field | Value | Language |
---|---|---|
dc.contributor.author | Lee, Woosuk | - |
dc.contributor.author | Cho, Hangyeol | - |
dc.date.accessioned | 2023-05-03T09:43:56Z | - |
dc.date.available | 2023-05-03T09:43:56Z | - |
dc.date.issued | 2023-01 | - |
dc.identifier.issn | 2475-1421 | - |
dc.identifier.issn | 2475-1421 | - |
dc.identifier.uri | https://scholarworks.bwise.kr/erica/handle/2021.sw.erica/112773 | - |
dc.description.abstract | We present a novel approach to synthesizing recursive functional programs from input-output examples. Synthesizing a recursive function is challenging because recursive subexpressions should be constructed while the target function has not been fully defined yet. We address this challenge by using a new technique we call block-based pruning. A block refers to a recursion- and conditional-free expression (i.e., straight-line code) that yields an output from a particular input. We first synthesize as many blocks as possible for each input-output example, and then we explore the space of recursive programs, pruning candidates that are inconsistent with the blocks. Our method is based on an efficient version space learning, thereby effectively dealing with a possibly enormous number of blocks. In addition, we present a method that uses sampled input-output behaviors of library functions to enable a goal-directed search for a recursive program using the library. We have implemented our approach in a system called Trio and evaluated it on synthesis tasks from prior work and on new tasks. Our experiments show that Trio outperforms prior work by synthesizing a solution to 98% of the benchmarks in our benchmark suite. | - |
dc.format.extent | 31 | - |
dc.language | 영어 | - |
dc.language.iso | ENG | - |
dc.publisher | ASSOC COMPUTING MACHINERY | - |
dc.title | Inductive Synthesis of Structurally Recursive Functional Programs from Non-recursive Expressions | - |
dc.type | Article | - |
dc.publisher.location | 미국 | - |
dc.identifier.doi | 10.1145/3571263 | - |
dc.identifier.scopusid | 2-s2.0-85146418028 | - |
dc.identifier.wosid | 000910847500070 | - |
dc.identifier.bibliographicCitation | Proceedings of the ACM on Programming Languages, v.7, no.POPL, pp 2048 - 2078 | - |
dc.citation.title | Proceedings of the ACM on Programming Languages | - |
dc.citation.volume | 7 | - |
dc.citation.number | POPL | - |
dc.citation.startPage | 2048 | - |
dc.citation.endPage | 2078 | - |
dc.type.docType | Article | - |
dc.description.isOpenAccess | Y | - |
dc.description.journalRegisteredClass | scopus | - |
dc.description.journalRegisteredClass | esci | - |
dc.relation.journalResearchArea | Computer Science | - |
dc.relation.journalWebOfScienceCategory | Computer Science, Software Engineering | - |
dc.subject.keywordAuthor | Programming by Example | - |
dc.subject.keywordAuthor | Recursive Functional Programs | - |
dc.subject.keywordAuthor | Synthesis | - |
dc.identifier.url | https://dl.acm.org/doi/10.1145/3571263 | - |
Items in ScholarWorks are protected by copyright, with all rights reserved, unless otherwise indicated.
55 Hanyangdeahak-ro, Sangnok-gu, Ansan, Gyeonggi-do, 15588, Korea+82-31-400-4269 sweetbrain@hanyang.ac.kr
COPYRIGHT © 2021 HANYANG UNIVERSITY. ALL RIGHTS RESERVED.
Certain data included herein are derived from the © Web of Science of Clarivate Analytics. All rights reserved.
You may not copy or re-distribute this material in whole or in part without the prior written consent of Clarivate Analytics.