仍是手动的?基于 DSL 的 LLM 编译化自动化代码规范 linter 配置
软件工程
2026-02-10 v1 人工智能
摘要
代码规范对于维持团队和项目中的一致性和高质量代码至关重要。linter 通过检测代码违规行为来帮助开发者执行这些规范。然而,手动 linter 配置复杂且需要专业知识,且编程语言、代码规范和 linter 的多样性和演变导致重复且维护密集的配置工作。为减少手动工作,我们提出了 LintCFG,一种基于域特定语言(DSL)的 LLM 驱动的编译方法,用于自动化生成针对代码规范的 linter 配置,独立于编程语言、代码规范和 linter。灵感来自编译器设计,我们首先设计一种 DSL 来以工具中性、结构化、可读且精确的方式表达代码规则。然后,我们将 linter 配置构建为 DSL 配置指令。对于给定的自然语言代码规范,编译过程将其解析为 DSL 代码规范,与 DSL 配置指令匹配以设置配置名称、选项名称和值,验证规范与配置之间的一致性,最终生成针对特定 linter 的配置。针对 Checkstyle 实现 Java 代码规范的实验显示,我们的方法在 DSL 表示方面实现超过 90% 的精确率和召回率,在细粒度 linter 配置生成方面,准确率、精确率、召回率和 F1 分数接近 70%(部分超过 70%)。值得注意的是,我们的方法在精确率上比基线提高了超过 100%。用户研究进一步表明,我们的方法提高了开发者在为代码规范配置 linter 的效率。最后,我们通过为 JavaScript 代码规范生成 ESLint 配置,展示了该方法的通用性,凸显了其在其他编程语言、代码规范和 linter 上的广泛适用性。
引用
@article{arxiv.2602.07783,
title = {Still Manual? Automated Linter Configuration via DSL-Based LLM Compilation of Coding Standards},
author = {Zejun Zhang and Yixin Gan and Zhenchang Xing and Tian Zhang and Yi Li and Xiwei Xu and Qinghua Lu and Liming Zhu},
journal= {arXiv preprint arXiv:2602.07783},
year = {2026}
}
备注
Accepted By FSE2026