Good code style improves program readability, maintainability, and collaboration, and is an integral component of software quality. Developers, however, often cut corners when following style rules, leading to the wide adoption of tools such as linters in professional software development projects. Traditional linters like Checkstyle operate using rigid, rule-based mechanisms that effectively detect many surface-level violations. However, in most programming languages, there is a subset of style rules that require a more nuanced understanding of code, and fall outside the scope of such static analysis. In this paper, we propose Checkstyle+, a hybrid approach that augments Checkstyle with large language model (LLM) capabilities, to identify style violations that elude the conventional rule-based analysis. Checkstyle+ is evaluated on a sample of 380 Java code files, drawn from a broader dataset of 30,800 real-world Java programs sourced from accepted Codeforces submissions. The results show that Checkstyle+ achieves superior performance over standard Checkstyle in detecting violations of the semantically nuanced rules.
翻译:良好的代码风格能够提升程序的可读性、可维护性与协作效率,是软件质量不可或缺的组成部分。然而,开发者在遵循风格规范时常常采取简化处理,这促使了Linter类工具在专业软件开发项目中的广泛采用。传统Linter(如Checkstyle)采用基于规则的刚性机制,能有效检测大量表层违规。但在大多数编程语言中,存在一类需要更细致代码理解的风格规则,这类规则超出了传统静态分析工具的检测范围。本文提出Checkstyle+,这是一种将Checkstyle与大型语言模型(LLM)能力相结合的混合方法,旨在识别传统基于规则分析所遗漏的风格违规问题。我们从Codeforces已采纳提交的30,800个真实Java程序中抽取380个代码文件作为样本进行评估。实验结果表明,在检测需要语义细粒度理解的规则违规方面,Checkstyle+相比标准Checkstyle具有更优越的性能。