中文

STYLE-ANALYZER:用可解释无监督算法修复代码风格不一致

机器学习 2019-04-02 v1 软件工程 机器学习

摘要

源代码审查是人工的、耗时且昂贵的。人力应聚焦于分析程序最相关的方面,例如逻辑与可维护性,而非修正风格、语法或格式缺陷。一些具备 lint 功能的工具可自动格式化代码并报告所支持编程语言的各类风格违规。它们基于领域专家编写的规则,因此配置往往繁琐,且给定规则集难以覆盖所有可能边界情况。现有一些基于机器学习的方案,但它们仍是不可解释的黑箱。本文介绍 STYLE-ANALYZER,一种新型开源工具,使用决策树森林(decision tree forest)模型自动修复代码格式违规,该模型自适应每个代码库且完全无监督。STYLE-ANALYZER 构建于我们新颖的辅助代码审查框架 Lookout 之上。它精确挖掘每个被分析 Git 仓库的格式风格,并以紧凑可读的规则表达所发现的格式模式。STYLE-ANALYZER 随后可以以代码审查评论的形式建议风格不一致修复。我们通过以下方式评估 STYLE-ANALYZER 的输出质量与实际相关性:在 19 个流行 JavaScript 项目上证明其能以高精度复现原始风格,并展示其在修复真实风格错误方面产生有前景的结果。STYLE-ANALYZER 包含一个 Web 应用以可视化规则如何被触发。我们将 STYLE-ANALYZER 作为可复用、可扩展的开源软件包发布于 GitHub,以惠及社区。

关键词

引用

@article{arxiv.1904.00935,
  title  = {STYLE-ANALYZER: fixing code style inconsistencies with interpretable unsupervised algorithms},
  author = {Vadim Markovtsev and Waren Long and Hugo Mougard and Konstantin Slavnov and Egor Bulychev},
  journal= {arXiv preprint arXiv:1904.00935},
  year   = {2019}
}

备注

10 pages; Mining Software Repositories 2019