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...
Gespeichert in:
| Veröffentlicht in: | Proceedings of ACM on programming languages Jg. 3; H. POPL; S. 1 - 29 |
|---|---|
| Hauptverfasser: | , , |
| 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 |