Source Forager:一个相似源代码搜索引擎
软件工程
2017-06-12 v1 信息检索
编程语言
摘要
开发者花费大量时间搜索代码:例如,为了理解如何完成、修正或使自己的代码适应新语境。遗憾的是,代码搜索的最新技术并未在基于分词源代码的文本搜索之外有太多发展。代码比普通文本具有更丰富的结构和语义,这一特性可被利用来专门化代码搜索过程,以实现更好的代码搜索查询、搜索和结果排序。我们提出了一款名为 Source Forager 的新型代码搜索引擎。给定一个 C/C++ 函数形式的查询,Source Forager 会在预填充的代码数据库中搜索相似的 C/C++ 函数。Source Forager 对数据库进行预处理,以提取捕获代码不同方面特征的各种简单代码特征。搜索会基于提取的各种代码特征,返回数据库中与查询最相似的 个函数。我们使用来自两个领域的多种代码搜索查询测试了 Source Forager 的实用性。我们的实验表明,Source Forager 返回的排序结果是准确的,即使在搜索包含极少查询相关函数的大型代码数据库时,也能可靠地检索到与查询相关的函数。我们相信 Source Forager 是迈向提供更佳代码搜索体验的急需工具的第一步。
引用
@article{arxiv.1706.02769,
title = {Source Forager: A Search Engine for Similar Source Code},
author = {Vineeth Kashyap and David Bingham Brown and Ben Liblit and David Melski and Thomas Reps},
journal= {arXiv preprint arXiv:1706.02769},
year = {2017}
}
备注
11 pages