【24h】

Program Splicing

机译:程序拼接

获取原文
获取原文并翻译 | 示例

摘要

We introduce program splicing, a programming methodology that aims to automate the work ow of copying, pasting, and modifying code available online. Here, the programmer starts by writing a "draft" that mixes un nished code, natural language comments, and correctness requirements. A program synthesizer that interacts with a large, searchable database of program snippets is used to automatically complete the draft into a program that meets the re-quirements. The synthesis process happens in two stages. First, the synthesizer identi es a small number of programs in the database that are relevant to the synthesis task. Next it uses an enumerative search to systematically ll the draft with expressions and statements from these relevant programs. The resulting program is returned to the programmer, who can modify it and possibly invoke additional rounds of synthesis. We present an implementation of program splicing, called Splicer, for the Java programming language. Splicer uses a corpus of over 3.5 million procedures from an open-source software repository. Our evaluation uses the system in a suite of everyday programming tasks, and includes a comparison with a state-of-the-art competing approach as well as a user study. The results point to the broad scope and scalability of program splicing and indicate that the approach can signi cantly boost programmer productivity.
机译:我们介绍程序拼接,这是一种编程方法,旨在自动执行在线复制,粘贴和修改代码的工作。在这里,程序员首先编写“草稿”,将未完成的代码,自然语言注释和正确性要求混合在一起。与大型,可搜索的程序片段数据库进行交互的程序合成器用于将草稿自动完成,从而满足要求。合成过程分为两个阶段。首先,合成器在数据库中识别与合成任务相关的少量程序。接下来,它使用枚举搜索来将这些相关程序的表达式和语句系统地填充到草稿中。生成的程序返回给程序员,程序员可以对其进行修改,并可能调用其他的综合步骤。我们为Java编程语言提供了一个名为Splicer的程序拼接实现。 Splicer使用来自开源软件存储库的超过350万个程序的语料库。我们的评估在一套日常编程任务中使用该系统,并包括与最新竞争方法的比较以及用户研究。结果表明程序拼接的广泛范围和可伸缩性,并表明该方法可以显着提高程序员的生产率。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号