paperbot · PL 论文追踪

全部论文 待读 收藏

LintCFG: DSL-Driven Linter Configuration Generation for Coding Standards

LintCFG:DSL 驱动的编码规范 Linter 配置生成
ASE Proceedings of the 41st IEEE/ACM International Conference on Automated Software Engineering2026引用 0 inbox
Yi Tang, Zejun Zhang, Zhenchang Xing, Minxue Pan, Tian Zhang, Xuandong Li
crossref: 2026-10-09

AI 速览

一句话:提出 LintCFG,用 DSL 结构化表示编码规范,并通过 LLM 编译流水线自动生成 linter 配置。

编码规范对代码质量至关重要,但要把规范落实为 linter 配置仍需人工完成,过程繁琐、易出错且难以维护。本文提出 LintCFG,一个从自然语言编码规范自动生成 linter 配置的工具:它先用一种领域特定语言(DSL)结构化地表示编码规则,再通过基于 LLM 的编译流水线把规则编译为面向具体工具的目标配置。作者在 Checkstyle(Java)与 ESLint(JavaScript)上进行了评估,结果显示该工具准确率超过 70%,精确率是现有基于 LLM 的基线的两倍以上,表明其有效性与跨语言、跨工具的通用性。论文还公开了源码、SKILL 及演示视频。

问题
将自然语言描述的编码规范手工配置到 linter 中既费时费力、容易出错,又难以随规范演进而维护。
方法
用 DSL 对编码规则进行结构化表示,并设计基于 LLM 的编译流水线,将规则转换为特定 linter 工具的配置。
评估
在 Checkstyle(Java)和 ESLint(JavaScript)上评估生成配置的准确率与精确率,并与现有基于 LLM 的基线对比。
原文摘要(Abstract)

Coding standards are essential for code quality, but configuring linters to enforce them remains manual, error-prone, and hard to maintain. We present LintCFG, a tool that automates linter configuration generation from natural language coding standards. It leverages a domain-specific language (DSL) to structurally represent coding rules and an LLM-based compilation pipeline to produce tool-specific configurations. Our evaluation shows that the tool achieves over 70% accuracy and more than double the precision of existing LLM-based baselines for Checkstyle (Java) and ESLint (JavaScript), confirming its effectiveness and generality. Source code is available at https://github.com/crowdedplus/gen-linter-config, SKILL is available at https://github.com/idiomaticrefactoring/LintConfig/, and a video demonstration is available at https://www.youtube.com/watch?v=95wk0jsogAY.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot12329,
  title = {LintCFG: DSL-Driven Linter Configuration Generation for Coding Standards},
  author = {Yi Tang and Zejun Zhang and Zhenchang Xing and Minxue Pan and Tian Zhang and Xuandong Li},
  booktitle = {ASE},
  year = {2026},
  doi = {10.1145/3832783.3834632}
}