中文

Beryllium:面向算法实现的神经搜索

软件工程 2023-07-04 v2

摘要

在本文中,我们探讨了从代码中查找算法实现的可行性。成功地将代码与算法相匹配有助于理解未知代码、提供参考实现,并为基于学习的程序合成自动收集数据。为实现该目标,我们设计了一种名为p-language的新语言来指定算法,并为p-language设计了一个静态分析器,以从算法描述中自动提取控制流、数学和自然语言信息。我们使用自监督机器学习方法将p-language的输出(p-code)与源代码嵌入到公共向量空间中,从而在无需任何人工标注的情况下匹配算法与代码。我们开发了一个名为Beryllium的工具。它以伪代码作为查询,返回一组可能匹配算法查询的排序代码片段列表。我们在Stony Brook Algorithm Repository和流行的GitHub项目上的评估表明,Beryllium在C和Java中都显著优于最先进的代码搜索工具。具体而言,对于98.5%、93.8%和66.2%的查询,我们分别在排名前25、10和1的列表中找到了算法实现。给定87个算法查询,我们在GitHub项目中为74个算法找到了实现,而此前我们并不知道这些算法。

关键词

引用

@article{arxiv.2305.15690,
  title  = {Beryllium: Neural Search for Algorithm Implementations},
  author = {Adithya Kulkarni and Mohna Chakraborty and Yonas Sium and Sai Charishma Valluri and Wei Le and Qi Li},
  journal= {arXiv preprint arXiv:2305.15690},
  year   = {2023}
}