A Neural Model for Generating Natural Language Summaries of Program Subroutines
Not on the map. Why?
Abstract (arXiv)
Source code summarization -- creating natural language descriptions of source code behavior -- is a rapidly-growing research topic with applications to automatic documentation generation, program comprehension, and software maintenance. Traditional techniques relied on heuristics and templates built manually by human experts. Recently, data-driven approaches based on neural machine translation have largely overtaken template-based systems. But nearly all of these techniques rely almost entirely on programs having good internal documentation; without clear identifier names, the models fail to create good summaries. In this paper, we present a neural model that combines words from code with code structure from an AST. Unlike previous approaches, our model processes each data source as a separate input, which allows the model to learn code structure independent of the text in code. This process helps our approach provide coherent summaries in many cases even when zero internal documentation is provided. We evaluate our technique with a dataset we created from 2.1m Java methods. We find improvement over two baseline techniques from SE literature and one from NLP literature.
Key facts. Cited by 76 papers in the map (data through 7 Oct 2026). First posted on arXiv 5 Feb 2019.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 19; 2022: 21; 2023: 19; 2024: 10; 2025: 6; 2026: 1.
76 papers.
Sort:
By area:
- 2024LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Codecited by 1,906
- 2021Retrieval Augmented Code Generation and Summarizationcited by 148
- 2023Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)cited by 72
- 2021On the Evaluation of Neural Code Summarizationcited by 47
- 2021Multilingual training for Software Engineeringcited by 43
- 2021TreeBERT: A Tree-Based Pre-Trained Model for Programming Languagecited by 40
- 2024Can LLMs Replace Manual Annotation of Software Engineering Artifacts?cited by 40
- 2023Automatic Code Summarization via ChatGPT: How Far Are We?cited by 34
- 2023Learning Deep Semantics for Test Completioncited by 31
- 2021CodeQA: A Question Answering Dataset for Source Code Comprehensioncited by 30
- 2023Distilled GPT for Source Code Summarizationcited by 30
- 2023CAT-LM: Training Language Models on Aligned Code And Testscited by 28
38 more
- 2021Project-Level Encoding for Neural Source Code Summarization of Subroutinescited by 24
- 2021A Survey on Machine Learning Techniques for Source Code Analysiscited by 23
- 2023Deep Learning for Code Intelligence: Survey, Benchmark and Toolkitcited by 22
- 2022CoCoSoDa: Effective Contrastive Learning for Code Searchcited by 21
- 2022Deep Learning Meets Software Engineering: A Survey on Pre-Trained Models of Source Codecited by 20
- 2023The Vault: A Comprehensive Multilingual Dataset for Advancing Code Understanding and Generationcited by 20
- 2021Improving Code Summarization with Block-wise Abstract Syntax Tree Splittingcited by 19
- 2024Analyzing the Performance of Large Language Models on Code Summarizationcited by 19
- 2023EditSum: A Retrieve-and-Edit Framework for Source Code Summarizationcited by 18
- 2022Assemble Foundation Models for Automatic Code Summarizationcited by 17
- 2022An Extractive-and-Abstractive Framework for Source Code Summarizationcited by 15
- 2022Source Code Summarization with Structural Relative Position Guided Transformercited by 14
- 2022M2TS: Multi-Scale Multi-Modal Approach Based on Transformer for Source Code Summarizationcited by 14
- 2022An Exploratory Study on Code Attention in BERTcited by 12
- 2021Impact of Evaluation Methodologies on Code Summarizationcited by 11
- 2022AutoPruner: Transformer-Based Call Graph Pruningcited by 11
- 2024Studying LLM Performance on Closed- and Open-source Datacited by 11
- 2021API2Com: On the Improvement of Automatically Generated Code Comments Using API Documentationscited by 10
- 2022Learning to Parallelize in a Shared-Memory Environment with Transformerscited by 10
- 2021Leveraging Unsupervised Learning to Summarize APIs Discussed in Stack Overflowcited by 9
- 2022HierarchyNet: Learning to Summarize Source Code with Heterogeneous Representationscited by 9
- 2023Towards Modeling Human Attention from Eye Movements for Neural Source Code Summarizationcited by 8
- 2023Enriching Source Code with Contextual Data for Code Completion Models: An Empirical Studycited by 7
- 2021Code to Comment Translation: A Comparative Study on Model Effectiveness & Errorscited by 6
- 2024ESALE: Enhancing Code-Summary Alignment Learning for Source Code Summarizationcited by 6
- 2021A Neural Question Answering System for Basic Questions about Subroutinescited by 5
- 2021Exploiting Method Names to Improve Code Summarization: A Deliberation Multi-Task Learning Approachcited by 5
- 2021Learning to Generate Code Comments from Class Hierarchiescited by 5
- 2021Improving Stack Overflow question title generation with copying enhanced CodeBERT model and bi-modal informationcited by 5
- 2022GypSum: Learning Hybrid Representations for Code Summarizationcited by 5
- 2022Learning code summarization from a small and local datasetcited by 5
- 2022A Neural Network Architecture for Program Understanding Inspired by Human Behaviorscited by 5
- 2023Semantic Similarity Loss for Neural Source Code Summarizationcited by 5
- 2023Abstract Syntax Tree for Programming Language Understanding and Representation: How Far Are We?cited by 5
- 2024UniTSyn: A Large-Scale Dataset Capable of Enhancing the Prowess of Large Language Models for Program Testingcited by 5
- 2026Specification-Based Code-Text-Code Reengineering for LLM-Mediated Software Evolutioncited by 5
- 2022A Survey of Deep Learning Models for Structural Code Understandingcited by 4
- 2021BF++: a language for general-purpose program synthesiscited by 3
50 most cited of 76 All 76 (JSON)
- 2026Specification-Based Code-Text-Code Reengineering for LLM-Mediated Software Evolution24 May 2026
- 2025Call Me Maybe: Enhancing JavaScript Call Graph Construction using Graph Neural Networks22 Jun 2025
- 2025Issue Retrieval and Verification Enhanced Supplementary Code Comment Generation17 Jun 2025
- 2025Simple and Effective Baselines for Code Summarisation Evaluation26 May 2025
- 2025Variational Prefix Tuning for Diverse and Accurate Code Summarization Using Pre-trained Language Models14 May 2025
- 2025AI-Mediated Code Comment Improvement13 May 2025
- 2025Benchmarking AI Models in Software Engineering: A Review, Search Tool, and Unified Approach for Elevating Benchmark Quality7 Mar 2025
- 2024The Role of Transformer Models in Advancing Blockchain Technology: A Systematic Survey2 Sep 2024
- 2024Can LLMs Replace Manual Annotation of Software Engineering Artifacts?10 Aug 2024
- 2024ESALE: Enhancing Code-Summary Alignment Learning for Source Code Summarization1 Jul 2024
- 2024Analyzing the Performance of Large Language Models on Code Summarization10 Apr 2024
- 2024Multi-modal Learning for WebAssembly Reverse Engineering4 Apr 2024
38 more
- 2024MESIA: Understanding and Leveraging Supplementary Nature of Method-level Comments for Automatic Comment Generation26 Mar 2024
- 2024LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code12 Mar 2024
- 2024Beyond Self-learned Attention: Mitigating Attention Bias in Transformer-based Models Using Attention Guidance26 Feb 2024
- 2024Studying LLM Performance on Closed- and Open-source Data23 Feb 2024
- 2024UniTSyn: A Large-Scale Dataset Capable of Enhancing the Prowess of Large Language Models for Program Testing4 Feb 2024
- 2023Deep Learning for Code Intelligence: Survey, Benchmark and Toolkit30 Dec 2023
- 2023Abstract Syntax Tree for Programming Language Understanding and Representation: How Far Are We?1 Dec 2023
- 2023DocGen: Generating Detailed Parameter Docstrings in Python11 Nov 2023
- 2023Leveraging Deep Learning for Abstractive Code Summarization of Unofficial Documentation23 Oct 2023
- 2023CAT-LM: Training Language Models on Aligned Code And Tests2 Oct 2023
- 2023Revisiting File Context for Source Code Summarization5 Sep 2023
- 2023Distilled GPT for Source Code Summarization28 Aug 2023
- 2023EditSum: A Retrieve-and-Edit Framework for Source Code Summarization26 Aug 2023
- 2023Semantic Similarity Loss for Neural Source Code Summarization14 Aug 2023
- 2023Statement-based Memory for Neural Source Code Summarization21 Jul 2023
- 2023Automatic Code Summarization via ChatGPT: How Far Are We?22 May 2023
- 2023Towards Modeling Human Attention from Eye Movements for Neural Source Code Summarization16 May 2023
- 2023The Vault: A Comprehensive Multilingual Dataset for Advancing Code Understanding and Generation9 May 2023
- 2023Enriching Source Code with Contextual Data for Code Completion Models: An Empirical Study24 Apr 2023
- 2023Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)13 Apr 2023
- 2023Knowledge Transfer for Pseudo-code Generation from Low Resource Programming Language16 Mar 2023
- 2023Implant Global and Local Hierarchy Information to Sequence based Code Representation Models14 Mar 2023
- 2023APIContext2Com: Code Comment Generation by Incorporating Pre-Defined API Documentation3 Mar 2023
- 2023Learning Deep Semantics for Test Completion20 Feb 2023
- 2022JEMMA: An Extensible Java Dataset for ML4Code Applications18 Dec 2022
- 2022AutoPruner: Transformer-Based Call Graph Pruning7 Sep 2022
- 2022Preprocessing Source Code Comments for Linguistic Models23 Aug 2022
- 2022CSSAM:Code Search via Attention Matching of Code Semantics and Structures8 Aug 2022
- 2022An Extractive-and-Abstractive Framework for Source Code Summarization15 Jun 2022
- 2022Learning code summarization from a small and local dataset2 Jun 2022
- 2022HierarchyNet: Learning to Summarize Source Code with Heterogeneous Representations31 May 2022
- 2022Deep Learning Meets Software Engineering: A Survey on Pre-Trained Models of Source Code24 May 2022
- 2022A Neural Network Architecture for Program Understanding Inspired by Human Behaviors10 May 2022
- 2022A Survey of Deep Learning Models for Structural Code Understanding3 May 2022
- 2022Learning to Parallelize in a Shared-Memory Environment with Transformers27 Apr 2022
- 2022GypSum: Learning Hybrid Representations for Code Summarization26 Apr 2022
- 2022CoCoSoDa: Effective Contrastive Learning for Code Search7 Apr 2022
- 2022An Exploratory Study on Code Attention in BERT5 Apr 2022
50 newest of 76 All 76 (JSON)
- 2023Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)cited by 72
- 2021On the Evaluation of Neural Code Summarizationcited by 47
- 2021Multilingual training for Software Engineeringcited by 43
- 2021TreeBERT: A Tree-Based Pre-Trained Model for Programming Languagecited by 40
- 2024Can LLMs Replace Manual Annotation of Software Engineering Artifacts?cited by 40
- 2023Automatic Code Summarization via ChatGPT: How Far Are We?cited by 34
- 2023Learning Deep Semantics for Test Completioncited by 31
- 2021CodeQA: A Question Answering Dataset for Source Code Comprehensioncited by 30
- 2023Distilled GPT for Source Code Summarizationcited by 30
- 2023CAT-LM: Training Language Models on Aligned Code And Testscited by 28
- 2021Project-Level Encoding for Neural Source Code Summarization of Subroutinescited by 24
- 2021A Survey on Machine Learning Techniques for Source Code Analysiscited by 23
12 most cited of 73 All 73 (JSON)
- 2026Specification-Based Code-Text-Code Reengineering for LLM-Mediated Software Evolution24 May 2026
- 2025Call Me Maybe: Enhancing JavaScript Call Graph Construction using Graph Neural Networks22 Jun 2025
- 2025Simple and Effective Baselines for Code Summarisation Evaluation26 May 2025
- 2025Variational Prefix Tuning for Diverse and Accurate Code Summarization Using Pre-trained Language Models14 May 2025
- 2025AI-Mediated Code Comment Improvement13 May 2025
- 2025Benchmarking AI Models in Software Engineering: A Review, Search Tool, and Unified Approach for Elevating Benchmark Quality7 Mar 2025
- 2024The Role of Transformer Models in Advancing Blockchain Technology: A Systematic Survey2 Sep 2024
- 2024Can LLMs Replace Manual Annotation of Software Engineering Artifacts?10 Aug 2024
- 2024ESALE: Enhancing Code-Summary Alignment Learning for Source Code Summarization1 Jul 2024
- 2024Analyzing the Performance of Large Language Models on Code Summarization10 Apr 2024
- 2024Multi-modal Learning for WebAssembly Reverse Engineering4 Apr 2024
- 2024MESIA: Understanding and Leveraging Supplementary Nature of Method-level Comments for Automatic Comment Generation26 Mar 2024
12 newest of 73 All 73 (JSON)