Trace-Guided Inductive Synthesis of Recursive Functional Programs
We propose a novel trace-guided approach to tackle the challenges of ambiguity and generalization in synthesis of recursive functional programs from input-output examples. Our approach augments the search space of programs with recursion traces consisting of recursive subcalls of the programs. Our m...
Saved in:
| Published in: | Proceedings of ACM on programming languages Vol. 7; no. PLDI; pp. 860 - 883 |
|---|---|
| Main Authors: | , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York, NY, USA
ACM
06.06.2023
|
| Subjects: | |
| ISSN: | 2475-1421, 2475-1421 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | We propose a novel trace-guided approach to tackle the challenges of ambiguity and generalization in synthesis of recursive functional programs from input-output examples. Our approach augments the search space of programs with recursion traces consisting of recursive subcalls of the programs. Our method is based on a new version space algebra (VSA) for succinct representation and efficient manipulation of pairs of recursion traces and programs that are consistent with each other. We have implemented this approach in a tool called SyRup and evaluated it on benchmarks from prior work. Our evaluation demonstrates that SyRup not only requires fewer examples to achieve a certain success rate than existing synthesizers, but is also less sensitive to the quality of the examples. |
|---|---|
| AbstractList | We propose a novel trace-guided approach to tackle the challenges of ambiguity and generalization in synthesis of recursive functional programs from input-output examples. Our approach augments the search space of programs with recursion traces consisting of recursive subcalls of the programs. Our method is based on a new version space algebra (VSA) for succinct representation and efficient manipulation of pairs of recursion traces and programs that are consistent with each other. We have implemented this approach in a tool called SyRup and evaluated it on benchmarks from prior work. Our evaluation demonstrates that SyRup not only requires fewer examples to achieve a certain success rate than existing synthesizers, but is also less sensitive to the quality of the examples. |
| ArticleNumber | 141 |
| Author | Radhakrishna, Arjun Yuan, Yongwei Samanta, Roopsha |
| Author_xml | – sequence: 1 givenname: Yongwei orcidid: 0000-0002-2619-2288 surname: Yuan fullname: Yuan, Yongwei email: yuan311@purdue.edu organization: Purdue University, USA – sequence: 2 givenname: Arjun orcidid: 0000-0002-5559-5932 surname: Radhakrishna fullname: Radhakrishna, Arjun email: arradha@microsoft.com organization: Microsoft, USA – sequence: 3 givenname: Roopsha orcidid: 0009-0000-2456-217X surname: Samanta fullname: Samanta, Roopsha email: roopsha@purdue.edu organization: Purdue University, USA |
| BookMark | eNptj0FLw0AQhRepYK3Fu6fcPEV3d5JscizF1kJB0XoO29lZXUkT2U2E_nsTWkVEGJhh3sfjvXM2qpuaGLsU_EaIJL2FtBAyTU_YWCYqjUUixejXfcamIbxzzkUBSQ7FmM02XiPFy84ZMtGqNh227pOi533dvlFwIWps9ETY-TC8F13d602tq-jRN69e78IFO7W6CjQ97gl7Wdxt5vfx-mG5ms_WsZZKtXFhAXIwnFuj-pHIM6202hInwC0KUonMENNEGLSgCQAoy41V3KJRWQ4Tdn3wRd-E4MmWH97ttN-XgpdD-fJYvifjPyS6Vg-xW69d9Q9_deA17n5Mv8UvPyRlEw |
| CitedBy_id | crossref_primary_10_1145_3729264 crossref_primary_10_3390_info16050401 crossref_primary_10_1145_3656381 crossref_primary_10_1145_3656418 crossref_primary_10_1145_3689789 crossref_primary_10_1145_3656453 crossref_primary_10_1145_3648440 crossref_primary_10_1017_S0956796825100063 |
| Cites_doi | 10.1145/2737924.2737952 10.1145/3408991 10.1145/2908080.2908093 10.1145/2908080.2908102 10.1145/2837614.2837666 10.1007/978-3-030-81685-8_39 10.1145/3290327 10.1145/3133886 10.1145/2737924.2737977 10.1145/3547622 10.1145/2980983.2908103 10.1145/3434335 10.1007/978-3-662-54577-5_18 10.1145/1806596.1806632 10.1145/1926385.1926423 10.1145/2509136.2509555 10.1145/3498682 10.1145/2983990.2984030 10.1145/3428295 10.1145/322217.322228 10.1007/3-540-58085-9_72 10.1109/ICSE.2017.44 10.5281/zenodo.7812616 10.1145/1706356.1706364 10.1145/3571263 10.1145/321992.322002 10.1145/321420.321422 10.1145/3158151 10.1007/978-3-030-25540-4_17 10.1145/2814270.2814310 10.1145/3290386 10.1016/0004-3702(82)90040-6 10.1145/2737924.2738007 10.1023/A:1025671410623 10.1145/2594291.2594333 10.1145/3453483.3454087 10.1007/978-3-642-39799-8_67 10.1007/978-3-319-21668-3_10 10.1145/3519939.3523726 10.1145/1706299.1706339 10.24963/ijcai.2017/227 10.1145/3485544 10.1145/3276525 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3591255 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 883 |
| ExternalDocumentID | 10_1145_3591255 3591255 |
| GrantInformation_xml | – fundername: National Science Foundation grantid: 1846327 funderid: http://dx.doi.org/10.13039/100000001 |
| GroupedDBID | AAKMM AAYFX ACM ADPZR AIKLT ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX AEFXT AEJOY AKRVB CITATION |
| ID | FETCH-LOGICAL-a277t-9f3383d00fd7fd72c06a7a7be0e3cbc1e7426cc541dcf3ae333e68df70fcd7683 |
| ISICitedReferencesCount | 10 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001005701900037&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:48:32 EST 2025 Tue Nov 18 22:27:53 EST 2025 Fri Feb 21 04:13:08 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | PLDI |
| Keywords | Recursive Functional Programs Program Synthesis |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution 4.0 International License. |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a277t-9f3383d00fd7fd72c06a7a7be0e3cbc1e7426cc541dcf3ae333e68df70fcd7683 |
| ORCID | 0009-0000-2456-217X 0000-0002-2619-2288 0000-0002-5559-5932 |
| OpenAccessLink | https://dl.acm.org/doi/10.1145/3591255 |
| PageCount | 24 |
| ParticipantIDs | crossref_primary_10_1145_3591255 crossref_citationtrail_10_1145_3591255 acm_primary_3591255 |
| PublicationCentury | 2000 |
| PublicationDate | 2023-06-06 |
| PublicationDateYYYYMMDD | 2023-06-06 |
| PublicationDate_xml | – month: 06 year: 2023 text: 2023-06-06 day: 06 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2023 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | Woosuk Lee. 2021. Combining the Top-down Propagation and Bottom-up Enumeration for Inductive Program Synthesis. Proceedings of the ACM on Programming Languages, 5, POPL (2021), Jan., 1–28. issn:2475-1421 https://doi.org/10.1145/3434335 10.1145/3434335 Saswat Padhi, Todd Millstein, Aditya Nori, and Rahul Sharma. 2019. Overfitting in Synthesis: Theory and Practice. In Computer Aided Verification, Isil Dillig and Serdar Tasiran (Eds.) (Lecture Notes in Computer Science). Springer International Publishing, Cham. 315–334. isbn:978-3-030-25540-4 https://doi.org/10.1007/978-3-030-25540-4_17 10.1007/978-3-030-25540-4_17 Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, and Philippe Suter. 2010. Complete Functional Synthesis. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’10). Association for Computing Machinery, New York, NY, USA. 316–329. isbn:978-1-4503-0019-3 https://doi.org/10.1145/1806596.1806632 10.1145/1806596.1806632 Oleksandr Polozov and Sumit Gulwani. 2015. FlashMeta: A Framework for Inductive Program Synthesis. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, Pittsburgh PA USA. 107–126. isbn:978-1-4503-3689-5 https://doi.org/10.1145/2814270.2814310 10.1145/2814270.2814310 Azadeh Farzan, Danya Lette, and Victor Nicolet. 2022. Recursion Synthesis with Unrealizability Witnesses. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022). Association for Computing Machinery, New York, NY, USA. 244–259. isbn:978-1-4503-9265-5 https://doi.org/10.1145/3519939.3523726 10.1145/3519939.3523726 Woosuk Lee and Hangyeol Cho. 2023. Inductive Synthesis of Structurally Recursive Functional Programs from Non-recursive Expressions. Proceedings of the ACM on Programming Languages, 7, POPL (2023), Jan., 70:2048–70:2078. https://doi.org/10.1145/3571263 10.1145/3571263 Yongwei Yuan, Arjun Radhakrishna, and Roopsha Samanta. 2023. Artifact for "Trace-Guided Inductive Synthesis of Recursive Functional Programs". https://doi.org/10.5281/zenodo.7812616 10.5281/zenodo.7812616 Rajeev Alur, Pavol Černý, and Arjun Radhakrishna. 2015. Synthesis Through Unification. In Computer Aided Verification, Daniel Kroening and Corina S. Păsăreanu (Eds.) (Lecture Notes in Computer Science). Springer International Publishing, Cham. 163–179. isbn:978-3-319-21668-3 https://doi.org/10.1007/978-3-319-21668-3_10 10.1007/978-3-319-21668-3_10 Peter J. Downey, Ravi Sethi, and Robert Endre Tarjan. 1980. Variations on the Common Subexpression Problem. J. ACM, 27, 4 (1980), Oct., 758–771. issn:0004-5411, 1557-735X https://doi.org/10.1145/322217.322228 10.1145/322217.322228 Xinyu Wang, Sumit Gulwani, and Rishabh Singh. 2016. FIDEX: Filtering Spreadsheet Data Using Examples. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016). Association for Computing Machinery, New York, NY, USA. 195–213. isbn:978-1-4503-4444-9 https://doi.org/10.1145/2983990.2984030 10.1145/2983990.2984030 James Koppel, Zheng Guo, Edsko de Vries, Armando Solar-Lezama, and Nadia Polikarpova. 2022. Searching Entangled Program Spaces. Proceedings of the ACM on Programming Languages, 6, ICFP (2022), Aug., 91:23–91:51. https://doi.org/10.1145/3547622 10.1145/3547622 John K. Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing Data Structure Transformations from Input-Output Examples. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15). Association for Computing Machinery, New York, NY, USA. 229–239. isbn:978-1-4503-3468-6 https://doi.org/10.1145/2737924.2737977 10.1145/2737924.2737977 Robert W. Floyd. 1967. Nondeterministic Algorithms. J. ACM, 14, 4 (1967), Oct., 636–644. issn:0004-5411 https://doi.org/10.1145/321420.321422 10.1145/321420.321422 Yuepeng Wang, Xinyu Wang, and Isil Dillig. 2018. Relational Program Synthesis. Proceedings of the ACM on Programming Languages, 2, OOPSLA (2018), Oct., 1–27. issn:2475-1421 https://doi.org/10.1145/3276525 10.1145/3276525 Xinyu Wang, Isil Dillig, and Rishabh Singh. 2017. Synthesis of Data Completion Scripts Using Finite Tree Automata. Proceedings of the ACM on Programming Languages, 1, OOPSLA (2017), Oct., 1–26. issn:2475-1421 https://doi.org/10.1145/3133886 10.1145/3133886 Shachar Itzhaky, Hila Peleg, Nadia Polikarpova, Reuben N. S. Rowe, and Ilya Sergey. 2021. Cyclic Program Synthesis. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA. 944–959. isbn:978-1-4503-8391-2 https://doi.org/10.1145/3453483.3454087 10.1145/3453483.3454087 James Bornholt, Emina Torlak, Dan Grossman, and Luis Ceze. 2016. Optimizing Synthesis with Metasketches. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16). Association for Computing Machinery, New York, NY, USA. 775–788. isbn:978-1-4503-3549-2 https://doi.org/10.1145/2837614.2837666 10.1145/2837614.2837666 Tessa Lau, Steven A. Wolfman, Pedro Domingos, and Daniel S. Weld. 2003. Programming by Demonstration Using Version Space Algebra. Machine Learning, 53, 1 (2003), Oct., 111–156. issn:1573-0565 https://doi.org/10.1023/A:1025671410623 10.1023/A:1025671410623 Rastislav Bodik, Satish Chandra, Joel Galenson, Doug Kimelman, Nicholas Tung, Shaon Barman, and Casey Rodarmor. 2010. Programming with Angelic Nondeterminism. In Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’10). Association for Computing Machinery, New York, NY, USA. 339–352. isbn:978-1-60558-479-9 https://doi.org/10.1145/1706299.1706339 10.1145/1706299.1706339 Vu Le and Sumit Gulwani. 2014. FlashExtract: A Framework for Data Extraction by Examples. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). Association for Computing Machinery, New York, NY, USA. 542–553. isbn:978-1-4503-2784-8 https://doi.org/10.1145/2594291.2594333 10.1145/2594291.2594333 Sumit Gulwani. 2011. Automating String Processing in Spreadsheets Using Input-Output Examples. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’11). Association for Computing Machinery, New York, NY, USA. 317–330. isbn:978-1-4503-0490-0 https://doi.org/10.1145/1926385.1926423 10.1145/1926385.1926423 Shraddha Barke, Hila Peleg, and Nadia Polikarpova. 2020. Just-in-Time Learning for Bottom-up Enumerative Synthesis. Proceedings of the ACM on Programming Languages, 4, OOPSLA (2020), Nov., 1–29. issn:2475-1421, 2475-1421 https://doi.org/10.1145/3428295 10.1145/3428295 Martin Hofmann. 2010. IGOR2 - an Analytical Inductive Functional Programming System: Tool Demo. In Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM ’10). Association for Computing Machinery, New York, NY, USA. 29–32. isbn:978-1-60558-727-1 https://doi.org/10.1145/1706356.1706364 10.1145/1706356.1706364 Reudismam Rolim, Gustavo Soares, Loris D’Antoni, Oleksandr Polozov, Sumit Gulwani, Rohit Gheyi, Ryo Suzuki, and Björn Hartmann. 2017. Learning Syntactic Program Transformations from Examples. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). 404–415. issn:1558-1225 https://doi.org/10.1109/ICSE.2017.44 10.1109/ICSE.2017.44 Cyrus Omar, Ian Voysey, Ravi Chugh, and Matthew A. Hammer. 2019. Live Functional Programming with Typed Holes. Proceedings of the ACM on Programming Languages, 3, POPL (2019), Jan., 1–32. issn:2475-1421, 2475-1421 https://doi.org/10.1145/3290327 10.1145/3290327 Xinyu Wang, Isil Dillig, and Rishabh Singh. 2018. Program Synthesis Using Abstraction Refinement. Proceedings of the ACM on Programming Languages, 2, POPL (2018), Jan., 1–30. issn:2475-1421 https://doi.org/10.1145/3158151 10.1145/3158151 Kevin Ellis and Sumit Gulwani. 2017. Learning to Learn Programs from Examples: Going Beyond Program Structure. In Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence. International Joint Conferences on Artificial Intelligence Organization, Melbourne, Australia. 1638–1645. isbn:978-0-9992411-0-3 https://doi.org/10.24963/ijcai.2017/227 10.24963/ijcai.2017/227 Phillip D. Summers. 1977. A Methodology for LISP Program Construction from Examples. J. ACM, 24, 1 (1977), Jan., 161–175. issn:0004-5411 https://doi.org/10.1145/321992.322002 10.1145/321992.322002 Ruyi Ji, Jingtao Xia, Yingfei Xiong, and Zhenjiang Hu. 2021. Generalizable Synthesis through Unification. Proceedings of the ACM on Programming Languages, 5, OOPSLA (2021), Oct., 1–28. issn:2475-1421 https://doi.org/10.1145/3485544 10.1145/3485544 Nadia Polikarpova, Ivan Kuraj, and Armando Solar-Lezama. 2016. Program Synthesis from Polymorphic Refinement Types. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’16). Association for Computing Machinery, New York, NY, USA. 522–538. isbn:978-1-4503-4261-2 https://doi.org/10.1145/2908080.2908093 10.1145/2908080.2908093 Rajeev Alur, Arjun Radhakrishna, and Abhishek Udupa. 2017. Scaling Enumerative Program Synthesis via Divide and Conquer. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). 10205, Springer Berlin Heidelberg, Berlin, Heidelberg. 319–336. isbn:978-3-662-54576-8 978-3-662-54577-5 https://doi.org/10.1007/978-3-662-54577-5_18 10.1007/978-3-662-54577-5_18 Azadeh Farzan and Victor Nicolet. 2021. Counterexample-Guided Partial Bounding for Recursive Function Synthesis. In Computer Aided Verification, Alexandra Silva and K. Rustan M. Leino (Eds.) (Lecture Notes in Computer Science). Springer International Publishing, Cham. 832–855. isbn:978- e_1_2_1_42_1 e_1_2_1_20_1 e_1_2_1_41_1 e_1_2_1_40_1 e_1_2_1_23_1 e_1_2_1_24_1 e_1_2_1_21_1 e_1_2_1_22_1 e_1_2_1_43_1 e_1_2_1_27_1 e_1_2_1_28_1 e_1_2_1_25_1 e_1_2_1_26_1 e_1_2_1_29_1 e_1_2_1_7_1 e_1_2_1_31_1 e_1_2_1_8_1 e_1_2_1_30_1 e_1_2_1_5_1 e_1_2_1_6_1 e_1_2_1_3_1 e_1_2_1_12_1 e_1_2_1_35_1 e_1_2_1_4_1 e_1_2_1_13_1 e_1_2_1_34_1 e_1_2_1_1_1 e_1_2_1_10_1 e_1_2_1_33_1 e_1_2_1_2_1 e_1_2_1_11_1 e_1_2_1_32_1 e_1_2_1_16_1 e_1_2_1_39_1 e_1_2_1_17_1 e_1_2_1_38_1 e_1_2_1_14_1 e_1_2_1_37_1 e_1_2_1_15_1 e_1_2_1_36_1 e_1_2_1_9_1 e_1_2_1_18_1 e_1_2_1_19_1 |
| References_xml | – reference: Yuepeng Wang, Xinyu Wang, and Isil Dillig. 2018. Relational Program Synthesis. Proceedings of the ACM on Programming Languages, 2, OOPSLA (2018), Oct., 1–27. issn:2475-1421 https://doi.org/10.1145/3276525 10.1145/3276525 – reference: Robert W. Floyd. 1967. Nondeterministic Algorithms. J. ACM, 14, 4 (1967), Oct., 636–644. issn:0004-5411 https://doi.org/10.1145/321420.321422 10.1145/321420.321422 – reference: Etienne Kneuss, Ivan Kuraj, Viktor Kuncak, and Philippe Suter. 2013. Synthesis modulo Recursive Functions. In Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications. ACM, Indianapolis Indiana USA. 407–426. isbn:978-1-4503-2374-1 https://doi.org/10.1145/2509136.2509555 10.1145/2509136.2509555 – reference: Anders Miltner, Adrian Trejo Nuñez, Ana Brendel, Swarat Chaudhuri, and Isil Dillig. 2022. Bottom-up Synthesis of Recursive Functional Programs Using Angelic Execution. Proceedings of the ACM on Programming Languages, 6, POPL (2022), Jan., 21:1–21:29. https://doi.org/10.1145/3498682 10.1145/3498682 – reference: Sumit Gulwani. 2011. Automating String Processing in Spreadsheets Using Input-Output Examples. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’11). Association for Computing Machinery, New York, NY, USA. 317–330. isbn:978-1-4503-0490-0 https://doi.org/10.1145/1926385.1926423 10.1145/1926385.1926423 – reference: Shachar Itzhaky, Hila Peleg, Nadia Polikarpova, Reuben N. S. Rowe, and Ilya Sergey. 2021. Cyclic Program Synthesis. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA. 944–959. isbn:978-1-4503-8391-2 https://doi.org/10.1145/3453483.3454087 10.1145/3453483.3454087 – reference: Ruyi Ji, Jingtao Xia, Yingfei Xiong, and Zhenjiang Hu. 2021. Generalizable Synthesis through Unification. Proceedings of the ACM on Programming Languages, 5, OOPSLA (2021), Oct., 1–28. issn:2475-1421 https://doi.org/10.1145/3485544 10.1145/3485544 – reference: Aws Albarghouthi, Sumit Gulwani, and Zachary Kincaid. 2013. Recursive Program Synthesis. In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.) (Lecture Notes in Computer Science). Springer, Berlin, Heidelberg. 934–950. isbn:978-3-642-39799-8 https://doi.org/10.1007/978-3-642-39799-8_67 10.1007/978-3-642-39799-8_67 – reference: Ravi Chugh, Brian Hempel, Mitchell Spradlin, and Jacob Albers. 2016. Programmatic and Direct Manipulation, Together at Last. ACM SIGPLAN Notices, 51, 6 (2016), June, 341–354. issn:0362-1340 https://doi.org/10.1145/2980983.2908103 10.1145/2980983.2908103 – reference: Azadeh Farzan and Victor Nicolet. 2021. Counterexample-Guided Partial Bounding for Recursive Function Synthesis. In Computer Aided Verification, Alexandra Silva and K. Rustan M. Leino (Eds.) (Lecture Notes in Computer Science). Springer International Publishing, Cham. 832–855. isbn:978-3-030-81685-8 https://doi.org/10.1007/978-3-030-81685-8_39 10.1007/978-3-030-81685-8_39 – reference: Reudismam Rolim, Gustavo Soares, Loris D’Antoni, Oleksandr Polozov, Sumit Gulwani, Rohit Gheyi, Ryo Suzuki, and Björn Hartmann. 2017. Learning Syntactic Program Transformations from Examples. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). 404–415. issn:1558-1225 https://doi.org/10.1109/ICSE.2017.44 10.1109/ICSE.2017.44 – reference: Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, and Philippe Suter. 2010. Complete Functional Synthesis. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’10). Association for Computing Machinery, New York, NY, USA. 316–329. isbn:978-1-4503-0019-3 https://doi.org/10.1145/1806596.1806632 10.1145/1806596.1806632 – reference: Peter J. Downey, Ravi Sethi, and Robert Endre Tarjan. 1980. Variations on the Common Subexpression Problem. J. ACM, 27, 4 (1980), Oct., 758–771. issn:0004-5411, 1557-735X https://doi.org/10.1145/322217.322228 10.1145/322217.322228 – reference: Azadeh Farzan, Danya Lette, and Victor Nicolet. 2022. Recursion Synthesis with Unrealizability Witnesses. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022). Association for Computing Machinery, New York, NY, USA. 244–259. isbn:978-1-4503-9265-5 https://doi.org/10.1145/3519939.3523726 10.1145/3519939.3523726 – reference: Tom M. Mitchell. 1982. Generalization as Search. Artificial Intelligence, 18, 2 (1982), March, 203–226. issn:0004-3702 https://doi.org/10.1016/0004-3702(82)90040-6 10.1016/0004-3702(82)90040-6 – reference: Martin Hofmann. 2010. IGOR2 - an Analytical Inductive Functional Programming System: Tool Demo. In Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM ’10). Association for Computing Machinery, New York, NY, USA. 29–32. isbn:978-1-60558-727-1 https://doi.org/10.1145/1706356.1706364 10.1145/1706356.1706364 – reference: Nadia Polikarpova, Ivan Kuraj, and Armando Solar-Lezama. 2016. Program Synthesis from Polymorphic Refinement Types. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’16). Association for Computing Machinery, New York, NY, USA. 522–538. isbn:978-1-4503-4261-2 https://doi.org/10.1145/2908080.2908093 10.1145/2908080.2908093 – reference: James Koppel, Zheng Guo, Edsko de Vries, Armando Solar-Lezama, and Nadia Polikarpova. 2022. Searching Entangled Program Spaces. Proceedings of the ACM on Programming Languages, 6, ICFP (2022), Aug., 91:23–91:51. https://doi.org/10.1145/3547622 10.1145/3547622 – reference: Yongwei Yuan, Arjun Radhakrishna, and Roopsha Samanta. 2023. Artifact for "Trace-Guided Inductive Synthesis of Recursive Functional Programs". https://doi.org/10.5281/zenodo.7812616 10.5281/zenodo.7812616 – reference: Phillip D. Summers. 1977. A Methodology for LISP Program Construction from Examples. J. ACM, 24, 1 (1977), Jan., 161–175. issn:0004-5411 https://doi.org/10.1145/321992.322002 10.1145/321992.322002 – reference: Justin Lubin, Nick Collins, Cyrus Omar, and Ravi Chugh. 2020. Program Sketching with Live Bidirectional Evaluation. Proceedings of the ACM on Programming Languages, 4, ICFP (2020), Aug., 109:1–109:29. https://doi.org/10.1145/3408991 10.1145/3408991 – reference: Woosuk Lee. 2021. Combining the Top-down Propagation and Bottom-up Enumeration for Inductive Program Synthesis. Proceedings of the ACM on Programming Languages, 5, POPL (2021), Jan., 1–28. issn:2475-1421 https://doi.org/10.1145/3434335 10.1145/3434335 – reference: Rajeev Alur, Pavol Černý, and Arjun Radhakrishna. 2015. Synthesis Through Unification. In Computer Aided Verification, Daniel Kroening and Corina S. Păsăreanu (Eds.) (Lecture Notes in Computer Science). Springer International Publishing, Cham. 163–179. isbn:978-3-319-21668-3 https://doi.org/10.1007/978-3-319-21668-3_10 10.1007/978-3-319-21668-3_10 – reference: Cyrus Omar, Ian Voysey, Ravi Chugh, and Matthew A. Hammer. 2019. Live Functional Programming with Typed Holes. Proceedings of the ACM on Programming Languages, 3, POPL (2019), Jan., 1–32. issn:2475-1421, 2475-1421 https://doi.org/10.1145/3290327 10.1145/3290327 – reference: Peter-Michael Osera and Steve Zdancewic. 2015. Type-and-Example-Directed Program Synthesis. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15). Association for Computing Machinery, New York, NY, USA. 619–630. isbn:978-1-4503-3468-6 https://doi.org/10.1145/2737924.2738007 10.1145/2737924.2738007 – reference: Kevin Ellis and Sumit Gulwani. 2017. Learning to Learn Programs from Examples: Going Beyond Program Structure. In Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence. International Joint Conferences on Artificial Intelligence Organization, Melbourne, Australia. 1638–1645. isbn:978-0-9992411-0-3 https://doi.org/10.24963/ijcai.2017/227 10.24963/ijcai.2017/227 – reference: Thierry Coquand. 1994. Infinite Objects in Type Theory. In Types for Proofs and Programs, Henk Barendregt and Tobias Nipkow (Eds.) (Lecture Notes in Computer Science). Springer, Berlin, Heidelberg. 62–78. isbn:978-3-540-48440-0 https://doi.org/10.1007/3-540-58085-9_72 10.1007/3-540-58085-9_72 – reference: Rastislav Bodik, Satish Chandra, Joel Galenson, Doug Kimelman, Nicholas Tung, Shaon Barman, and Casey Rodarmor. 2010. Programming with Angelic Nondeterminism. In Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’10). Association for Computing Machinery, New York, NY, USA. 339–352. isbn:978-1-60558-479-9 https://doi.org/10.1145/1706299.1706339 10.1145/1706299.1706339 – reference: Xinyu Wang, Isil Dillig, and Rishabh Singh. 2018. Program Synthesis Using Abstraction Refinement. Proceedings of the ACM on Programming Languages, 2, POPL (2018), Jan., 1–30. issn:2475-1421 https://doi.org/10.1145/3158151 10.1145/3158151 – reference: Woosuk Lee and Hangyeol Cho. 2023. Inductive Synthesis of Structurally Recursive Functional Programs from Non-recursive Expressions. Proceedings of the ACM on Programming Languages, 7, POPL (2023), Jan., 70:2048–70:2078. https://doi.org/10.1145/3571263 10.1145/3571263 – reference: Saswat Padhi, Todd Millstein, Aditya Nori, and Rahul Sharma. 2019. Overfitting in Synthesis: Theory and Practice. In Computer Aided Verification, Isil Dillig and Serdar Tasiran (Eds.) (Lecture Notes in Computer Science). Springer International Publishing, Cham. 315–334. isbn:978-3-030-25540-4 https://doi.org/10.1007/978-3-030-25540-4_17 10.1007/978-3-030-25540-4_17 – reference: Xinyu Wang, Isil Dillig, and Rishabh Singh. 2017. Synthesis of Data Completion Scripts Using Finite Tree Automata. Proceedings of the ACM on Programming Languages, 1, OOPSLA (2017), Oct., 1–26. issn:2475-1421 https://doi.org/10.1145/3133886 10.1145/3133886 – reference: James Bornholt, Emina Torlak, Dan Grossman, and Luis Ceze. 2016. Optimizing Synthesis with Metasketches. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16). Association for Computing Machinery, New York, NY, USA. 775–788. isbn:978-1-4503-3549-2 https://doi.org/10.1145/2837614.2837666 10.1145/2837614.2837666 – reference: Xinyu Wang, Sumit Gulwani, and Rishabh Singh. 2016. FIDEX: Filtering Spreadsheet Data Using Examples. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016). Association for Computing Machinery, New York, NY, USA. 195–213. isbn:978-1-4503-4444-9 https://doi.org/10.1145/2983990.2984030 10.1145/2983990.2984030 – reference: Daniel W. Barowy, Sumit Gulwani, Ted Hart, and Benjamin Zorn. 2015. FlashRelate: Extracting Relational Data from Semi-Structured Spreadsheets Using Examples. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15). Association for Computing Machinery, New York, NY, USA. 218–228. isbn:978-1-4503-3468-6 https://doi.org/10.1145/2737924.2737952 10.1145/2737924.2737952 – reference: Kensen Shi, Jacob Steinhardt, and Percy Liang. 2019. FrAngel: Component-Based Synthesis with Control Structures. Proceedings of the ACM on Programming Languages, 3, POPL (2019), Jan., 1–29. issn:2475-1421 https://doi.org/10.1145/3290386 10.1145/3290386 – reference: Vu Le and Sumit Gulwani. 2014. FlashExtract: A Framework for Data Extraction by Examples. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). Association for Computing Machinery, New York, NY, USA. 542–553. isbn:978-1-4503-2784-8 https://doi.org/10.1145/2594291.2594333 10.1145/2594291.2594333 – reference: Oleksandr Polozov and Sumit Gulwani. 2015. FlashMeta: A Framework for Inductive Program Synthesis. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, Pittsburgh PA USA. 107–126. isbn:978-1-4503-3689-5 https://doi.org/10.1145/2814270.2814310 10.1145/2814270.2814310 – reference: Tessa Lau, Steven A. Wolfman, Pedro Domingos, and Daniel S. Weld. 2003. Programming by Demonstration Using Version Space Algebra. Machine Learning, 53, 1 (2003), Oct., 111–156. issn:1573-0565 https://doi.org/10.1023/A:1025671410623 10.1023/A:1025671410623 – reference: John K. Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing Data Structure Transformations from Input-Output Examples. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15). Association for Computing Machinery, New York, NY, USA. 229–239. isbn:978-1-4503-3468-6 https://doi.org/10.1145/2737924.2737977 10.1145/2737924.2737977 – reference: Rajeev Alur, Arjun Radhakrishna, and Abhishek Udupa. 2017. Scaling Enumerative Program Synthesis via Divide and Conquer. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). 10205, Springer Berlin Heidelberg, Berlin, Heidelberg. 319–336. isbn:978-3-662-54576-8 978-3-662-54577-5 https://doi.org/10.1007/978-3-662-54577-5_18 10.1007/978-3-662-54577-5_18 – reference: Shraddha Barke, Hila Peleg, and Nadia Polikarpova. 2020. Just-in-Time Learning for Bottom-up Enumerative Synthesis. Proceedings of the ACM on Programming Languages, 4, OOPSLA (2020), Nov., 1–29. issn:2475-1421, 2475-1421 https://doi.org/10.1145/3428295 10.1145/3428295 – reference: Calvin Smith and Aws Albarghouthi. 2016. MapReduce Program Synthesis. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’16). Association for Computing Machinery, New York, NY, USA. 326–340. isbn:978-1-4503-4261-2 https://doi.org/10.1145/2908080.2908102 10.1145/2908080.2908102 – ident: e_1_2_1_5_1 doi: 10.1145/2737924.2737952 – ident: e_1_2_1_27_1 doi: 10.1145/3408991 – ident: e_1_2_1_33_1 doi: 10.1145/2908080.2908093 – ident: e_1_2_1_37_1 doi: 10.1145/2908080.2908102 – ident: e_1_2_1_7_1 doi: 10.1145/2837614.2837666 – ident: e_1_2_1_13_1 doi: 10.1007/978-3-030-81685-8_39 – ident: e_1_2_1_30_1 doi: 10.1145/3290327 – ident: e_1_2_1_39_1 doi: 10.1145/3133886 – ident: e_1_2_1_14_1 doi: 10.1145/2737924.2737977 – ident: e_1_2_1_21_1 doi: 10.1145/3547622 – ident: e_1_2_1_8_1 doi: 10.1145/2980983.2908103 – ident: e_1_2_1_25_1 doi: 10.1145/3434335 – ident: e_1_2_1_3_1 doi: 10.1007/978-3-662-54577-5_18 – ident: e_1_2_1_22_1 doi: 10.1145/1806596.1806632 – ident: e_1_2_1_16_1 doi: 10.1145/1926385.1926423 – ident: e_1_2_1_20_1 doi: 10.1145/2509136.2509555 – ident: e_1_2_1_28_1 doi: 10.1145/3498682 – ident: e_1_2_1_41_1 doi: 10.1145/2983990.2984030 – ident: e_1_2_1_4_1 doi: 10.1145/3428295 – ident: e_1_2_1_10_1 doi: 10.1145/322217.322228 – ident: e_1_2_1_9_1 doi: 10.1007/3-540-58085-9_72 – ident: e_1_2_1_35_1 doi: 10.1109/ICSE.2017.44 – ident: e_1_2_1_43_1 doi: 10.5281/zenodo.7812616 – ident: e_1_2_1_17_1 doi: 10.1145/1706356.1706364 – ident: e_1_2_1_26_1 doi: 10.1145/3571263 – ident: e_1_2_1_38_1 doi: 10.1145/321992.322002 – ident: e_1_2_1_15_1 doi: 10.1145/321420.321422 – ident: e_1_2_1_40_1 doi: 10.1145/3158151 – ident: e_1_2_1_32_1 doi: 10.1007/978-3-030-25540-4_17 – ident: e_1_2_1_34_1 doi: 10.1145/2814270.2814310 – ident: e_1_2_1_36_1 doi: 10.1145/3290386 – ident: e_1_2_1_29_1 doi: 10.1016/0004-3702(82)90040-6 – ident: e_1_2_1_31_1 doi: 10.1145/2737924.2738007 – ident: e_1_2_1_23_1 doi: 10.1023/A:1025671410623 – ident: e_1_2_1_24_1 doi: 10.1145/2594291.2594333 – ident: e_1_2_1_18_1 doi: 10.1145/3453483.3454087 – ident: e_1_2_1_1_1 doi: 10.1007/978-3-642-39799-8_67 – ident: e_1_2_1_2_1 doi: 10.1007/978-3-319-21668-3_10 – ident: e_1_2_1_12_1 doi: 10.1145/3519939.3523726 – ident: e_1_2_1_6_1 doi: 10.1145/1706299.1706339 – ident: e_1_2_1_11_1 doi: 10.24963/ijcai.2017/227 – ident: e_1_2_1_19_1 doi: 10.1145/3485544 – ident: e_1_2_1_42_1 doi: 10.1145/3276525 |
| SSID | ssj0001934839 |
| Score | 2.3095253 |
| Snippet | We propose a novel trace-guided approach to tackle the challenges of ambiguity and generalization in synthesis of recursive functional programs from... |
| SourceID | crossref acm |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 860 |
| SubjectTerms | Automatic programming Functional languages Programming by example Recursion Software and its engineering |
| SubjectTermsDisplay | Software and its engineering -- Automatic programming Software and its engineering -- Functional languages Software and its engineering -- Programming by example Software and its engineering -- Recursion |
| Title | Trace-Guided Inductive Synthesis of Recursive Functional Programs |
| URI | https://dl.acm.org/doi/10.1145/3591255 |
| Volume | 7 |
| WOSCitedRecordID | wos001005701900037&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1LT9wwELYo9NBLH9AK6EM-VL1Z9cbOOjmuaGkrAVoJKsFp5fWjLGKT1Wa30Et_e8ex41gtBzhUiqLIcRzJnzPzeTIPhN5nUg8ZqGbi6roQbikjsuAl4bCX0EZmito2Zf6RODkpzs_LcSiX2rTlBERVFbe35eK_Qg1tALYLnX0A3HFQaIBrAB3OADuc7wf8UipDvqxn2jhPX5fP1XkHnf6qgOvF9CPKWQmg-RD0WjAHjr2rVpPy1XHUb-1zo4Nj93chOHXNnZmhM3hGbn6x9jbVi7r6cWNm_Y8k7TwIZs2lj0IbLa_WcWGeyjkg7HlsXS-aS5laIzLWek0Nk_UTPNxbCZZxkZMB9yHQnbgVyaoaH336lkjPwpcW6BSxr3Dzr4znLh0Gy0vgZnmvxqJzYbjzCG1lIi-dm9_x78TuVjIOpNDHT7uxPob-jp6oeUJPEp5x9hw9DRsEPPLAvkAbptpGz7riGzjI4h00SnHGEWcccca1xRFn3OOMO5xfou-Hn88OvpJQD4PITIgVKa2zJ2hKrRZwwHc0lEKKqaGGqakaGAF0S6mcD7SyTBrGmBkW2gpqlYZtJXuFNqu6MrsISzbQGqi7pELxjEsgjUrRqQAFoAWVdg9tw2RMFj7jySRM0R760E3ORIUU8q6SyfXEh7fnfUccO3Zj_NVl_843vEZP-lX1Bm2ulmvzFj1WP1ezZvmuRfIPfdNeSQ |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Trace-Guided+Inductive+Synthesis+of+Recursive+Functional+Programs&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Yuan%2C+Yongwei&rft.au=Radhakrishna%2C+Arjun&rft.au=Samanta%2C+Roopsha&rft.date=2023-06-06&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=7&rft.issue=PLDI&rft.spage=860&rft.epage=883&rft_id=info:doi/10.1145%2F3591255&rft.externalDocID=3591255 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |