SPoC:基于搜索的伪代码到代码翻译
机器学习
2019-06-13 v1 计算与语言
编程语言
机器学习
摘要
我们考虑将伪代码映射为功能正确的长程序这一任务。以测试用例作为验证程序的机制,我们在伪代码可能翻译的空间中搜索,以找到一个通过验证的程序。然而,若无恰当的信用分配来定位程序失败的来源,则难以引导搜索朝向更有前景的程序。我们提出基于编译错误信号进行信用分配,编译错误占程序失败的88.7%。具体而言,我们将每一行伪代码的翻译视为程序的一个离散部分,每当合成程序编译失败时,一种错误定位方法试图识别导致失败的程序部分。我们随后针对这些部分的伪代码替代翻译集中搜索。为评估,我们收集了SPoC数据集(Search-based Pseudocode to Code,基于搜索的伪代码到代码),包含18,356个带人工撰写伪代码与测试用例的程序。在100次程序编译的预算下,执行搜索将合成成功率从使用伪代码top-one翻译的25.6%提升至44.7%。
引用
@article{arxiv.1906.04908,
title = {SPoC: Search-based Pseudocode to Code},
author = {Sumith Kulal and Panupong Pasupat and Kartik Chandra and Mina Lee and Oded Padon and Alex Aiken and Percy Liang},
journal= {arXiv preprint arXiv:1906.04908},
year = {2019}
}
备注
Under submission to NeurIPS 2019