中文

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