Predicting a Correct Program in Programming by Example

被引:34
|
作者
Singh, Rishabh [1 ]
Gulwani, Sumit [1 ]
机构
[1] Microsoft Res, Redmond, WA 98052 USA
来源
关键词
D O I
10.1007/978-3-319-21690-4_23
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
We study the problem of efficiently predicting a correct program from a large set of programs induced from few input-output examples in Programming-by-Example (PBE) systems. This is an important problem for making PBE systems usable so that users do not need to provide too many examples to learn the desired program. We first formalize the two classes of sharing that occurs in version-space algebra (VSA) based PBE systems, namely set-based sharing and path-based sharing. We then present a supervised machine learning approach for learning a hierarchical ranking function to efficiently predict a correct program. The key observation of our learning approach is that ranking any correct program higher than all incorrect programs is sufficient for generating the correct output on new inputs, which leads to a novel loss function in the gradient descent based learning algorithm. We evaluate our ranking technique for the FlashFill PBE system on over 175 benchmarks obtained from the Excel product team and help forums. Our ranking technique works in real-time, reduces the average number of examples required for learning the desired transformation from 4.17 to 1.48, and learns the transformation from just one input-output example for 74% of the benchmarks. The ranking scheme played a pivotal role in making FlashFill usable for millions of Excel users.
引用
收藏
页码:398 / 414
页数:17
相关论文
共 50 条
  • [1] JACKSON STRUCTURED PROGRAMMING - A CORRECT EXAMPLE
    GEORGE, W
    [J]. ANGEWANDTE INFORMATIK, 1980, (03): : 91 - 95
  • [2] CORRECT PROGRAMMING
    HEYKE, HE
    [J]. POLITISCHE VIERTELJAHRESSCHRIFT, 1969, 10 (01) : 153 - 158
  • [3] Disjunctive Program Synthesis: A Robust Approach to Programming by Example
    Raza, Mohammad
    Gulwani, Sumit
    [J]. THIRTY-SECOND AAAI CONFERENCE ON ARTIFICIAL INTELLIGENCE / THIRTIETH INNOVATIVE APPLICATIONS OF ARTIFICIAL INTELLIGENCE CONFERENCE / EIGHTH AAAI SYMPOSIUM ON EDUCATIONAL ADVANCES IN ARTIFICIAL INTELLIGENCE, 2018, : 1403 - 1412
  • [4] Example-Driven Program Synthesis for End-User Programming
    Rinard, Martin C.
    [J]. COMMUNICATIONS OF THE ACM, 2012, 55 (08) : 96 - 96
  • [5] A CORRECT EXAMPLE OF MULTIPLE INHERITANCE
    ERIKSSON, M
    [J]. SIGPLAN NOTICES, 1990, 25 (07): : 7 - 10
  • [6] Correct program parallelisations
    Blom, S.
    Darabi, S.
    Huisman, M.
    Safari, M.
    [J]. INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2021, 23 (05) : 741 - 763
  • [7] Correct program parallelisations
    S. Blom
    S. Darabi
    M. Huisman
    M. Safari
    [J]. International Journal on Software Tools for Technology Transfer, 2021, 23 : 741 - 763
  • [8] Programming Strategies and Regional Learning for Local Independent Television Stations: From an example of programming a local resource program
    Suzuki, Katsumi
    [J]. Kyokai Joho Imeji Zasshi/Journal of the Institute of Image Information and Television Engineers, 2024, 78 (05): : 598 - 603
  • [9] CORRECT CLASSES OF EVALUATIONS IN LOGICAL PROGRAMMING
    GAVRILENKO, YV
    [J]. DOKLADY AKADEMII NAUK SSSR, 1991, 317 (03): : 535 - 539
  • [10] FLEXIBLE CORRECT-BY-CONSTRUCTION PROGRAMMING
    Runge, Tobias
    Bordis, Tabea
    Potanin, Alex
    Thuem, Thomas
    Schaefer, Ina
    [J]. LOGICAL METHODS IN COMPUTER SCIENCE, 2023, 19 (02) : 16:1 - 16:36