We consider the problem of learning to repair programs from diagnostic feedback (e.g., compiler error messages). Program repair is challenging for two reasons: First, it requires reasoning and tracking symbols across source code and diagnostic feedback. Second, labeled datasets available for program repair are relatively small. In this work, we propose novel solutions to these two challenges. First, we introduce a program-feedback graph, which connects symbols relevant to program repair in source code and diagnostic feedback, and then apply a graph neural network on top to model the reasoning process. Second, we present a self-supervised learning paradigm for program repair that leverages unlabeled programs available online to create a large amount of extra program repair examples, which we use to pre-train our models. We evaluate our proposed approach on two applications: correcting introductory programming assignments (DeepFix dataset) and correcting the outputs of program synthesis (SPoC dataset). Our final system, DrRepair, significantly outperforms prior work, achieving 68.2% full repair rate on DeepFix (+22.9% over the prior best), and 48.4% synthesis success rate on SPoC (+3.7% over the prior best).


翻译:我们从诊断反馈(例如,编译错误信息)中考虑学习修补程序的问题。方案修补具有挑战性,原因有二:第一,它需要源代码之间的推理和跟踪符号和诊断反馈。第二,用于程序修理的标签数据集相对较少。在这项工作中,我们提出了应对这两项挑战的新办法。首先,我们引入了一个程序反馈图,将源代码和诊断反馈中与程序修理有关的符号连接起来,然后在顶端应用一个图形神经网络,以模拟推理过程。第二,我们提出了一个自监督的程序修补模式,利用在线无标签程序创建大量额外的程序修补示例,我们用这些示例来预先培训我们的模型。我们评估了我们提出的两种应用方法:纠正介绍性编程任务(Depfix数据集)和纠正方案综合产出(SPoC数据集),我们的最后系统,DrRepair,大大超越了先前的工作,在DeepFix(+22.9%)上实现了68.2%的完全修补率,在SPoC+先前的成功率上实现了48.4%的成功率。

0
下载
关闭预览

相关内容

Stabilizing Transformers for Reinforcement Learning
专知会员服务
58+阅读 · 2019年10月17日
AAAI2020 图相关论文集
图与推荐
10+阅读 · 2020年7月15日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
LibRec 每周精选:近期推荐系统论文及进展
机器学习研究会
4+阅读 · 2018年2月5日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Continual Unsupervised Representation Learning
Arxiv
7+阅读 · 2019年10月31日
Arxiv
4+阅读 · 2019年4月3日
Learning to Weight for Text Classification
Arxiv
8+阅读 · 2019年3月28日
VIP会员
相关VIP内容
Stabilizing Transformers for Reinforcement Learning
专知会员服务
58+阅读 · 2019年10月17日
相关资讯
AAAI2020 图相关论文集
图与推荐
10+阅读 · 2020年7月15日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
LibRec 每周精选:近期推荐系统论文及进展
机器学习研究会
4+阅读 · 2018年2月5日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员