Top-Down Synthesis for Library Learning

This paper introduces corpus-guided top-down synthesis as a mechanism for synthesizing library functions that capture common functionality from a corpus of programs in a domain specific language (DSL). The algorithm builds abstractions directly from initial DSL primitives, using syntactic pattern ma...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 7; no. POPL; pp. 1182 - 1213
Main Authors: Bowers, Matthew, Olausson, Theo X., Wong, Lionel, Grand, Gabriel, Tenenbaum, Joshua B., Ellis, Kevin, Solar-Lezama, Armando
Format: Journal Article
Language:English
Published: New York, NY, USA ACM 09.01.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 This paper introduces corpus-guided top-down synthesis as a mechanism for synthesizing library functions that capture common functionality from a corpus of programs in a domain specific language (DSL). The algorithm builds abstractions directly from initial DSL primitives, using syntactic pattern matching of intermediate abstractions to intelligently prune the search space and guide the algorithm towards abstractions that maximally capture shared structures in the corpus. We present an implementation of the approach in a tool called Stitch and evaluate it against the state-of-the-art deductive library learning algorithm from DreamCoder. Our evaluation shows that Stitch is 3-4 orders of magnitude faster and uses 2 orders of magnitude less memory while maintaining comparable or better library quality (as measured by compressivity). We also demonstrate Stitch’s scalability on corpora containing hundreds of complex programs that are intractable with prior deductive approaches and show empirically that it is robust to terminating the search procedure early—further allowing it to scale to challenging datasets by means of early stopping.
AbstractList This paper introduces corpus-guided top-down synthesis as a mechanism for synthesizing library functions that capture common functionality from a corpus of programs in a domain specific language (DSL). The algorithm builds abstractions directly from initial DSL primitives, using syntactic pattern matching of intermediate abstractions to intelligently prune the search space and guide the algorithm towards abstractions that maximally capture shared structures in the corpus. We present an implementation of the approach in a tool called Stitch and evaluate it against the state-of-the-art deductive library learning algorithm from DreamCoder. Our evaluation shows that Stitch is 3-4 orders of magnitude faster and uses 2 orders of magnitude less memory while maintaining comparable or better library quality (as measured by compressivity). We also demonstrate Stitch’s scalability on corpora containing hundreds of complex programs that are intractable with prior deductive approaches and show empirically that it is robust to terminating the search procedure early—further allowing it to scale to challenging datasets by means of early stopping.
ArticleNumber 41
Author Bowers, Matthew
Olausson, Theo X.
Ellis, Kevin
Solar-Lezama, Armando
Grand, Gabriel
Wong, Lionel
Tenenbaum, Joshua B.
Author_xml – sequence: 1
  givenname: Matthew
  orcidid: 0000-0001-8450-7033
  surname: Bowers
  fullname: Bowers, Matthew
  email: mlbowers@mit.edu
  organization: Massachusetts Institute of Technology, USA
– sequence: 2
  givenname: Theo X.
  orcidid: 0000-0001-6653-2227
  surname: Olausson
  fullname: Olausson, Theo X.
  email: theoxo@mit.edu
  organization: Massachusetts Institute of Technology, USA
– sequence: 3
  givenname: Lionel
  orcidid: 0000-0001-8814-7629
  surname: Wong
  fullname: Wong, Lionel
  email: zyzzyva@mit.edu
  organization: Massachusetts Institute of Technology, USA
– sequence: 4
  givenname: Gabriel
  orcidid: 0000-0003-1920-0021
  surname: Grand
  fullname: Grand, Gabriel
  email: grandg@mit.edu
  organization: Massachusetts Institute of Technology, USA
– sequence: 5
  givenname: Joshua B.
  orcidid: 0000-0002-1925-2035
  surname: Tenenbaum
  fullname: Tenenbaum, Joshua B.
  email: jbt@mit.edu
  organization: Massachusetts Institute of Technology, USA
– sequence: 6
  givenname: Kevin
  orcidid: 0000-0001-6586-0632
  surname: Ellis
  fullname: Ellis, Kevin
  email: kellis@cornell.edu
  organization: Cornell University, USA
– sequence: 7
  givenname: Armando
  orcidid: 0000-0001-7604-8252
  surname: Solar-Lezama
  fullname: Solar-Lezama, Armando
  email: asolar@csail.mit.edu
  organization: Massachusetts Institute of Technology, USA
BookMark eNptj01LAzEYhINUsNbi3dPeeorNm2Q3u0epn7DQg_W8vJtNNNImJQlI_72VVhHxNAPzMMyck5EP3hByCewaQJZzUSrgQp6QMZeqpCA5jH75MzJN6Z0xBo2QtWjGZLYKW3obPnzxvPP5zSSXChti0bo-YtwVrcHonX-9IKcW18lMjzohL_d3q8UjbZcPT4ubliJXKlNdKqyGGlEh56Bx0ChxYA3XtYC-kYYZVVWGSasE9rziliHvobYaNGtkJSZkdujVMaQUje220W32Szpg3dfF7nhxT9I_pHYZsws-R3Trf_irA49681P6HX4C82laZQ
CitedBy_id crossref_primary_10_1145_3607185
crossref_primary_10_3390_info16050401
crossref_primary_10_3390_a17070287
crossref_primary_10_1145_3592416
crossref_primary_10_1038_s41562_023_01719_1
crossref_primary_10_1145_3656453
crossref_primary_10_1145_3632860
crossref_primary_10_1098_rsta_2022_0050
crossref_primary_10_1109_ACCESS_2025_3564392
crossref_primary_10_1145_3571207
crossref_primary_10_1145_3704905
Cites_doi 10.1016/j.disopt.2016.01.005
10.1145/2635868.2635901
10.1145/2908080.2908093
10.1145/96709.96712
10.5281/zenodo.7151663
10.1109/TSSC.1968.300136
10.1016/0304-3975(75)90011-0
10.1016/1385-7258(72)90034-0
10.1145/3453483.3454080
10.1145/3434304
10.1145/3450626.3459821
10.1126/science.298.5594.824
10.1145/322003.322010
10.2307/1910129
10.1145/3212695
10.1016/0304-3975(92)90014-7
10.1145/3385412.3385988
10.1145/2993236.2993244
10.1023/A:1025671410623
10.1016/0747-7171(92)90011-R
10.1145/321992.321996
10.1145/3571207
10.1145/2813885.2737977
10.1007/11599128_7
10.1109/ICDM.2001.989534
10.1093/logcom/1.4.497
10.1145/2736282
10.1145/357084.357090
10.1007/3-540-15975-4_37
10.1145/2814270.2814310
10.1137/1.9781611972740.32
10.1007/s10601-014-9173-7
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3571234
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 1213
ExternalDocumentID 10_1145_3571234
3571234
GrantInformation_xml – fundername: NSF (National Science Foundation)
  grantid: 2141064,1918839
  funderid: http://dx.doi.org/10.13039/100000001
– fundername: DARPA
  grantid: FA8750-20-C-0542
  funderid: http://dx.doi.org/10.13039/
– fundername: AFOSR
  grantid: FA9550-19-1-026
  funderid: http://dx.doi.org/10.13039/
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
CITATION
ID FETCH-LOGICAL-a277t-c57a6d8aa7a221cadca4ad092c831b94e0e766e04f73ab262f0a2b18fc1c09463
ISICitedReferencesCount 19
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000910847500041&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:54:54 EST 2025
Tue Nov 18 22:04:20 EST 2025
Mon Mar 17 16:30:36 EDT 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords Library Learning
Abstraction Learning
Program Synthesis
Language English
License This work is licensed under a Creative Commons Attribution 4.0 International License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a277t-c57a6d8aa7a221cadca4ad092c831b94e0e766e04f73ab262f0a2b18fc1c09463
ORCID 0000-0003-1920-0021
0000-0001-8814-7629
0000-0001-6586-0632
0000-0001-8450-7033
0000-0002-1925-2035
0000-0001-6653-2227
0000-0001-7604-8252
OpenAccessLink https://dl.acm.org/doi/10.1145/3571234
PageCount 32
ParticipantIDs crossref_primary_10_1145_3571234
crossref_citationtrail_10_1145_3571234
acm_primary_3571234
PublicationCentury 2000
PublicationDate 2023-01-09
PublicationDateYYYYMMDD 2023-01-09
PublicationDate_xml – month: 01
  year: 2023
  text: 2023-01-09
  day: 09
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 Rod M Burstall and John Darlington. 1977. A transformation system for developing recursive programs. Journal of the ACM (JACM), 24, 1 (1977), 44–67.
Miguel Lázaro-Gredilla, Dianhuan Lin, J Swaroop Guntupalli, and Dileep George. 2019. Beyond imitation: Zero-shot task transfer on robots by learning concepts as cognitive programs. Science Robotics, 4, 26 (2019), eaav3150.
Tessa Lau, Steven A Wolfman, Pedro Domingos, and Daniel S Weld. 2003. Programming by demonstration using version space algebra. Machine Learning, 53, 1 (2003), 111–156.
Kevin Ellis, Catherine Wong, Maxwell Nye, Mathias Sablé-Meyer, Lucas Morales, Luke Hewitt, Luc Cary, Armando Solar-Lezama, and Joshua B Tenenbaum. 2021. Dreamcoder: Bootstrapping inductive program synthesis with wake-sleep library learning. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. 835–850.
John K Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing data structure transformations from input-output examples. ACM SIGPLAN Notices, 50, 6 (2015), 229–239.
Eyal Dechter, Jonathan Malmaud, Ryan Prescott Adams, and Joshua B Tenenbaum. 2013. Bootstrap learning via modular concept discovery. In Proceedings of the International Joint Conference on Artificial Intelligence.
Dale Miller. 1991. A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification. Journal of Logic and Computation, 1, 4 (1991), 497–536.
Eui Chul Shin, Miltiadis Allamanis, Marc Brockschmidt, and Alex Polozov. 2019. Program synthesis and semantic parsing with learned code idioms. Advances in Neural Information Processing Systems, 32 (2019).
Percy Liang, Michael I Jordan, and Dan Klein. 2010. Learning programs: A hierarchical Bayesian approach. In Proceedings of the 27th International Conference on Machine Learning (ICML-10). 639–646.
Thomas Johnsson. 1985. Lambda Lifting: Treansforming Programs to Recursive Equations. In Functional Programming Languages and Computer Architecture, FPCA 1985, Nancy, France, September 16-19, 1985, Proceedings, Jean-Pierre Jouannaud (Ed.) (Lecture Notes in Computer Science, Vol. 201). Springer, 190–203. https://doi.org/10.1007/3-540-15975-4_37 10.1007/3-540-15975-4_37
Mina Lee, Sunbeom So, and Hakjoo Oh. 2016. Synthesizing regular expressions from examples for introductory automata assignments. In Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2016, Amsterdam, The Netherlands, October 31 - November 1, 2016, Bernd Fischer and Ina Schaefer (Eds.). ACM, 70–80. https://doi.org/10.1145/2993236.2993244 10.1145/2993236.2993244
Robert John Henderson. 2013. Cumulative learning in the lambda calculus.
A. H. Land and A. G. Doig. 1960. An Automatic Method of Solving Discrete Programming Problems. Econometrica, 28, 3 (1960), 497–520. issn:00129682, 14680262 http://www.jstor.org/stable/1910129
Dianhuan Lin, Eyal Dechter, Kevin Ellis, Joshua B Tenenbaum, and Stephen H Muggleton. 2014. Bias reformulation for one-shot function induction.
Gilles Dowek, Thérèse Hardin, Claude Kirchner, and Frank Pfenning. 1996. Unification via Explicit Substitutions: The Case of Higher-Order Patterns. In Proceedings of the Joint International Conference and Symposium on Logic Programming, M. Maher (Ed.). MIT Press, Bonn, Germany. 259–273.
Matthias Felleisen and Robert Hieb. 1992. The Revised Report on the Syntactic Theories of Sequential Control and State. Theor. Comput. Sci., 103, 2 (1992), sep, 235–271. issn:0304-3975 https://doi.org/10.1016/0304-3975(92)90014-7 10.1016/0304-3975(92)90014-7
Xinyun Chen, Chang Liu, and Dawn Song. 2018. Execution-guided neural program synthesis. In International Conference on Learning Representations.
Tom M Mitchell. 1977. Version spaces: A candidate elimination approach to rule learning. In Proceedings of the 5th international joint conference on Artificial intelligence-Volume 1. 305–310.
Geoffrey Chu and Peter J. Stuckey. 2015. Dominance breaking constraints. Constraints An Int. J., 20, 2 (2015), 155–182. https://doi.org/10.1007/s10601-014-9173-7 10.1007/s10601-014-9173-7
Catherine Wong, William McCarthy, Gabriel Grand, Jacob Andreas, Joshua B Tenenbaum, Robert Hawkins, and Judy Fan. 2022. Identifying concept libraries from language about object structure. In CogSci. To appear.
Peter E. Hart, Nils J. Nilsson, and Bertram Raphael. 1968. A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Trans. Syst. Sci. Cybern., 4, 2 (1968), 100–107. https://doi.org/10.1109/TSSC.1968.300136 10.1109/TSSC.1968.300136
Andrew Cropper. 2019. Playgol: Learning programs through play. arXiv preprint arXiv:1904.08993.
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. 107–126.
Matej Balog, Alexander L Gaunt, Marc Brockschmidt, Sebastian Nowozin, and Daniel Tarlow. 2016. Deepcoder: Learning to write programs. arXiv preprint arXiv:1611.01989.
Gilles Dowek, Thérèse Hardin, and Claude Kirchner. 1995. Higher-Order Unification via Explicit Substitutions. In Proceedings of the Tenth Annual Symposium on Logic in Computer Science, D. Kozen (Ed.). IEEE Computer Society Press, San Diego, California. 366–374.
Michihiro Kuramochi and George Karypis. 2001. Frequent Subgraph Discovery. In Proceedings of the 2001 IEEE International Conference on Data Mining, 29 November - 2 December 2001, San Jose, California, USA, Nick Cercone, Tsau Young Lin, and Xindong Wu (Eds.). IEEE Computer Society, 313–320. https://doi.org/10.1109/ICDM.2001.989534 10.1109/ICDM.2001.989534
Martin Abadi, Luca Cardelli, P-L Curien, and J-J Lévy. 1989. Explicit substitutions. In Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 31–46.
Ameesh Shah, Eric Zhan, Jennifer Sun, Abhinav Verma, Yisong Yue, and Swarat Chaudhuri. 2020. Learning Differentiable Programs with Admissible Neural Heuristics. In Advances in Neural Information Processing Systems, H. Larochelle, M. Ranzato, R. Hadsell, M.F. Balcan, and H. Lin (Eds.). 33, Curran Associates, Inc., 4940–4952. https://proceedings.neurips.cc/paper/2020/file/342285bb2a8cadef22f667eeb6a63732-Paper.pdf
Kevin M Ellis, Lucas E Morales, Mathias Sablé-Meyer, Armando Solar Lezama, and Joshua B Tenenbaum. 2018. Library learning for neurally-guided bayesian program induction.
Nicolaas Govert de Bruijn. 1972. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. In Indagationes Mathematicae (Proceedings). 75, 381–392.
Max Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt, Zachary Tatlock, and Pavel Panchekha. 2021. Egg: Fast and Extensible Equality Saturation. Proc. ACM Program. Lang., 5, POPL (2021), Article 23, jan, 29 pages. https://doi.org/10.1145/3434304 10.1145/3434304
Maxwell Nye, Yewen Pu, Matthew Bowers, Jacob Andreas, Joshua B Tenenbaum, and Armando Solar-Lezama. 2021. Representing Partial Programs with Blended Abstract Semantics. In International Conference on Learning Representations.
Toshihide Ibaraki. 1977. The Power of Dominance Relations in Branch-and-Bound Algorithms. J. ACM, 24, 2 (1977), 264–279. https://doi.org/10.1145/322003.322010 10.1145/322003.322010
Catherine Wong, Kevin M Ellis, Joshua Tenenbaum, and Jacob Andreas. 2021. Leveraging language to learn program abstractions and search heuristics. In International Conference on Machine Learning. 11193–11204.
David Cao, Rose Kunkel, Chandrakana Nandi, Max Willsey, Zachary Tatlock, and Nadia Polikarpova. 2023. babble: Learning Better Abstractions with E-Graphs and Anti-Unification. Proc. ACM Program. Lang., https://doi.org/10.1145/3571207 10.1145/3571207
Qiaochu Chen, Xinyu Wang, Xi Ye, Greg Durrett, and Isil Dillig. 2020. Multi-modal synthesis of regular expressions. In Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2020, London, UK, June 15-20, 2020, Alastair F. Donaldson and Emina Torlak (Eds.). ACM, 487–502. https://doi.org/10.1145/3385412.3385988 10.1145/3385412.3385988
Kevin Ellis, Catherine Wong, Maxwell Nye, Mathias Sable-Meyer, Luc Cary, Lucas Morales, Luke Hewitt, Armando Solar-Lezama, and Joshua B Tenenbaum. 2020. Dreamcoder: Growing generalizable, interpretable knowledge with wake-sleep bayesian program learning. arXiv preprint arXiv:2006.08381.
Manos Koukoutos, Mukund Raghothaman, Etienne Kneuss, and Viktor Kuncak. 2017. On repair with probabilistic attribute grammars. arXiv preprint arXiv:1707.04148.
R. Milo, S. Shen-Orr, S. Itzkovitz, N. Kashtan, D. Chklovskii, and U. Alon. 2002. Network Motifs: Simple Building Blocks of Complex Networks. Science, 298, 5594 (2002), 824–827. https://doi.org/10.1126/science.298.5594.824 arxiv:https://www.science.org/doi/pdf/10.1126/science.298.5594.824. 10.1126/science.298.5594.824
Michihiro Kuramochi and George Karypis. 2004. Finding Frequent Patterns in a Large Sparse Graph. In Proceedings of the Fourth SIAM International Conference on Data Mining, Lake Buena Vista, Florida, USA, April 22-24, 2004, Michael W. Berry, Umeshwar Dayal, Chandrika Kamath, and David B. Skillicorn (Eds.). SIAM, 345–356. https://doi.org/10.1137/1.9781611972740.32 10.1137/1.9781611972740.32
David R. Morrison, Sheldon H. Jacobson, Jason J. Sauppe, and Edward C. Sewell. 2016. Branch-and-bound algorithms: A survey of recent advances in searching, branching, and pruning. Discret. Optim., 19 (2016), 79–102. https://doi.org/10.1016/j.disopt.2016.01.005 10.1016/j.disopt.2016.01.005
Claude Elwood Shannon. 1948. A mathematical theory of communication. The Bell system technical journal, 27, 3 (1948), 379–423.
Miltiadis Allamanis and Charles Sutton. 2014. Mining idioms from source code. In Proceedings of the 22nd acm sigsoft international symposium on foundations of software engineering. 472–483.
Adam Chlip
e_1_2_2_24_1
e_1_2_2_49_1
e_1_2_2_6_1
e_1_2_2_20_1
e_1_2_2_2_1
e_1_2_2_41_1
e_1_2_2_43_1
e_1_2_2_8_1
e_1_2_2_28_1
e_1_2_2_26_1
Dechter Eyal (e_1_2_2_14_1) 2013
Jones R Kenny (e_1_2_2_31_1) 2021; 40
Wong Catherine (e_1_2_2_56_1) 2021
Dowek Gilles (e_1_2_2_16_1) 1996
e_1_2_2_13_1
e_1_2_2_38_1
e_1_2_2_11_1
e_1_2_2_30_1
Ellis Kevin (e_1_2_2_17_1) 2020
e_1_2_2_32_1
e_1_2_2_34_1
e_1_2_2_55_1
e_1_2_2_36_1
e_1_2_2_57_1
Liang Percy (e_1_2_2_39_1) 2010
Chlipala Adam (e_1_2_2_10_1) 2017
Nye Maxwell (e_1_2_2_47_1) 2021
e_1_2_2_25_1
e_1_2_2_48_1
e_1_2_2_5_1
e_1_2_2_23_1
e_1_2_2_7_1
e_1_2_2_21_1
e_1_2_2_1_1
e_1_2_2_3_1
e_1_2_2_40_1
e_1_2_2_42_1
e_1_2_2_29_1
e_1_2_2_44_1
e_1_2_2_27_1
e_1_2_2_46_1
Shah Ameesh (e_1_2_2_51_1) 2020
Mitchell Tom M (e_1_2_2_45_1) 1977
Dowek Gilles (e_1_2_2_15_1) 1995
Ganin Yaroslav (e_1_2_2_22_1) 2018
e_1_2_2_54_1
e_1_2_2_18_1
e_1_2_2_33_1
Shin Eui Chul (e_1_2_2_53_1) 2019
Chen Xinyun (e_1_2_2_9_1) 2018
Cropper Andrew (e_1_2_2_12_1) 2019
e_1_2_2_35_1
Balog Matej (e_1_2_2_4_1) 2016
Lázaro-Gredilla Miguel (e_1_2_2_37_1) 2019
Shannon Claude Elwood (e_1_2_2_52_1) 1948
e_1_2_2_50_1
Ellis Kevin M (e_1_2_2_19_1) 2018
References_xml – reference: Matej Balog, Alexander L Gaunt, Marc Brockschmidt, Sebastian Nowozin, and Daniel Tarlow. 2016. Deepcoder: Learning to write programs. arXiv preprint arXiv:1611.01989.
– reference: Eui Chul Shin, Miltiadis Allamanis, Marc Brockschmidt, and Alex Polozov. 2019. Program synthesis and semantic parsing with learned code idioms. Advances in Neural Information Processing Systems, 32 (2019).
– reference: Nicolaas Govert de Bruijn. 1972. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. In Indagationes Mathematicae (Proceedings). 75, 381–392.
– reference: Catherine Wong, Kevin M Ellis, Joshua Tenenbaum, and Jacob Andreas. 2021. Leveraging language to learn program abstractions and search heuristics. In International Conference on Machine Learning. 11193–11204.
– reference: Miguel Lázaro-Gredilla, Dianhuan Lin, J Swaroop Guntupalli, and Dileep George. 2019. Beyond imitation: Zero-shot task transfer on robots by learning concepts as cognitive programs. Science Robotics, 4, 26 (2019), eaav3150.
– reference: Claude Elwood Shannon. 1948. A mathematical theory of communication. The Bell system technical journal, 27, 3 (1948), 379–423.
– reference: Kevin M Ellis, Lucas E Morales, Mathias Sablé-Meyer, Armando Solar Lezama, and Joshua B Tenenbaum. 2018. Library learning for neurally-guided bayesian program induction.
– reference: Toshihide Ibaraki. 1977. The Power of Dominance Relations in Branch-and-Bound Algorithms. J. ACM, 24, 2 (1977), 264–279. https://doi.org/10.1145/322003.322010 10.1145/322003.322010
– reference: Gilles Dowek, Thérèse Hardin, and Claude Kirchner. 1995. Higher-Order Unification via Explicit Substitutions. In Proceedings of the Tenth Annual Symposium on Logic in Computer Science, D. Kozen (Ed.). IEEE Computer Society Press, San Diego, California. 366–374.
– reference: Geoffrey Chu and Peter J. Stuckey. 2015. Dominance breaking constraints. Constraints An Int. J., 20, 2 (2015), 155–182. https://doi.org/10.1007/s10601-014-9173-7 10.1007/s10601-014-9173-7
– reference: Max Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt, Zachary Tatlock, and Pavel Panchekha. 2021. Egg: Fast and Extensible Equality Saturation. Proc. ACM Program. Lang., 5, POPL (2021), Article 23, jan, 29 pages. https://doi.org/10.1145/3434304 10.1145/3434304
– reference: Adam Chlipala, Benjamin Delaware, Samuel Duchovni, Jason Gross, Clément Pit-Claudel, Sorawit Suriyakarn, Peng Wang, and Katherine Ye. 2017. The end of history? Using a proof assistant to replace language design with library design. In 2nd Summit on Advances in Programming Languages (SNAPL 2017).
– reference: Mina Lee, Sunbeom So, and Hakjoo Oh. 2016. Synthesizing regular expressions from examples for introductory automata assignments. In Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2016, Amsterdam, The Netherlands, October 31 - November 1, 2016, Bernd Fischer and Ina Schaefer (Eds.). ACM, 70–80. https://doi.org/10.1145/2993236.2993244 10.1145/2993236.2993244
– reference: Rod M Burstall and John Darlington. 1977. A transformation system for developing recursive programs. Journal of the ACM (JACM), 24, 1 (1977), 44–67.
– reference: Dale Miller. 1992. Unification under a Mixed Prefix. Journal of Symbolic Computation, 14 (1992), 321–358.
– 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), 111–156.
– reference: John K Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing data structure transformations from input-output examples. ACM SIGPLAN Notices, 50, 6 (2015), 229–239.
– reference: Miltiadis Allamanis, Earl T Barr, Premkumar Devanbu, and Charles Sutton. 2018. A survey of machine learning for big code and naturalness. ACM Computing Surveys (CSUR), 51, 4 (2018), 1–37.
– reference: Gilles Dowek, Thérèse Hardin, Claude Kirchner, and Frank Pfenning. 1996. Unification via Explicit Substitutions: The Case of Higher-Order Patterns. In Proceedings of the Joint International Conference and Symposium on Logic Programming, M. Maher (Ed.). MIT Press, Bonn, Germany. 259–273.
– reference: Andrew Cropper. 2019. Playgol: Learning programs through play. arXiv preprint arXiv:1904.08993.
– reference: Matthew Bowers, Olausson, Wong, Grand, Tenenbaum, Ellis, and Solar-Lezama. 2022. Artifact for "Top-Down Synthesis For Library Learning". https://doi.org/10.5281/zenodo.7151663 10.5281/zenodo.7151663
– reference: Irvin Hwang, Andreas Stuhlmüller, and Noah D Goodman. 2011. Inducing probabilistic programs by Bayesian program merging. arXiv preprint arXiv:1110.5667.
– reference: Miltiadis Allamanis and Charles Sutton. 2014. Mining idioms from source code. In Proceedings of the 22nd acm sigsoft international symposium on foundations of software engineering. 472–483.
– reference: Peter E. Hart, Nils J. Nilsson, and Bertram Raphael. 1968. A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Trans. Syst. Sci. Cybern., 4, 2 (1968), 100–107. https://doi.org/10.1109/TSSC.1968.300136 10.1109/TSSC.1968.300136
– reference: Martin Abadi, Luca Cardelli, P-L Curien, and J-J Lévy. 1989. Explicit substitutions. In Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 31–46.
– reference: Michihiro Kuramochi and George Karypis. 2004. Finding Frequent Patterns in a Large Sparse Graph. In Proceedings of the Fourth SIAM International Conference on Data Mining, Lake Buena Vista, Florida, USA, April 22-24, 2004, Michael W. Berry, Umeshwar Dayal, Chandrika Kamath, and David B. Skillicorn (Eds.). SIAM, 345–356. https://doi.org/10.1137/1.9781611972740.32 10.1137/1.9781611972740.32
– reference: Zohar Manna and Richard Waldinger. 1980. A deductive approach to program synthesis. ACM Transactions on Programming Languages and Systems (TOPLAS), 2, 1 (1980), 90–121.
– reference: Robert John Henderson. 2013. Cumulative learning in the lambda calculus.
– reference: Michihiro Kuramochi and George Karypis. 2001. Frequent Subgraph Discovery. In Proceedings of the 2001 IEEE International Conference on Data Mining, 29 November - 2 December 2001, San Jose, California, USA, Nick Cercone, Tsau Young Lin, and Xindong Wu (Eds.). IEEE Computer Society, 313–320. https://doi.org/10.1109/ICDM.2001.989534 10.1109/ICDM.2001.989534
– reference: Nadia Polikarpova, Ivan Kuraj, and Armando Solar-Lezama. 2016. Program synthesis from polymorphic refinement types. ACM SIGPLAN Notices, 51, 6 (2016), 522–538.
– reference: Xinyun Chen, Chang Liu, and Dawn Song. 2018. Execution-guided neural program synthesis. In International Conference on Learning Representations.
– reference: Thomas Johnsson. 1985. Lambda Lifting: Treansforming Programs to Recursive Equations. In Functional Programming Languages and Computer Architecture, FPCA 1985, Nancy, France, September 16-19, 1985, Proceedings, Jean-Pierre Jouannaud (Ed.) (Lecture Notes in Computer Science, Vol. 201). Springer, 190–203. https://doi.org/10.1007/3-540-15975-4_37 10.1007/3-540-15975-4_37
– reference: Gérard Huet. 1975. A Unification Algorithm for Typed λ -Calculus. Theoretical Computer Science, 1 (1975), 27–57.
– reference: Manos Koukoutos, Mukund Raghothaman, Etienne Kneuss, and Viktor Kuncak. 2017. On repair with probabilistic attribute grammars. arXiv preprint arXiv:1707.04148.
– reference: Eyal Dechter, Jonathan Malmaud, Ryan Prescott Adams, and Joshua B Tenenbaum. 2013. Bootstrap learning via modular concept discovery. In Proceedings of the International Joint Conference on Artificial Intelligence.
– 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. 107–126.
– reference: Sumit Gulwani, José Hernández-Orallo, Emanuel Kitzelmann, Stephen H Muggleton, Ute Schmid, and Benjamin Zorn. 2015. Inductive programming meets the real world. Commun. ACM, 58, 11 (2015), 90–99.
– reference: Maxwell Nye, Yewen Pu, Matthew Bowers, Jacob Andreas, Joshua B Tenenbaum, and Armando Solar-Lezama. 2021. Representing Partial Programs with Blended Abstract Semantics. In International Conference on Learning Representations.
– reference: Falk Schreiber and Henning Schwöbbermeyer. 2005. Frequency Concepts and Pattern Detection for the Analysis of Motifs in Networks. Trans. Comp. Sys. Biology, 3 (2005), 89–104. https://doi.org/10.1007/11599128_7 10.1007/11599128_7
– reference: Qiaochu Chen, Xinyu Wang, Xi Ye, Greg Durrett, and Isil Dillig. 2020. Multi-modal synthesis of regular expressions. In Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2020, London, UK, June 15-20, 2020, Alastair F. Donaldson and Emina Torlak (Eds.). ACM, 487–502. https://doi.org/10.1145/3385412.3385988 10.1145/3385412.3385988
– reference: Thoralf Skolem. 1920. Logisch-kombinatorische Untersuchungen über die Erfüllbarkeit oder Bewiesbarkeit mathematischer Sätze nebst einem Theorem über dichte Mengen.
– reference: Tom M Mitchell. 1977. Version spaces: A candidate elimination approach to rule learning. In Proceedings of the 5th international joint conference on Artificial intelligence-Volume 1. 305–310.
– reference: Matthias Felleisen and Robert Hieb. 1992. The Revised Report on the Syntactic Theories of Sequential Control and State. Theor. Comput. Sci., 103, 2 (1992), sep, 235–271. issn:0304-3975 https://doi.org/10.1016/0304-3975(92)90014-7 10.1016/0304-3975(92)90014-7
– reference: R. Milo, S. Shen-Orr, S. Itzkovitz, N. Kashtan, D. Chklovskii, and U. Alon. 2002. Network Motifs: Simple Building Blocks of Complex Networks. Science, 298, 5594 (2002), 824–827. https://doi.org/10.1126/science.298.5594.824 arxiv:https://www.science.org/doi/pdf/10.1126/science.298.5594.824. 10.1126/science.298.5594.824
– reference: A. H. Land and A. G. Doig. 1960. An Automatic Method of Solving Discrete Programming Problems. Econometrica, 28, 3 (1960), 497–520. issn:00129682, 14680262 http://www.jstor.org/stable/1910129
– reference: Dianhuan Lin, Eyal Dechter, Kevin Ellis, Joshua B Tenenbaum, and Stephen H Muggleton. 2014. Bias reformulation for one-shot function induction.
– reference: Kevin Ellis, Catherine Wong, Maxwell Nye, Mathias Sablé-Meyer, Lucas Morales, Luke Hewitt, Luc Cary, Armando Solar-Lezama, and Joshua B Tenenbaum. 2021. Dreamcoder: Bootstrapping inductive program synthesis with wake-sleep library learning. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. 835–850.
– reference: David Cao, Rose Kunkel, Chandrakana Nandi, Max Willsey, Zachary Tatlock, and Nadia Polikarpova. 2023. babble: Learning Better Abstractions with E-Graphs and Anti-Unification. Proc. ACM Program. Lang., https://doi.org/10.1145/3571207 10.1145/3571207
– reference: David R. Morrison, Sheldon H. Jacobson, Jason J. Sauppe, and Edward C. Sewell. 2016. Branch-and-bound algorithms: A survey of recent advances in searching, branching, and pruning. Discret. Optim., 19 (2016), 79–102. https://doi.org/10.1016/j.disopt.2016.01.005 10.1016/j.disopt.2016.01.005
– reference: Catherine Wong, William McCarthy, Gabriel Grand, Jacob Andreas, Joshua B Tenenbaum, Robert Hawkins, and Judy Fan. 2022. Identifying concept libraries from language about object structure. In CogSci. To appear.
– reference: Ameesh Shah, Eric Zhan, Jennifer Sun, Abhinav Verma, Yisong Yue, and Swarat Chaudhuri. 2020. Learning Differentiable Programs with Admissible Neural Heuristics. In Advances in Neural Information Processing Systems, H. Larochelle, M. Ranzato, R. Hadsell, M.F. Balcan, and H. Lin (Eds.). 33, Curran Associates, Inc., 4940–4952. https://proceedings.neurips.cc/paper/2020/file/342285bb2a8cadef22f667eeb6a63732-Paper.pdf
– reference: Kevin Ellis, Catherine Wong, Maxwell Nye, Mathias Sable-Meyer, Luc Cary, Lucas Morales, Luke Hewitt, Armando Solar-Lezama, and Joshua B Tenenbaum. 2020. Dreamcoder: Growing generalizable, interpretable knowledge with wake-sleep bayesian program learning. arXiv preprint arXiv:2006.08381.
– reference: Srinivasan Iyer, Alvin Cheung, and Luke Zettlemoyer. 2019. Learning programmatic idioms for scalable semantic parsing. arXiv preprint arXiv:1904.09086.
– reference: Yaroslav Ganin, Tejas Kulkarni, Igor Babuschkin, SM Ali Eslami, and Oriol Vinyals. 2018. Synthesizing programs for images using reinforced adversarial learning. In International Conference on Machine Learning. 1666–1675.
– reference: Percy Liang, Michael I Jordan, and Dan Klein. 2010. Learning programs: A hierarchical Bayesian approach. In Proceedings of the 27th International Conference on Machine Learning (ICML-10). 639–646.
– reference: R Kenny Jones, David Charatan, Paul Guerrero, Niloy J Mitra, and Daniel Ritchie. 2021. ShapeMOD: macro operation discovery for 3D shape programs. ACM Transactions on Graphics (TOG), 40, 4 (2021), 1–16.
– reference: Dale Miller. 1991. A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification. Journal of Logic and Computation, 1, 4 (1991), 497–536.
– volume-title: Playgol: Learning programs through play. arXiv preprint arXiv:1904.08993.
  year: 2019
  ident: e_1_2_2_12_1
– ident: e_1_2_2_40_1
– ident: e_1_2_2_46_1
  doi: 10.1016/j.disopt.2016.01.005
– volume-title: Proceedings of the Tenth Annual Symposium on Logic in Computer Science, D. Kozen (Ed.). IEEE Computer Society Press
  year: 1995
  ident: e_1_2_2_15_1
– ident: e_1_2_2_32_1
– ident: e_1_2_2_3_1
  doi: 10.1145/2635868.2635901
– ident: e_1_2_2_48_1
  doi: 10.1145/2908080.2908093
– ident: e_1_2_2_1_1
  doi: 10.1145/96709.96712
– ident: e_1_2_2_54_1
– ident: e_1_2_2_5_1
  doi: 10.5281/zenodo.7151663
– volume-title: Proceedings of the 27th International Conference on Machine Learning (ICML-10)
  year: 2010
  ident: e_1_2_2_39_1
– ident: e_1_2_2_24_1
  doi: 10.1109/TSSC.1968.300136
– volume-title: Representing Partial Programs with Blended Abstract Semantics. In International Conference on Learning Representations.
  year: 2021
  ident: e_1_2_2_47_1
– volume-title: International Conference on Learning Representations.
  year: 2018
  ident: e_1_2_2_9_1
– ident: e_1_2_2_26_1
  doi: 10.1016/0304-3975(75)90011-0
– ident: e_1_2_2_13_1
  doi: 10.1016/1385-7258(72)90034-0
– ident: e_1_2_2_29_1
– ident: e_1_2_2_18_1
  doi: 10.1145/3453483.3454080
– ident: e_1_2_2_55_1
  doi: 10.1145/3434304
– volume: 40
  start-page: 1
  year: 2021
  ident: e_1_2_2_31_1
  article-title: ShapeMOD: macro operation discovery for 3D shape programs
  publication-title: ACM Transactions on Graphics (TOG)
  doi: 10.1145/3450626.3459821
– ident: e_1_2_2_44_1
  doi: 10.1126/science.298.5594.824
– ident: e_1_2_2_28_1
  doi: 10.1145/322003.322010
– ident: e_1_2_2_35_1
  doi: 10.2307/1910129
– ident: e_1_2_2_25_1
– ident: e_1_2_2_2_1
  doi: 10.1145/3212695
– ident: e_1_2_2_20_1
  doi: 10.1016/0304-3975(92)90014-7
– ident: e_1_2_2_8_1
  doi: 10.1145/3385412.3385988
– ident: e_1_2_2_38_1
  doi: 10.1145/2993236.2993244
– volume-title: Deepcoder: Learning to write programs. arXiv preprint arXiv:1611.01989.
  year: 2016
  ident: e_1_2_2_4_1
– ident: e_1_2_2_36_1
  doi: 10.1023/A:1025671410623
– volume-title: Proceedings of the Joint International Conference and Symposium on Logic Programming, M. Maher (Ed.). MIT Press
  year: 1996
  ident: e_1_2_2_16_1
– ident: e_1_2_2_43_1
  doi: 10.1016/0747-7171(92)90011-R
– volume-title: Advances in Neural Information Processing Systems
  year: 2020
  ident: e_1_2_2_51_1
– volume-title: Proceedings of the International Joint Conference on Artificial Intelligence.
  year: 2013
  ident: e_1_2_2_14_1
– volume-title: Beyond imitation: Zero-shot task transfer on robots by learning concepts as cognitive programs. Science Robotics, 4, 26
  year: 2019
  ident: e_1_2_2_37_1
– ident: e_1_2_2_6_1
  doi: 10.1145/321992.321996
– ident: e_1_2_2_7_1
  doi: 10.1145/3571207
– ident: e_1_2_2_21_1
  doi: 10.1145/2813885.2737977
– volume-title: International Conference on Machine Learning. 1666–1675
  year: 2018
  ident: e_1_2_2_22_1
– ident: e_1_2_2_57_1
– ident: e_1_2_2_50_1
  doi: 10.1007/11599128_7
– ident: e_1_2_2_27_1
– ident: e_1_2_2_33_1
  doi: 10.1109/ICDM.2001.989534
– ident: e_1_2_2_42_1
  doi: 10.1093/logcom/1.4.497
– volume-title: International Conference on Machine Learning. 11193–11204
  year: 2021
  ident: e_1_2_2_56_1
– ident: e_1_2_2_23_1
  doi: 10.1145/2736282
– ident: e_1_2_2_41_1
  doi: 10.1145/357084.357090
– ident: e_1_2_2_30_1
  doi: 10.1007/3-540-15975-4_37
– ident: e_1_2_2_49_1
  doi: 10.1145/2814270.2814310
– volume-title: A mathematical theory of communication. The Bell system technical journal, 27, 3
  year: 1948
  ident: e_1_2_2_52_1
– volume-title: Dreamcoder: Growing generalizable, interpretable knowledge with wake-sleep bayesian program learning. arXiv preprint arXiv:2006.08381.
  year: 2020
  ident: e_1_2_2_17_1
– volume-title: Proceedings of the 5th international joint conference on Artificial intelligence-Volume 1. 305–310
  year: 1977
  ident: e_1_2_2_45_1
– volume-title: Program synthesis and semantic parsing with learned code idioms. Advances in Neural Information Processing Systems, 32
  year: 2019
  ident: e_1_2_2_53_1
– volume-title: 2nd Summit on Advances in Programming Languages (SNAPL
  year: 2017
  ident: e_1_2_2_10_1
– ident: e_1_2_2_34_1
  doi: 10.1137/1.9781611972740.32
– volume-title: Armando Solar Lezama, and Joshua B Tenenbaum
  year: 2018
  ident: e_1_2_2_19_1
– ident: e_1_2_2_11_1
  doi: 10.1007/s10601-014-9173-7
SSID ssj0001934839
Score 2.4921844
Snippet This paper introduces corpus-guided top-down synthesis as a mechanism for synthesizing library functions that capture common functionality from a corpus of...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 1182
SubjectTerms Automatic programming
Branch-and-bound
Software and its engineering
Theory of computation
SubjectTermsDisplay Software and its engineering -- Automatic programming
Theory of computation -- Branch-and-bound
Title Top-Down Synthesis for Library Learning
URI https://dl.acm.org/doi/10.1145/3571234
Volume 7
WOSCitedRecordID wos000910847500041&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/eLvHCXMwtV3NT9swFLdY2WGX8bFNKwyUAxoHZBY7Tuwcq26DQ2GVYFJvle040yTIqrZM5cLfznNiO1GFtHHgYkWWbSV-T-8r7_0eQkdlrGSalgobk1PMVFxiRUmJeSGTQlgALFWDuI745aWYTPKxi-ku6nYCvKrEapXPXpTUMAfEtqWzzyB3OBQm4BmIDiOQHcb_I_yfGf4KvvXJ1X0F1p0FHLGphK5AwQOq_upapeOgxerEjsHwwv5DcKlbtzaY4MOabVA9dFdzHcPbaK28W7gyLlv4fzI5DYLfpf-OLDpSyOw4m7vcyjOpwG-_6cYhaFLHIfJWXFHGU0xYU-98ap6Yc_KWd9hq_GM86ohP6-10VLGFm3tazDOLiJGkHPQuazWZ_3u_puBC2mFThJ1O3cZXaJPyNLeJgBcPnchcnjBRt6ALr99UW9u9X9xea8zo244x07FKrrfRW-dORIOGDXbQhql20ZZv1RE5yf0OHXuuiAJXRMAVkeOKyHPFe_Tz-7fr4Tl2PTKwpJwvsU65zAohJZeUEi0LLZks4pxqkRCVMxMbnmUmZiVPpKIZLWNJFRGlJho8-yz5gHoVEP0jijgVKVXgUMeiYKYgSoN0Z_Akjcx4SfpoFz55OmtQUPwl9tFnfwVT7WDlbXeTm-nabfdRFBb6M9aW7P17yT560zLfJ9Rbzu_MAXqt_y5_L-aHNSEfARnyYlM
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=Top-Down+Synthesis+for+Library+Learning&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Bowers%2C+Matthew&rft.au=Olausson%2C+Theo+X.&rft.au=Wong%2C+Lionel&rft.au=Grand%2C+Gabriel&rft.date=2023-01-09&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=7&rft.issue=POPL&rft.spage=1182&rft.epage=1213&rft_id=info:doi/10.1145%2F3571234&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3571234
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