【24h】

Disjunctive Program Synthesis: A Robust Approach to Programming by Example

机译:分析程序综合:按示例进行编程的强大方法

获取原文

摘要

Programming by example (PBE) systems allow end users to easily create programs by providing a few input-output examples to specify their intended task. The system attempts to generate a program in a domain specific language (DSL) that satisfies the given examples. However, a key challenge faced by existing PBE techniques is to ensure the robustness of the programs that are synthesized from a small number of examples, as these programs often fail when applied to new inputs. This is because there can be many possible programs satisfying a small number of examples, and the PBE system has to somehow rank between these candidates and choose the correct one without any further information from the user. In this work we present a different approach to PBE in which the system avoids making a ranking decision at the synthesis stage, by instead synthesizing a disjunctive program that includes the many possible top-ranked programs as possible alternatives and selects between these different choices upon execution on a new input. This delayed choice brings the important benefit of comparing the possible outputs produced by the different disjuncts on a given input at execution time. We present a generic framework for synthesizing such disjunctive programs in arbitrary DSLs, and describe two concrete implementations of disjunctive synthesis in the practical domains of data extraction from plain text and HTML documents. We present an evaluation showing the significant increase in robustness achieved with our disjunctive approach, as illustrated by an increase from 59% to 93% of tasks for which correct programs can be learnt from a single example.
机译:按示例(PBE)系统编程允许最终用户通过提供一些输入输出示例来轻松创建程序,以指定其预期任务。系统尝试以满足给定示例的域特定语言(DSL)生成程序。然而,现有PBE技术面临的关键挑战是确保从少数示例中合成的程序的稳健性,因为这些程序在应用于新输入时经常失败。这是因为可以有许多满足少量示例的可能程序,并且PBE系统必须在这些候选之间的某种方向等级,并且在没有来自用户的任何进一步信息的情况下选择正确的。在这项工作中,我们向PBE提出了一种不同的方法,其中系统避免在合成阶段进行排名决策,而是通过综合解除程序,该分解程序包括在执行时选择许多可能的排名替代方案,并在执行时选择这些不同的选择之间的选择在一个新的输入上。这种延迟选择为比较在执行时间的给定输入上的不同分布产生的可能输出的重要益处。我们提出了一种在任意DSL中综合这种析出程序的通用框架,并描述了从纯文本和HTML文档的数据提取的实际域中分解合成的两个具体实施。我们提出了一个评价,显示了通过我们的分解方法实现的稳健性的显着增加,如可以从一个例子中学习正确的程序的59%到93%的任务所示。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号