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

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Proceedings of ACM on programming languages Jg. 7; H. PLDI; S. 860 - 883
Hauptverfasser: Yuan, Yongwei, Radhakrishna, Arjun, Samanta, Roopsha
Format: Journal Article
Sprache:Englisch
Veröffentlicht: New York, NY, USA ACM 06.06.2023
Schlagworte:
ISSN:2475-1421, 2475-1421
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
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.3094304
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/eLvHCXMwtV1LT9wwELYWyoFLaXmoC23lA-KWko2d2DmuaGkrAVoJWsFplTg2LGKT1T5ge-lv7zh-JNpWKj1UiqzIsq3I82VmPJ4HQoc0JwVLGAloGhUBJYkKuErg4Mp5oYhIiKwdZL-fsYsLfn2dDjqdpYuFeXxgZcmXy3TyX0kNfUBsHTr7D-T2i0IHvAPRoQWyQ_s8wk8zIYPPi1EhtaevzueqvYMuf5Sg6_n0I0JbCaD7FOSaNQcOjKvWrK2vDrx8q-f1T8717YJ16hprM4MzeHrd_GZhbKo3VXn7JEfNRVKhPQhGszsThdaf3i88MC-zMVDY6LFVNZndZW1rRERqr6mkYVoRZXHQoybq-YP8Q5_luqwFrsHZx68tJspNhQEnj02hm99ZPdVZMUicgooWN9LM3eCvCDnvemgCseOhnbiGXkQsTrUz4PnPlnUuJZTXZej8x5uIaz332M7VCo0YtxSalmZy9Qq9tEcK3DdQeI06stxGW65cB7bcewf128jAHhnYIwNXCntk4AYZ2CFjF307_XR18iWwFTSCLGJsHqRKWyCKMFQFgycSYZKxjOUylETkoicZKGhCxLRXCEUySQiRCfykLFQCfmFO9tB6WZXyDcLA2GOV5TrjHadK5FzmFFbOSc4iyiPSRduwGcOJyZHitreLjtzmDIVNOq9rnzwMV-jQRdgPdGusDNn_-5ADtNmA8i1an08X8h3aEI_z0Wz6vibxLyyjb58
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.issn=2475-1421&rft.eissn=2475-1421&rft.volume=7&rft.issue=PLDI&rft.spage=860&rft.epage=883&rft_id=info:doi/10.1145%2F3591255&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_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