从源代码中挖掘惯用语
软件工程
2016-11-09 v3
摘要
我们提出了第一种从先前编写的惯用软件项目语料库中自动挖掘代码惯用语的方法。我们认为代码惯用语是一个跨项目重复出现且具有单一语义角色的语法片段。惯用语可以有元变量,例如for循环的主体。现代IDE通常提供手动定义惯用语并按需插入的功能,但这并不能帮助程序员在使用不熟悉的语言或库时编写惯用代码。我们提出了HAGGIS,一个挖掘代码惯用语的系统,它建立在统计自然语言处理的最新先进技术之上,即非参数贝叶斯概率树替换文法。我们将HAGGIS应用于GitHub上几个最流行的开源项目。我们提供了广泛的证据表明所得到的惯用语在语义上有意义,证明它们确实跨软件项目重复出现,并且它们更频繁地出现在从问答网站收集的示例代码中。对最常见惯用语的手动检查表明它们描述了重要的程序概念,包括对象创建、异常处理和资源管理。
引用
@article{arxiv.1404.0417,
title = {Mining Idioms from Source Code},
author = {Miltiadis Allamanis and Charles Sutton},
journal= {arXiv preprint arXiv:1404.0417},
year = {2016}
}