{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,30]],"date-time":"2026-06-30T19:01:55Z","timestamp":1782846115191,"version":"3.54.5"},"reference-count":80,"publisher":"Association for Computing Machinery (ACM)","issue":"FSE","license":[{"start":{"date-parts":[[2026,6,30]],"date-time":"2026-06-30T00:00:00Z","timestamp":1782777600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2026,6,30]]},"abstract":"<jats:p>Coding standards are essential for maintaining consistent and high-quality code across teams and projects. Linters help developers enforce these standards by detecting code violations. However, manual linter configuration is complex and expertise-intensive, and the diversity and evolution of programming languages, coding standards, and linters lead to repetitive and maintenance-intensive configuration work. To reduce manual effort, we propose LintCFG, a domain-specific language (DSL)-driven, LLM-based compilation approach to automate linter configuration generation for coding standards, independent of programming languages, coding standards, and linters. Inspired by compiler design, we first design a DSL to express coding rules in a tool-agnostic, structured, readable, and precise manner. Then, we build linter configurations into DSL configuration instructions. For a given natural language coding standard, the compilation process parses it into DSL coding standards, matches them with the DSL configuration instructions to set configuration names, option names and values, verifies consistency between the standards and configurations, and finally generates linter-specific configurations. Experiments with Checkstyle for Java coding standard show that our approach achieves over 90% precision and recall in DSL representation, with accuracy, precision, recall, and F1-scores close to 70% (with some exceeding 70%) in fine-grained linter configuration generation. Notably, our approach outperforms baselines by over 100% in precision. An ablation study confirms the effectiveness of the main components of our approach. A user study further shows that our approach improves developers\u2019efficiency in configuring linters for coding standards. Finally, we demonstrate the generality of the approach by generating ESLint configurations for JavaScript coding standards, showcasing its broad applicability across other programming languages, coding standards, and linters. We developed a lightweight, general-purpose AI skill, which is publicly available on GitHub<\/jats:p>","DOI":"10.1145\/3797064","type":"journal-article","created":{"date-parts":[[2026,6,30]],"date-time":"2026-06-30T17:06:14Z","timestamp":1782839174000},"page":"23-45","source":"Crossref","is-referenced-by-count":0,"title":["Still Manual? Automated Linter Configuration via DSL-Based LLM Compilation of Coding Standards"],"prefix":"10.1145","volume":"3","author":[{"ORCID":"https:\/\/orcid.org\/0009-0002-4397-8562","authenticated-orcid":false,"given":"Zejun","family":"Zhang","sequence":"first","affiliation":[{"name":"Nanjing University, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-8118-3254","authenticated-orcid":false,"given":"Yixin","family":"Gan","sequence":"additional","affiliation":[{"name":"Nanjing University, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7663-1421","authenticated-orcid":false,"given":"Zhenchang","family":"Xing","sequence":"additional","affiliation":[{"name":"CSIRO\u2019s Data61, Canberra, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0104-2731","authenticated-orcid":false,"given":"Tian","family":"Zhang","sequence":"additional","affiliation":[{"name":"Nanjing University, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4562-8208","authenticated-orcid":false,"given":"Yi","family":"Li","sequence":"additional","affiliation":[{"name":"Nanyang Technological University, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9466-1672","authenticated-orcid":false,"given":"Qinghua","family":"Lu","sequence":"additional","affiliation":[{"name":"CSIRO\u2019s Data61, Sydney, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2273-1862","authenticated-orcid":false,"given":"Sherry (Xiwei)","family":"Xu","sequence":"additional","affiliation":[{"name":"CSIRO\u2019s Data61, Sydney, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5839-3765","authenticated-orcid":false,"given":"Liming","family":"Zhu","sequence":"additional","affiliation":[{"name":"CSIRO\u2019s Data61, Sydney, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,6,30]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2023. Alibaba Coding Guidelines. https:\/\/github.com\/alibaba"},{"key":"e_1_2_1_2_1","unstructured":"2023. Awesome Guidelines. https:\/\/github.com\/Kristories\/awesome-guidelines"},{"key":"e_1_2_1_3_1","unstructured":"2023. Gitlab Coding Standards. https:\/\/docs.gitlab.com\/development\/contributing\/style_guides\/"},{"key":"e_1_2_1_4_1","unstructured":"2023. GPT. https:\/\/platform.openai.com\/docs\/guides\/gpt"},{"key":"e_1_2_1_5_1","unstructured":"2023. Introducing ChatGPT. https:\/\/chat.openai.com\/"},{"key":"e_1_2_1_6_1","unstructured":"2024. Automated docstring and comments spell check. https:\/\/stackoverflow.com\/questions\/27162315"},{"key":"e_1_2_1_7_1","unstructured":"2024. CheckStyle. https:\/\/github.com\/checkstyle\/checkstyle"},{"key":"e_1_2_1_8_1","unstructured":"2024. ESLint. https:\/\/github.com\/eslint\/eslint"},{"key":"e_1_2_1_9_1","unstructured":"2024. ESLint: how to spaced-comment exceptions on VSCode folding regions comments? https:\/\/stackoverflow.com\/ questions\/62469552"},{"key":"e_1_2_1_10_1","unstructured":"2024. FindBugs. https:\/\/findbugs.sourceforge.net\/"},{"key":"e_1_2_1_11_1","unstructured":"2024. Google Style Guide. https:\/\/github.com\/google\/styleguide"},{"key":"e_1_2_1_12_1","unstructured":"2024. How to remove semicolons in prettier? https:\/\/stackoverflow.com\/questions\/45404823"},{"key":"e_1_2_1_13_1","unstructured":"2024. New and Improved Embedding Model. https:\/\/openai.com\/index\/new-and-improved-embedding-model\/"},{"key":"e_1_2_1_14_1","unstructured":"2024. Offical Documentation of Checkstyle. https:\/\/checkstyle.sourceforge.io\/checks.html"},{"key":"e_1_2_1_15_1","unstructured":"2024. PMD. https:\/\/pmd.github.io"},{"key":"e_1_2_1_16_1","unstructured":"2025. online user study for control group(G1). https:\/\/anynomousaccount.github.io\/linterconfiguserstudy2"},{"key":"e_1_2_1_17_1","unstructured":"2025. online user study for experimental group(G2). https:\/\/idiomaticrefactoring.github.io\/userstudylinterconfig-1"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","unstructured":"2025. Replication Package. https:\/\/doi.org\/10.5281\/zenodo.16732288 10.5281\/zenodo.16732288","DOI":"10.5281\/zenodo.16732288"},{"key":"e_1_2_1_19_1","first-page":"146","article-title":"Java standards: A comparative study","volume":"6","author":"Abdallah Mohammad MA","year":"2017","unstructured":"Mohammad MA Abdallah and Mustafa M Al-Rifaee. 2017. Java standards: A comparative study. International Journal of Computer Science and Software Engineering 6, 6 (2017), 146.","journal-title":"International Journal of Computer Science and Software Engineering"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635883"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2016.105"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/icsme64153.2025.00046"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/icsm.2008.4658076"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3486609.3487196"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/icsm.2015.7332450"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/msr.2019.00039"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2970276.2970347"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.21236\/ada449067"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884786"},{"key":"e_1_2_1_30_1","unstructured":"BV Tishantha Dilruk. 2019. Coding standard violation detection by pattern analysis. (2019)."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10514-023-10133-5"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3196321.3196342"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3105726.3106182"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3637528.3671470"},{"key":"e_1_2_1_35_1","volume-title":"Natural Language Commanding via Program Synthesis. arXiv preprint arXiv:2306.03460","author":"Gandhi Apurva","year":"2023","unstructured":"Apurva Gandhi, Thong Q Nguyen, Huitian Jiao, Robert Steen, and Ameya Bhatawdekar. 2023. Natural Language Commanding via Program Synthesis. arXiv preprint arXiv:2306.03460 (2023)."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3715750"},{"key":"e_1_2_1_37_1","volume-title":"Retrieval-augmented generation for large language models: A survey. arXiv preprint arXiv:2312.10997","author":"Gao Yunfan","year":"2023","unstructured":"Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, and Haofen Wang. 2023. Retrieval-augmented generation for large language models: A survey. arXiv preprint arXiv:2312.10997 (2023)."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2997364.2997386"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449814.1449863"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4614-4699-6"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3545945.3569817"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/wcre.2013.6671308"},{"key":"e_1_2_1_43_1","volume-title":"LongRAG: Enhancing Retrieval-Augmented Generation with Long-context LLMs. arXiv preprint arXiv:2406.15319","author":"Jiang Ziyan","year":"2024","unstructured":"Ziyan Jiang, Xueguang Ma, and Wenhu Chen. 2024. LongRAG: Enhancing Retrieval-Augmented Generation with Long-context LLMs. arXiv preprint arXiv:2406.15319 (2024)."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/saner56733.2023.00092"},{"key":"e_1_2_1_45_1","volume-title":"USENIX security symposium","author":"Benjamin Livshits V","unstructured":"V Benjamin Livshits and Monica S Lam. 2005. Finding Security Vulnerabilities in Java Applications with Static Analysis. In USENIX security symposium, Vol. 14. 18-18."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-021-10107-0"},{"key":"e_1_2_1_47_1","volume-title":"Compiler construction: principles and practice","author":"Louden Kenneth C","unstructured":"Kenneth C Louden. 1997. Compiler construction: principles and practice. PWS Publishing Co. https:\/\/doi.org\/10.5555\/ 523017"},{"key":"e_1_2_1_48_1","volume-title":"ERTS2024","author":"Mackay Adam","year":"2024","unstructured":"Adam Mackay. 2024. Test Suite Augmentation using Language Models-Applying RAG to Improve Robustness Verification. In ERTS2024."},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1109\/msr.2019.00073"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-43458-7_34"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.11613\/bm.2012.031"},{"key":"e_1_2_1_52_1","unstructured":"Steven Muchnick. 1997. Advanced compiler design implementation. Morgan kaufmann."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/saner.2018.8330253"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1109\/scam55253.2022.00030"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/saner.2015.7081847"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1162\/99608f92.97c9f60f"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3611643.3616269"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276604.3276614"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2095050.2095058"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3382494.3410680"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-94-017-1404-4_6"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1109\/icsm.2011.6080819"},{"key":"e_1_2_1_63_1","unstructured":"Donna Spencer. 2009. Card sorting: Designing usable categories. Rosenfeld Media."},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1109\/ase.2017.8115668"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1109\/tse.2018.2871058"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1109\/icdim.2017.8244675"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1109\/csmr.2008.4493342"},{"key":"e_1_2_1_68_1","unstructured":"Anthony J Viera Joanne M Garrett et al. 2005. Understanding interobserver agreement: the kappa statistic. Fam med 37 5 (2005) 360-363."},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/3729364"},{"key":"e_1_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1109\/icse55347.2025.00211"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4612-4380-9_16"},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/3715754"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1109\/ase56229.2023.00096"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2022.107043"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/3800680"},{"key":"e_1_2_1_76_1","volume-title":"Checkstyle for Legacy Applications [J]. Itestra De","author":"Yiu Chau Chin","year":"2023","unstructured":"Chau Chin Yiu. 2023. Checkstyle for Legacy Applications [J]. Itestra De (2023)."},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/3729386"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1109\/msr.2017.2"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.1145\/3643776"},{"key":"e_1_2_1_80_1","doi-asserted-by":"publisher","DOI":"10.1007\/s41019-025-00335-5"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3797064","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,30]],"date-time":"2026-06-30T18:05:22Z","timestamp":1782842722000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3797064"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,6,30]]},"references-count":80,"journal-issue":{"issue":"FSE","published-print":{"date-parts":[[2026,6,30]]}},"alternative-id":["10.1145\/3797064"],"URL":"https:\/\/doi.org\/10.1145\/3797064","relation":{},"ISSN":["2994-970X"],"issn-type":[{"value":"2994-970X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,6,30]]}}}