Programming by Examples

Another technical challenge in PBE is to resolve the ambiguity that is inherent in the Espec. We will study how machine learning based ranking techniques can be used to predict an intended program within a set of programs that are consistent with the Espec. We will also discuss some user interaction models including program navigation and active-learning based conversational clarication that communicate actionable information to the user to help resolve ambiguity in the Espec. The above-mentioned concepts will be illustrated using practical PBE systems for data manipulation (including FlashFill, FlashExtract, FlashRelate), some of which have already been deployed in the real world.

[1]  Sumit Gulwani,et al.  SmartSynth: synthesizing smartphone automation scripts from natural language , 2013, MobiSys '13.

[2]  Sumit Gulwani,et al.  Transforming spreadsheet data types using examples , 2016, POPL.

[3]  Sumit Gulwani,et al.  A practical framework for constructing structured drawings , 2014, IUI.

[4]  Sumit Gulwani,et al.  Predicting a Correct Program in Programming by Example , 2015, CAV.

[5]  Pedro M. Domingos,et al.  Version Space Algebra and its Application to Programming by Demonstration , 2000, ICML.

[6]  Sumit Gulwani,et al.  Dimensions in program synthesis , 2010, Formal Methods in Computer Aided Design.

[7]  Sumit Gulwani,et al.  Automating string processing in spreadsheets using input-output examples , 2011, POPL '11.

[8]  Surajit Chaudhuri,et al.  Discovering queries based on example tuples , 2014, SIGMOD Conference.

[9]  Sumit Gulwani,et al.  Compositional Program Synthesis from Natural Language and Examples , 2015, IJCAI.

[10]  Sumit Gulwani,et al.  FlashExtract: a framework for data extraction by examples , 2014, PLDI.

[11]  Neil Immerman,et al.  A simple inductive synthesis methodology and its applications , 2010, OOPSLA.

[12]  Butler W. Lampson,et al.  A Machine Learning Framework for Programming by Example , 2013, ICML.

[13]  Sorin Lerner,et al.  Interactive parser synthesis by example , 2015, PLDI.

[14]  Miryung Kim,et al.  Lase: Locating and applying systematic edits by learning from examples , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[15]  Alexander Aiken,et al.  Stochastic superoptimization , 2012, ASPLOS '13.

[16]  Rajeev Alur,et al.  TRANSIT: specifying protocols with concolic snippets , 2013, PLDI.

[17]  Nikolaj Bjørner,et al.  Taking Satisfiability to the Next Level with Z3 - (Abstract) , 2012, IJCAR.

[18]  Tom M. Mitchell,et al.  Generalization as Search , 2002 .

[19]  Sumit Gulwani,et al.  NLyze: interactive programming by natural language for spreadsheet data analysis and manipulation , 2014, SIGMOD Conference.

[20]  Henry Lieberman,et al.  Watch what I do: programming by demonstration , 1993 .

[21]  Sumit Gulwani,et al.  From program verification to program synthesis , 2010, POPL '10.

[22]  Armando Solar-Lezama,et al.  Program synthesis by sketching , 2008 .

[23]  Sumit Gulwani,et al.  Spreadsheet data manipulation using examples , 2012, CACM.

[24]  Sumit Gulwani,et al.  FlashMeta: a framework for inductive program synthesis , 2015, OOPSLA.

[25]  Butler W. Lampson,et al.  A colorful approach to text processing by example , 2013, UIST.

[26]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, FMCAD 2013.

[27]  Sumit Gulwani,et al.  User Interaction Models for Disambiguation in Programming by Example , 2015, UIST.

[28]  Sumit Gulwani,et al.  Synthesis of loop-free programs , 2011, PLDI '11.

[29]  Peter-Michael Osera,et al.  Type-and-example-directed program synthesis , 2015, PLDI.

[30]  Isil Dillig,et al.  Synthesizing data structure transformations from input-output examples , 2015, PLDI.

[31]  Sumit Gulwani,et al.  FlashRelate: extracting relational data from semi-structured spreadsheets using examples , 2015, PLDI.

[32]  Tessa Lau,et al.  Why PBD systems fail: Lessons learned for usable AI , 2008 .