On Repair with Probabilistic Attribute Grammars

On Repair with Probabilistic Attribute Grammars
复制标题

用概率属性文法修复

DOI:
--
复制
发表时间:
2017
期刊:
ArXiv
影响因子:
--
通讯作者:
Viktor Kunčak
Viktor Kunčak
中科院分区:
--
文献类型:
--
作者:
Manos Koukoutos;Mukund Raghothaman;Etienne Kneuss;Viktor Kunčak

文献摘要

被引文献

相似文献

程序合成和修复已经成为一个令人兴奋的研究领域,这是由程序员生产力的革命性进步的潜力推动的。出现的最有希望的合成想法包括语法驱动的搜索、代码的概率模型和输入输出示例的使用。我们展示了如何结合这些技术并将它们用于程序修复,这是综合在通用代码中最相关的应用之一。我们的方法将以前置条件和后置条件以及输入输出示例的形式的语义规范与以术语语法和从代码语料库提取的AST级别统计的形式的句法规范相结合。我们表明,在这个框架中的综合可以被视为图搜索的一个实例,允许使用众所周知的技术家族,如A*。我们在一个用于验证、综合和修复函数式程序的框架中实现了我们的算法,证明了我们的方法可以修复以前工具所无法修复的程序。
Program synthesis and repair have emerged as an exciting area of research, driven by the potential for revolutionary advances in programmer productivity. Among most promising ideas emerging for synthesis are syntax-driven search, probabilistic models of code, and the use of input-output examples. Our paper shows how to combine these techniques and use them for program repair, which is among the most relevant applications of synthesis to general-purpose code. Our approach combines semantic specifications, in the form of pre- and post-conditions and input-output examples with syntactic specifications in the form of term grammars and AST-level statistics extracted from code corpora. We show that synthesis in this framework can be viewed as an instance of graph search, permitting the use of well-understood families of techniques such as A*. We implement our algorithm in a framework for verification, synthesis and repair of functional programs, demonstrating that our approach can repair programs that are beyond the reach of previous tools.