Learning Natural Coding Conventions
Not on the map. Why?
Abstract (arXiv)
Every programmer has a characteristic style, ranging from preferences about identifier naming to preferences about object relationships and design patterns. Coding conventions define a consistent syntactic style, fostering readability and hence maintainability. When collaborating, programmers strive to obey a project's coding conventions. However, one third of reviews of changes contain feedback about coding conventions, indicating that programmers do not always follow them and that project members care deeply about adherence. Unfortunately, programmers are often unaware of coding conventions because inferring them requires a global view, one that aggregates the many local decisions programmers make and identifies emergent consensus on style. We present NATURALIZE, a framework that learns the style of a codebase, and suggests revisions to improve stylistic consistency. NATURALIZE builds on recent work in applying statistical natural language processing to source code. We apply NATURALIZE to suggest natural identifier names and formatting conventions. We present four tools focused on ensuring natural code during development and release management, including code review. NATURALIZE achieves 94% accuracy in its top suggestions for identifier names and can even transfer knowledge about conventions across projects, leveraging a corpus of 10,968 open source projects. We used NATURALIZE to generate 18 patches for 5 open source projects: 14 were accepted.
Key facts. Cited by 29 papers in the map (data through 14 Oct 2026). First posted on arXiv 17 Feb 2014.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 7; 2022: 6; 2023: 5; 2024: 7; 2025: 1; 2026: 3.
29 papers.
Sort:
By area:
- 2021Program Synthesis with Large Language Modelscited by 3,637
- 2024Vulnerability Detection with Code Language Models: How Far Are We?cited by 139
- 2021DOBF: A Deobfuscation Pre-Training Objective for Programming Languagescited by 68
- 2021Language-Agnostic Representation Learning of Source Code from Structure and Contextcited by 63
- 2023Natural Language Generation and Understanding of Big Code for AI-Assisted Programming: A Reviewcited by 32
- 2022Aligning Offline Metrics and Human Judgments of Value for Code Generation Modelscited by 14
- 2024MPCODER: Multi-user Personalized Code Generator with Explicit and Implicit Style Representation Learningcited by 12
- 2021VarCLR: Variable Semantic Representation Pre-training via Contrastive Learningcited by 11
- 2023Copilot for Xcode: Exploring AI-Assisted Programming by Prompting Cloud-based Large Language Modelscited by 11
- 2024Enhancing Automated Program Repair with Solution Designcited by 8
- 2021Variable Name Recovery in Decompiled Binary Code using Constrained Masked Language Modelingcited by 7
- 2022Syntax-Guided Program Reduction for Understanding Neural Code Intelligence Modelscited by 7
17 more
- 2021Code2Snapshot: Using Code Snapshots for Learning Representations of Source Codecited by 4
- 2022AdaptivePaste: Code Adaptation through Learning Semantics-aware Variable Usage Representationscited by 3
- 2022NeuDep: Neural Binary Memory Dependence Analysiscited by 3
- 2024Structured Code Representations Enable Data-Efficient Adaptation of Code Language Modelscited by 3
- 2025Deep Learning-Based Identification of Inconsistent Method Names: How Far Are We?cited by 2
- 2021Roosterize: Suggesting Lemma Names for Coq Verification Projects Using Deep Learningcited by 1
- 2022MLSmellHound: A Context-Aware Code Analysis Toolcited by 1
- 2024Out of style: Misadventures with LLMs and code style transfercited by 1
- 2022Extracting Label-specific Key Input Features for Neural Code Intelligence Modelscited by 0
- 2023Modelling Concurrency Bugs Using Machine Learningcited by 0
- 2023Epicure: Distilling Sequence Model Predictions into Patternscited by 0
- 2023Untargeted Code Authorship Evasion with Seq2Seq Transformationcited by 0
- 2024Autonomous Vehicles: Evolution of Artificial Intelligence and Learning Algorithmscited by 0
- 2024Contextual Augmented Multi-Model Programming (CAMP): A Hybrid Local-Cloud Copilot Frameworkcited by 0
- 2026Still Manual? Automated Linter Configuration via DSL-Based LLM Compilation of Coding Standardscited by 0
- 2026The Code Whisperer: LLM and Graph-Based AI for Smell and Vulnerability Resolutioncited by 0
- 2026Correct Code, Broken Contributions? SWE-CC: Benchmarking Repository Policy Compliance for Coding Agentscited by 0
- 2026Correct Code, Broken Contributions? SWE-CC: Benchmarking Repository Policy Compliance for Coding Agents5 Oct 2026
- 2026The Code Whisperer: LLM and Graph-Based AI for Smell and Vulnerability Resolution12 Apr 2026
- 2026Still Manual? Automated Linter Configuration via DSL-Based LLM Compilation of Coding Standards8 Feb 2026
- 2025Deep Learning-Based Identification of Inconsistent Method Names: How Far Are We?22 Jan 2025
- 2024Contextual Augmented Multi-Model Programming (CAMP): A Hybrid Local-Cloud Copilot Framework20 Oct 2024
- 2024Enhancing Automated Program Repair with Solution Design22 Aug 2024
- 2024MPCODER: Multi-user Personalized Code Generator with Explicit and Implicit Style Representation Learning25 Jun 2024
- 2024Out of style: Misadventures with LLMs and code style transfer14 Jun 2024
- 2024Vulnerability Detection with Code Language Models: How Far Are We?27 Mar 2024
- 2024Autonomous Vehicles: Evolution of Artificial Intelligence and Learning Algorithms27 Feb 2024
- 2024Structured Code Representations Enable Data-Efficient Adaptation of Code Language Models19 Jan 2024
- 2023Untargeted Code Authorship Evasion with Seq2Seq Transformation26 Nov 2023
17 more
- 2023Epicure: Distilling Sequence Model Predictions into Patterns16 Aug 2023
- 2023Copilot for Xcode: Exploring AI-Assisted Programming by Prompting Cloud-based Large Language Models8 Jul 2023
- 2023Natural Language Generation and Understanding of Big Code for AI-Assisted Programming: A Review4 Jul 2023
- 2023Modelling Concurrency Bugs Using Machine Learning8 May 2023
- 2022Aligning Offline Metrics and Human Judgments of Value for Code Generation Models29 Oct 2022
- 2022NeuDep: Neural Binary Memory Dependence Analysis4 Oct 2022
- 2022Syntax-Guided Program Reduction for Understanding Neural Code Intelligence Models28 May 2022
- 2022AdaptivePaste: Code Adaptation through Learning Semantics-aware Variable Usage Representations23 May 2022
- 2022MLSmellHound: A Context-Aware Code Analysis Tool8 May 2022
- 2022Extracting Label-specific Key Input Features for Neural Code Intelligence Models14 Feb 2022
- 2021VarCLR: Variable Semantic Representation Pre-training via Contrastive Learning5 Dec 2021
- 2021Code2Snapshot: Using Code Snapshots for Learning Representations of Source Code1 Nov 2021
- 2021Program Synthesis with Large Language Models16 Aug 2021
- 2021Variable Name Recovery in Decompiled Binary Code using Constrained Masked Language Modeling23 Mar 2021
- 2021Language-Agnostic Representation Learning of Source Code from Structure and Context21 Mar 2021
- 2021Roosterize: Suggesting Lemma Names for Coq Verification Projects Using Deep Learning1 Mar 2021
- 2021DOBF: A Deobfuscation Pre-Training Objective for Programming Languages15 Feb 2021
- 2021Program Synthesis with Large Language Modelscited by 3,637
- 2024Vulnerability Detection with Code Language Models: How Far Are We?cited by 139
- 2021DOBF: A Deobfuscation Pre-Training Objective for Programming Languagescited by 68
- 2021Language-Agnostic Representation Learning of Source Code from Structure and Contextcited by 63
- 2023Natural Language Generation and Understanding of Big Code for AI-Assisted Programming: A Reviewcited by 32
- 2022Aligning Offline Metrics and Human Judgments of Value for Code Generation Modelscited by 14
- 2024MPCODER: Multi-user Personalized Code Generator with Explicit and Implicit Style Representation Learningcited by 12
- 2021VarCLR: Variable Semantic Representation Pre-training via Contrastive Learningcited by 11
- 2023Copilot for Xcode: Exploring AI-Assisted Programming by Prompting Cloud-based Large Language Modelscited by 11
- 2024Enhancing Automated Program Repair with Solution Designcited by 8
- 2021Variable Name Recovery in Decompiled Binary Code using Constrained Masked Language Modelingcited by 7
- 2022Syntax-Guided Program Reduction for Understanding Neural Code Intelligence Modelscited by 7
12 most cited of 28 All 28 (JSON)
- 2026The Code Whisperer: LLM and Graph-Based AI for Smell and Vulnerability Resolution12 Apr 2026
- 2026Still Manual? Automated Linter Configuration via DSL-Based LLM Compilation of Coding Standards8 Feb 2026
- 2025Deep Learning-Based Identification of Inconsistent Method Names: How Far Are We?22 Jan 2025
- 2024Contextual Augmented Multi-Model Programming (CAMP): A Hybrid Local-Cloud Copilot Framework20 Oct 2024
- 2024Enhancing Automated Program Repair with Solution Design22 Aug 2024
- 2024MPCODER: Multi-user Personalized Code Generator with Explicit and Implicit Style Representation Learning25 Jun 2024
- 2024Out of style: Misadventures with LLMs and code style transfer14 Jun 2024
- 2024Vulnerability Detection with Code Language Models: How Far Are We?27 Mar 2024
- 2024Autonomous Vehicles: Evolution of Artificial Intelligence and Learning Algorithms27 Feb 2024
- 2024Structured Code Representations Enable Data-Efficient Adaptation of Code Language Models19 Jan 2024
- 2023Untargeted Code Authorship Evasion with Seq2Seq Transformation26 Nov 2023
- 2023Epicure: Distilling Sequence Model Predictions into Patterns16 Aug 2023
12 newest of 28 All 28 (JSON)