FrAngel: component-based synthesis with control structures

In component-based program synthesis, the synthesizer generates a program given a library of components (functions). Existing component-based synthesizers have difficulty synthesizing loops and other control structures, and they often require formal specifications of the components, which can be exp...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Proceedings of ACM on programming languages Jg. 3; H. POPL; S. 1 - 29
Hauptverfasser: Shi, Kensen, Steinhardt, Jacob, Liang, Percy
Format: Journal Article
Sprache:Englisch
Veröffentlicht: New York, NY, USA ACM 02.01.2019
Schlagworte:
ISSN:2475-1421, 2475-1421
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Abstract In component-based program synthesis, the synthesizer generates a program given a library of components (functions). Existing component-based synthesizers have difficulty synthesizing loops and other control structures, and they often require formal specifications of the components, which can be expensive to generate. We present FrAngel, a new approach to component-based synthesis that can synthesize short Java functions with control structures when given a desired signature, a set of input-output examples, and a collection of libraries (without formal specifications). FrAngel aims to discover programs with many distinct behaviors by combining two main ideas. First, it mines code fragments from partially-successful programs that only pass some of the examples. These extracted fragments are often useful for synthesis due to a property that we call special-case similarity. Second, FrAngel uses angelic conditions as placeholders for control structure conditions and optimistically evaluates the resulting program sketches. Angelic conditions decompose the synthesis process: FrAngel first finds promising partial programs and later fills in their missing conditions. We demonstrate that FrAngel can synthesize a variety of interesting programs with combinations of control structures within seconds, significantly outperforming prior state-of-the-art.
AbstractList In component-based program synthesis, the synthesizer generates a program given a library of components (functions). Existing component-based synthesizers have difficulty synthesizing loops and other control structures, and they often require formal specifications of the components, which can be expensive to generate. We present FrAngel, a new approach to component-based synthesis that can synthesize short Java functions with control structures when given a desired signature, a set of input-output examples, and a collection of libraries (without formal specifications). FrAngel aims to discover programs with many distinct behaviors by combining two main ideas. First, it mines code fragments from partially-successful programs that only pass some of the examples. These extracted fragments are often useful for synthesis due to a property that we call special-case similarity. Second, FrAngel uses angelic conditions as placeholders for control structure conditions and optimistically evaluates the resulting program sketches. Angelic conditions decompose the synthesis process: FrAngel first finds promising partial programs and later fills in their missing conditions. We demonstrate that FrAngel can synthesize a variety of interesting programs with combinations of control structures within seconds, significantly outperforming prior state-of-the-art.
ArticleNumber 73
Author Liang, Percy
Steinhardt, Jacob
Shi, Kensen
Author_xml – sequence: 1
  givenname: Kensen
  surname: Shi
  fullname: Shi, Kensen
  email: shi.kensen@gmail.com
  organization: Stanford University, USA
– sequence: 2
  givenname: Jacob
  surname: Steinhardt
  fullname: Steinhardt, Jacob
  email: jsteinhardt@cs.stanford.edu
  organization: Stanford University, USA
– sequence: 3
  givenname: Percy
  surname: Liang
  fullname: Liang, Percy
  email: pliang@cs.stanford.edu
  organization: Stanford University, USA
BookMark eNptj0FLAzEQhYNUsNbi3dPePK0mmaxJeivFqlDwoudlNiY2spstSYr037ulVUQ8zYP38THvnIxCHywhl4zeMCaqW-Cagro7IWMuZFUywdnoVz4j05Q-KKVMg1Cgx2S2jPPwbttZYfpuM8hCLhtM9q1Iu5DXNvlUfPq8HuqQY98WKcetydto0wU5ddgmOz3eCXld3r8sHsvV88PTYr4qkUs52IxUoIxwKChw5FxJLUBzZ1XDlUMjgEIjnXJUMWccQtVoC5ZLVJWoACbk-uA1sU8pWldvou8w7mpG6_3q-rh6IMs_pPEZs9-_jr79h7868Gi6H-l3-QXi_2Hw
CitedBy_id crossref_primary_10_1145_3473588
crossref_primary_10_1007_s11390_020_0520_4
crossref_primary_10_1007_s10515_022_00343_z
crossref_primary_10_1145_3632860
crossref_primary_10_1145_3632870
crossref_primary_10_1007_s10515_020_00276_5
crossref_primary_10_1145_3485530
crossref_primary_10_1145_3517034
crossref_primary_10_1145_3591255
crossref_primary_10_1016_j_jss_2025_112335
crossref_primary_10_1145_3563310
crossref_primary_10_1016_j_ins_2025_122156
crossref_primary_10_1016_j_jss_2025_112565
crossref_primary_10_1145_3360558
crossref_primary_10_1145_3371080
crossref_primary_10_1145_3498682
crossref_primary_10_1145_3649837
Cites_doi 10.1145/2568225.2568250
10.1145/1993498.1993505
10.1145/1993498.1993506
10.1145/1065010.1065018
10.1145/2594291.2594321
10.1145/1706299.1706339
10.1007/978-3-642-22110-1_33
10.1145/2737924.2737977
10.1145/1806799.1806833
10.1145/2594291.2594297
10.1109/ICSE.2009.5070536
10.1145/2908080.2908121
10.1145/1706299.1706337
10.1145/3009837.3009851
10.1145/2786805.2786875
10.1145/2908080.2908088
10.1145/2442516.2442529
10.1007/978-3-662-54577-5_18
10.1145/3062341.3062351
10.1145/1926385.1926423
10.1145/2863701
10.1145/1993498.1993536
10.1145/2737924.2738007
10.1145/2491956.2462192
10.1109/WCRE.2012.51
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3290386
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 29
ExternalDocumentID 10_1145_3290386
3290386
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ID FETCH-LOGICAL-a277t-bc7838c4fa4032a228794392fe8b28fac4303b7f8f081fcfa35b9e3e27a854533
ISICitedReferencesCount 38
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000678450300073&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 Tue Nov 18 21:13:24 EST 2025
Sat Nov 29 07:45:46 EST 2025
Mon Feb 24 21:14:27 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords program synthesis
component-based synthesis
control structures
angelic execution
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a277t-bc7838c4fa4032a228794392fe8b28fac4303b7f8f081fcfa35b9e3e27a854533
OpenAccessLink https://dl.acm.org/doi/10.1145/3290386
PageCount 29
ParticipantIDs crossref_primary_10_1145_3290386
crossref_citationtrail_10_1145_3290386
acm_primary_3290386
PublicationCentury 2000
PublicationDate 2019-01-02
PublicationDateYYYYMMDD 2019-01-02
PublicationDate_xml – month: 01
  year: 2019
  text: 2019-01-02
  day: 02
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2019
Publisher ACM
Publisher_xml – name: ACM
References Tihomir Gvero, Viktor Kuncak, and Ruzica Piskac. 2011. Interactive Synthesis of Code Snippets. In Computer Aided Verification (CAV) .
Sumit Gulwani. 2011. Automating String Processing in Spreadsheets Using Input-Output Examples. In Principles of Programming Languages (POPL) . 10.1145/1926385.1926423
Matej Balog, Alexander L Gaunt, Marc Brockschmidt, Sebastian Nowozin, and Daniel Tarlow. 2017. DeepCoder: Learning to Write Programs. In International Conference on Learning Representations (ICLR).
Chris Maddison and Daniel Tarlow. 2014. Structured Generative Models of Natural Source Code. In International Conference on Machine Learning (ICML) .
Peter-Michael Osera and Steve Zdancewic. 2015. Type-and-Example-Directed Program Synthesis. In Programming Language Design and Implementation (PLDI) . 10.1145/2737924.2738007
Stefan Heule, Manu Sridharan, and Satish Chandra. 2015. Mimic: Computing Models for Opaque Code. In Foundations of Software Engineering (FSE) . 10.1145/2786805.2786875
David Mandelin, Lin Xu, Rastislav Bodík, and Doug Kimelman. 2005. Jungloid Mining: Helping to Navigate the APIJungle. In Programming Language Design and Implementation (PLDI). 10.1145/1065010.1065018
Armando Solar-Lezama. 2008. Program Synthesis by Sketching. Ph.D. Dissertation. University of California, Berkeley.
Yoah Bar-David and Gadi Taubenfeld. 2003. Automatic Discovery of Mutual Exclusion Algorithms. In International Symposium on Distributed Computing (DISC) .
Susumu Katayama. 2005. Systematic Search for Lambda Expressions. Trends in Functional Programming 6 (2005), 111–126.
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 (TACAS).
Jacob Devlin, Jonathan Uesato, Surya Bhupatiraju, Rishabh Singh, Abdel-rahman Mohamed, and Pushmeet Kohli. 2017. RobustFill: Neural Program Learning under Noisy I/O. In International Conference on Machine Learning (ICML).
Tessa A Lau, Pedro M Domingos, and Daniel S Weld. 2000. Version Space Algebra and its Application to Programming by Demonstration. In International Conference on Machine Learning (ICML).
William R. Harris and Sumit Gulwani. 2011. Spreadsheet Table Transformations from Examples. In Programming Language Design and Implementation (PLDI) . 10.1145/1993498.1993536
Rastislav Bodík, Satish Chandra, Joel Galenson, Doug Kimelman, Nicholas Tung, Shaon Barman, and Casey Rodarmor. 2010. Programming with Angelic Nondeterminism. In Principles of Programming Languages (POPL). 10.1145/1706299.1706339
Sumit Gulwani, Vijay Anand Korthikanti, and Ashish Tiwari. 2011b. Synthesizing Geometry Constructions. In Programming Language Design and Implementation (PLDI) . 10.1145/1993498.1993505
Tihomir Gvero, Viktor Kuncak, Ivan Kuraj, and Ruzica Piskac. 2013. Complete Completion Using Types and Weights. In Programming Language Design and Implementation (PLDI) . 10.1145/2491956.2462192
Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. 2009. Automatically Finding Patches Using Genetic Programming. In International Conference on Software Engineering (ICSE). 10.1109/ICSE.2009.5070536
John K. Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing Data Structure Transformations from Input-Output Examples. In Programming Language Design and Implementation (PLDI). 10.1145/2737924.2737977
Veselin Raychev, Martin Vechev, and Eran Yahav. 2014. Code Completion with Statistical Language Models. In Programming Language Design and Implementation (PLDI) . 10.1145/2594291.2594321
Dawei Qi, William N. Sumner, Feng Qin, Mai Zheng, Xiangyu Zhang, and Abhik Roychoudhury. 2012. Modeling Software Execution Environment. In Working Conference on Reverse Engineering (WCRE). 10.1109/WCRE.2012.51
Kensen Shi, Jacob Steinhardt, and Percy Liang. 2018. FrAngel Source Code and Experimental Results. https://www.github. com/kensens/FrAngel .
Gilles Barthe, Juan Manuel Crespo, Sumit Gulwani, Cesar Kunz, and Mark Marron. 2013. From Relational Verification to SIMDLoop Synthesis. In Principles and Practice of Parallel Programming (PPoPP). 10.1145/2442516.2442529
Sumit Gulwani, Susmit Jha, Ashish Tiwari, and Ramarathnam Venkatesan. 2011a. Synthesis of Loop-Free Programs. In Programming Language Design and Implementation (PLDI) . 10.1145/1993498.1993506
Susmit Jha, Sumit Gulwani, Sanjit A Seshia, and Ashish Tiwari. 2010. Oracle-Guided Component-Based Program Synthesis. In International Conference on Software Engineering (ICSE). 10.1145/1806799.1806833
Navid Yaghmazadeh, Christian Klinger, Isil Dillig, and Swarat Chaudhuri. 2016. Synthesizing Transformations on Hierarchically Structured Data. In Programming Language Design and Implementation (PLDI). 10.1145/2908080.2908088
Eric Schkufza, Rahul Sharma, and Alex Aiken. 2016. Stochastic Program Optimization. Commun. ACM 59, 2 (2016), 114–122. 10.1145/2863701
Daniel Perelman, Sumit Gulwani, Dan Grossman, and Peter Provost. 2014. Test-Driven Synthesis. In Programming Language Design and Implementation (PLDI) . 10.1145/2594291.2594297
Theodore E Harris. 2002. The Theory of Branching Processes. Courier Corporation.
Saurabh Srivastava, Sumit Gulwani, and Jeffrey S. Foster. 2010. From Program Verification to Program Synthesis. In Principles of Programming Languages (POPL) . 10.1145/1706299.1706337
Yu Feng, Ruben Martins, Jacob Van Geffen, Isil Dillig, and Swarat Chaudhuri. 2017a. Component-Based Synthesis of Table Consolidation and Transformation Tasks from Examples. In Programming Language Design and Implementation (PLDI). 10.1145/3062341.3062351
Joel Galenson, Philip Reames, Rastislav Bodík, Björn Hartmann, and Koushik Sen. 2014. Codehint: Dynamic and Interactive Synthesis of Code Snippets. In International Conference on Software Engineering (ICSE). 10.1145/2568225.2568250
Stefan Heule, Eric Schkufza, Rahul Sharma, and Alex Aiken. 2016. Stratified Synthesis: Automatically Learning the x86-64 Instruction Set. In Programming Language Design and Implementation (PLDI). 10.1145/2908080.2908121
Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, and Thomas W. Reps. 2017b. Component-Based Synthesis for Complex APIs. In Principles of Programming Languages (POPL). 10.1145/3009837.3009851
Aditya Krishna Menon, Omer Tamuz, Sumit Gulwani, Butler Lampson, and Adam Tauman Kalai. 2013. A Machine Learning Framework for Programming by Example. In International Conference on Machine Learning (ICML).
e_1_2_2_4_1
e_1_2_2_5_1
e_1_2_2_24_1
e_1_2_2_7_1
e_1_2_2_1_1
e_1_2_2_20_1
Maddison Chris (e_1_2_2_23_1) 2014
e_1_2_2_9_1
e_1_2_2_29_1
e_1_2_2_8_1
e_1_2_2_28_1
e_1_2_2_27_1
Harris Theodore E (e_1_2_2_16_1)
e_1_2_2_26_1
Balog Matej (e_1_2_2_2_1) 2017
Lau Tessa A (e_1_2_2_22_1) 2000
e_1_2_2_14_1
e_1_2_2_13_1
e_1_2_2_12_1
Menon Aditya Krishna (e_1_2_2_25_1) 2013
e_1_2_2_11_1
Devlin Jacob (e_1_2_2_6_1) 2017
e_1_2_2_10_1
e_1_2_2_30_1
e_1_2_2_31_1
e_1_2_2_19_1
e_1_2_2_18_1
e_1_2_2_33_1
e_1_2_2_17_1
e_1_2_2_34_1
e_1_2_2_35_1
e_1_2_2_15_1
Bar-David Yoah (e_1_2_2_3_1) 2003
Katayama Susumu (e_1_2_2_21_1) 2005; 6
References_xml – reference: Susumu Katayama. 2005. Systematic Search for Lambda Expressions. Trends in Functional Programming 6 (2005), 111–126.
– reference: Saurabh Srivastava, Sumit Gulwani, and Jeffrey S. Foster. 2010. From Program Verification to Program Synthesis. In Principles of Programming Languages (POPL) . 10.1145/1706299.1706337
– reference: Joel Galenson, Philip Reames, Rastislav Bodík, Björn Hartmann, and Koushik Sen. 2014. Codehint: Dynamic and Interactive Synthesis of Code Snippets. In International Conference on Software Engineering (ICSE). 10.1145/2568225.2568250
– reference: Peter-Michael Osera and Steve Zdancewic. 2015. Type-and-Example-Directed Program Synthesis. In Programming Language Design and Implementation (PLDI) . 10.1145/2737924.2738007
– reference: Kensen Shi, Jacob Steinhardt, and Percy Liang. 2018. FrAngel Source Code and Experimental Results. https://www.github. com/kensens/FrAngel .
– reference: Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. 2009. Automatically Finding Patches Using Genetic Programming. In International Conference on Software Engineering (ICSE). 10.1109/ICSE.2009.5070536
– 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 (TACAS).
– reference: Yoah Bar-David and Gadi Taubenfeld. 2003. Automatic Discovery of Mutual Exclusion Algorithms. In International Symposium on Distributed Computing (DISC) .
– reference: Theodore E Harris. 2002. The Theory of Branching Processes. Courier Corporation.
– reference: Veselin Raychev, Martin Vechev, and Eran Yahav. 2014. Code Completion with Statistical Language Models. In Programming Language Design and Implementation (PLDI) . 10.1145/2594291.2594321
– reference: Matej Balog, Alexander L Gaunt, Marc Brockschmidt, Sebastian Nowozin, and Daniel Tarlow. 2017. DeepCoder: Learning to Write Programs. In International Conference on Learning Representations (ICLR).
– reference: Tihomir Gvero, Viktor Kuncak, and Ruzica Piskac. 2011. Interactive Synthesis of Code Snippets. In Computer Aided Verification (CAV) .
– reference: Sumit Gulwani, Vijay Anand Korthikanti, and Ashish Tiwari. 2011b. Synthesizing Geometry Constructions. In Programming Language Design and Implementation (PLDI) . 10.1145/1993498.1993505
– reference: Tessa A Lau, Pedro M Domingos, and Daniel S Weld. 2000. Version Space Algebra and its Application to Programming by Demonstration. In International Conference on Machine Learning (ICML).
– reference: Eric Schkufza, Rahul Sharma, and Alex Aiken. 2016. Stochastic Program Optimization. Commun. ACM 59, 2 (2016), 114–122. 10.1145/2863701
– reference: Rastislav Bodík, Satish Chandra, Joel Galenson, Doug Kimelman, Nicholas Tung, Shaon Barman, and Casey Rodarmor. 2010. Programming with Angelic Nondeterminism. In Principles of Programming Languages (POPL). 10.1145/1706299.1706339
– reference: Stefan Heule, Eric Schkufza, Rahul Sharma, and Alex Aiken. 2016. Stratified Synthesis: Automatically Learning the x86-64 Instruction Set. In Programming Language Design and Implementation (PLDI). 10.1145/2908080.2908121
– reference: Sumit Gulwani, Susmit Jha, Ashish Tiwari, and Ramarathnam Venkatesan. 2011a. Synthesis of Loop-Free Programs. In Programming Language Design and Implementation (PLDI) . 10.1145/1993498.1993506
– reference: Jacob Devlin, Jonathan Uesato, Surya Bhupatiraju, Rishabh Singh, Abdel-rahman Mohamed, and Pushmeet Kohli. 2017. RobustFill: Neural Program Learning under Noisy I/O. In International Conference on Machine Learning (ICML).
– reference: Daniel Perelman, Sumit Gulwani, Dan Grossman, and Peter Provost. 2014. Test-Driven Synthesis. In Programming Language Design and Implementation (PLDI) . 10.1145/2594291.2594297
– reference: Dawei Qi, William N. Sumner, Feng Qin, Mai Zheng, Xiangyu Zhang, and Abhik Roychoudhury. 2012. Modeling Software Execution Environment. In Working Conference on Reverse Engineering (WCRE). 10.1109/WCRE.2012.51
– reference: Armando Solar-Lezama. 2008. Program Synthesis by Sketching. Ph.D. Dissertation. University of California, Berkeley.
– reference: Yu Feng, Ruben Martins, Jacob Van Geffen, Isil Dillig, and Swarat Chaudhuri. 2017a. Component-Based Synthesis of Table Consolidation and Transformation Tasks from Examples. In Programming Language Design and Implementation (PLDI). 10.1145/3062341.3062351
– reference: Susmit Jha, Sumit Gulwani, Sanjit A Seshia, and Ashish Tiwari. 2010. Oracle-Guided Component-Based Program Synthesis. In International Conference on Software Engineering (ICSE). 10.1145/1806799.1806833
– reference: Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, and Thomas W. Reps. 2017b. Component-Based Synthesis for Complex APIs. In Principles of Programming Languages (POPL). 10.1145/3009837.3009851
– reference: Sumit Gulwani. 2011. Automating String Processing in Spreadsheets Using Input-Output Examples. In Principles of Programming Languages (POPL) . 10.1145/1926385.1926423
– reference: Chris Maddison and Daniel Tarlow. 2014. Structured Generative Models of Natural Source Code. In International Conference on Machine Learning (ICML) .
– reference: Aditya Krishna Menon, Omer Tamuz, Sumit Gulwani, Butler Lampson, and Adam Tauman Kalai. 2013. A Machine Learning Framework for Programming by Example. In International Conference on Machine Learning (ICML).
– reference: Navid Yaghmazadeh, Christian Klinger, Isil Dillig, and Swarat Chaudhuri. 2016. Synthesizing Transformations on Hierarchically Structured Data. In Programming Language Design and Implementation (PLDI). 10.1145/2908080.2908088
– reference: Gilles Barthe, Juan Manuel Crespo, Sumit Gulwani, Cesar Kunz, and Mark Marron. 2013. From Relational Verification to SIMDLoop Synthesis. In Principles and Practice of Parallel Programming (PPoPP). 10.1145/2442516.2442529
– reference: David Mandelin, Lin Xu, Rastislav Bodík, and Doug Kimelman. 2005. Jungloid Mining: Helping to Navigate the APIJungle. In Programming Language Design and Implementation (PLDI). 10.1145/1065010.1065018
– reference: John K. Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing Data Structure Transformations from Input-Output Examples. In Programming Language Design and Implementation (PLDI). 10.1145/2737924.2737977
– reference: William R. Harris and Sumit Gulwani. 2011. Spreadsheet Table Transformations from Examples. In Programming Language Design and Implementation (PLDI) . 10.1145/1993498.1993536
– reference: Stefan Heule, Manu Sridharan, and Satish Chandra. 2015. Mimic: Computing Models for Opaque Code. In Foundations of Software Engineering (FSE) . 10.1145/2786805.2786875
– reference: Tihomir Gvero, Viktor Kuncak, Ivan Kuraj, and Ruzica Piskac. 2013. Complete Completion Using Types and Weights. In Programming Language Design and Implementation (PLDI) . 10.1145/2491956.2462192
– ident: e_1_2_2_10_1
  doi: 10.1145/2568225.2568250
– ident: e_1_2_2_13_1
  doi: 10.1145/1993498.1993505
– ident: e_1_2_2_12_1
  doi: 10.1145/1993498.1993506
– ident: e_1_2_2_24_1
  doi: 10.1145/1065010.1065018
– volume-title: The Theory of Branching Processes
  ident: e_1_2_2_16_1
– ident: e_1_2_2_29_1
  doi: 10.1145/2594291.2594321
– ident: e_1_2_2_5_1
  doi: 10.1145/1706299.1706339
– ident: e_1_2_2_15_1
  doi: 10.1007/978-3-642-22110-1_33
– volume: 6
  start-page: 111
  year: 2005
  ident: e_1_2_2_21_1
  article-title: Systematic Search for Lambda Expressions
  publication-title: Trends in Functional Programming
– ident: e_1_2_2_9_1
  doi: 10.1145/2737924.2737977
– ident: e_1_2_2_20_1
  doi: 10.1145/1806799.1806833
– ident: e_1_2_2_31_1
– ident: e_1_2_2_27_1
  doi: 10.1145/2594291.2594297
– ident: e_1_2_2_34_1
  doi: 10.1109/ICSE.2009.5070536
– ident: e_1_2_2_18_1
  doi: 10.1145/2908080.2908121
– ident: e_1_2_2_33_1
  doi: 10.1145/1706299.1706337
– ident: e_1_2_2_8_1
  doi: 10.1145/3009837.3009851
– ident: e_1_2_2_19_1
  doi: 10.1145/2786805.2786875
– volume-title: International Conference on Machine Learning (ICML).
  year: 2013
  ident: e_1_2_2_25_1
– volume-title: Structured Generative Models of Natural Source Code. In International Conference on Machine Learning (ICML) .
  year: 2014
  ident: e_1_2_2_23_1
– ident: e_1_2_2_35_1
  doi: 10.1145/2908080.2908088
– ident: e_1_2_2_4_1
  doi: 10.1145/2442516.2442529
– ident: e_1_2_2_1_1
  doi: 10.1007/978-3-662-54577-5_18
– ident: e_1_2_2_7_1
  doi: 10.1145/3062341.3062351
– ident: e_1_2_2_11_1
  doi: 10.1145/1926385.1926423
– volume-title: International Conference on Learning Representations (ICLR).
  year: 2017
  ident: e_1_2_2_2_1
– ident: e_1_2_2_30_1
  doi: 10.1145/2863701
– ident: e_1_2_2_17_1
  doi: 10.1145/1993498.1993536
– volume-title: International Conference on Machine Learning (ICML).
  year: 2017
  ident: e_1_2_2_6_1
– ident: e_1_2_2_26_1
  doi: 10.1145/2737924.2738007
– volume-title: Automatic Discovery of Mutual Exclusion Algorithms. In International Symposium on Distributed Computing (DISC) .
  year: 2003
  ident: e_1_2_2_3_1
– volume-title: International Conference on Machine Learning (ICML).
  year: 2000
  ident: e_1_2_2_22_1
– ident: e_1_2_2_14_1
  doi: 10.1145/2491956.2462192
– ident: e_1_2_2_28_1
  doi: 10.1109/WCRE.2012.51
SSID ssj0001934839
Score 2.3688703
Snippet In component-based program synthesis, the synthesizer generates a program given a library of components (functions). Existing component-based synthesizers have...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 1
SubjectTerms Automatic programming
Context specific languages
Programming by example
Software and its engineering
Software creation and management
Software development techniques
Software notations and tools
SubjectTermsDisplay Software and its engineering -- Software creation and management -- Software development techniques -- Automatic programming
Software and its engineering -- Software notations and tools -- Context specific languages -- Programming by example
Title FrAngel: component-based synthesis with control structures
URI https://dl.acm.org/doi/10.1145/3290386
Volume 3
WOSCitedRecordID wos000678450300073&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/eLvHCXMwtV1La9wwEBZt2kMvfaQp2b7QIfSm1tZjJeW2hIYc8jAkhdwWW5bIQuOE3bbk1N_eGXvsNdtA20MvZhGSMZrZmU-jb2YY21MJ7OF0mgn46xihfV4LZ1IlgiyVjmqaxzprm03Y01N3eekLCuiv2nYCtmnc3Z2__a-ihjEQNqbO_oO4h5fCAPwGocMTxA7PvxL84XKGRFU86iNf_KYBtyLQWdVYngDwHpYg6RnnLU29qyH7fUl0QoKqxeDaWrbH7OAELxaIz3WNEYY-1jnA8vOrBeX6rNYZZufYTxNzu7pbD7DA1cACWlC0uohLKk5MAQjMecpFNopJSm2NyHWX6Pwx3jNGhlaN9Kk4K45HdjMfOeAuAvK7addYBUNJn6n7imdvOLWBatglXps5LXzIHklrPJL_Tn6OonFeade2nRu-vMuwxrWfaC0CmHA9AjAjJHLxnD2lIwSfdaJ_wR7EZps969tzcLLWL9k-acI-39ADPugBRz3gpAd8rQc77Mvh54uDI0GtMkQprYXVwTrlgk6lzpQsJZyDPUBNmaKrpEtl0ABVKptcAgiYQiqVqXxUUdrSAYZW6hXbauBDdhmv4MBel3WVVMi1DcFlxkRTtRe2Xtf5hG3DLsxvu2Io_b5O2Id-V-aBqstjk5Ov8w0BTBgfJvbv2Jjy-s9T3rAna1V8y7Zgf-I79jj8-LZYLd-3sv0FbXVnLg
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=FrAngel%3A+component-based+synthesis+with+control+structures&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Shi%2C+Kensen&rft.au=Steinhardt%2C+Jacob&rft.au=Liang%2C+Percy&rft.date=2019-01-02&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=POPL&rft.spage=1&rft.epage=29&rft_id=info:doi/10.1145%2F3290386&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3290386
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