Natural Language Outlines for Code: Literate Programming in the LLM Era
Not on the map. Why?
Abstract (arXiv)
We propose using natural language outlines as a novel modality and interaction surface for providing AI assistance to developers throughout the software development process. An NL outline for a code function comprises multiple statements written in concise prose, which partition the code and summarize its main ideas in the style of literate programming. Crucially, we find that modern LLMs can generate accurate and high-quality NL outlines in practice. Moreover, NL outlines enable a bidirectional sync between code and NL, where a developer can change either code or NL and have the LLM automatically update the other. We discuss many use cases for NL outlines: they can accelerate understanding and navigation of code and diffs, simplify code maintenance, augment code search, steer code generation, and more. We then propose and compare multiple LLM prompting techniques for generating outlines and ask professional developers to judge outline quality. Finally, we present two case studies applying NL outlines toward code review and malware detection.
Key facts. Cited by 9 papers in the map (data through 7 Oct 2026). Builds on 44 of its 85 references that are in the map. First posted on arXiv 9 Aug 2024.
Builds on
44 of 85 references.
References · 44
- 2023GPT-4 Technical Reportcited by 18,132
- 2022Chain-of-Thought Prompting Elicits Reasoning in Large Language Modelscited by 12,302
- 2020Retrieval-Augmented Generation for Knowledge-Intensive NLP Taskscited by 9,160
- 2017Deep reinforcement learning from human preferencescited by 3,846
- 2022Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedbackcited by 3,634
- 2024Gemini 1.5: Unlocking multimodal understanding across millions of tokens of contextcited by 3,175
- 2023Retrieval-Augmented Generation for Large Language Models: A Surveycited by 2,185
- 2020Making Pre-trained Language Models Better Few-shot Learnerscited by 1,255
- 2024DeepSeek-Coder: When the Large Language Model Meets Programming -- The Rise of Code Intelligencecited by 1,154
- 2023Large Language Models for Software Engineering: A Systematic Literature Reviewcited by 389
- 2022UL2: Unifying Language Learning Paradigmscited by 292
- 2023A Survey of Reinforcement Learning from Human Feedbackcited by 259
32 more
- 2022Efficient Training of Language Models to Fill in the Middlecited by 248
- 2023Using an LLM to Help With Code Understandingcited by 222
- 2023Efficient Guided Generation for Large Language Modelscited by 192
- 2023Large Language Models for Software Engineering: Survey and Open Problemscited by 178
- 2020A Transformer-based Approach for Source Code Summarizationcited by 129
- 2022Few-shot training LLMs for project-specific code-summarizationcited by 128
- 2020Enabling Language Models to Fill in the Blankscited by 121
- 2024A Comprehensive Survey on Process-Oriented Automatic Text Summarization with Exploration of LLM-Based Methodscited by 101
- 2023The Programmer's Assistant: Conversational Interaction with a Large Language Model for Software Developmentcited by 95
- 2022Experiences from Using Code Explanations Generated by Large Language Models in a Web Software Development E-Bookcited by 84
- 2023Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)cited by 72
- 2023Large Language Models are Few-Shot Summarizers: Multi-Intent Comment Generation via In-Context Learningcited by 71
- 2023Unifying the Perspectives of NLP and Software Engineering: A Survey on Language Models for Codecited by 62
- 2024Automata-based constraints for language model decodingcited by 49
- 2023"What It Wants Me To Say": Bridging the Abstraction Gap Between End-User Programmers and Code-Generating Large Language Modelscited by 48
- 2023Skill-Based Few-Shot Selection for In-Context Learningcited by 46
- 2020Learning to Update Natural Language Comments Based on Code Changescited by 30
- 2023Spellburst: A Node-based Interface for Exploratory Creative Coding with Natural Language Promptscited by 30
- 2024Source Code Summarization in the Era of Large Language Modelscited by 30
- 2024LLM Comparator: Visual Analytics for Side-by-Side Evaluation of Large Language Modelscited by 29
- 2023Prompt Sapper: A LLM-Empowered Production Tool for Building AI Chainscited by 24
- 2023A Comparative Analysis of Large Language Models for Code Documentation Generationcited by 24
- 2024Unsupervised Evaluation of Code LLMs with Round-Trip Correctnesscited by 23
- 2019Automatic Code Summarization: A Systematic Literature Reviewcited by 18
- 2023Developer-Intent Driven Code Comment Generationcited by 16
- 2023Copilot for Xcode: Exploring AI-Assisted Programming by Prompting Cloud-based Large Language Modelscited by 11
- 2024Enhancing LLM-Based Coding Tools through Native Integration of IDE-Derived Static Contextcited by 10
- 2014Autofolding for Source Code Summarizationcited by 6
- 2024In-IDE Human-AI Experience in the Era of Large Language Models; A Literature Reviewcited by 6
- 2024Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoringcited by 5
- 2023A Study of Documentation for Software Architecturecited by 1
- 2023Assessing the Impact of File Ordering Strategies on Code Review Processcited by 1
Built on by
Citing papers per year: 2024: 1; 2025: 3; 2026: 5.
9 papers.
- 2025Large Language Models (LLMs) for Source Code Analysis: applications, models and datasetscited by 15
- 2025ObscuraCoder: Powering Efficient Code LM Pre-Training Via Obfuscation Groundingcited by 4
- 2024MOSS: Enabling Code-Driven Evolution and Context Management for AI Agentscited by 2
- 2026AICD Bench: A Challenging Benchmark for AI-Generated Code Detectioncited by 2
- 2025NLD-LLM: A systematic framework for evaluating small language transformer models on natural language descriptioncited by 1
- 2026LLM-Based Automated Diagnosis Of Integration Test Failures At Googlecited by 0
- 2026A Literate Programming Environment for Human and Machine Agentscited by 0
- 2026From Reading Code to Reading Spec: A Verified Layer for LLM-Driven Codebase Maintenancecited by 0
- 2026Talking to Itself While Coding: What Makes Comments Help Code Generation?cited by 0
- 2026Talking to Itself While Coding: What Makes Comments Help Code Generation?8 Sep 2026
- 2026From Reading Code to Reading Spec: A Verified Layer for LLM-Driven Codebase Maintenance6 Sep 2026
- 2026A Literate Programming Environment for Human and Machine Agents25 Aug 2026
- 2026LLM-Based Automated Diagnosis Of Integration Test Failures At Google13 Apr 2026
- 2026AICD Bench: A Challenging Benchmark for AI-Generated Code Detection2 Feb 2026
- 2025NLD-LLM: A systematic framework for evaluating small language transformer models on natural language description1 Oct 2025
- 2025ObscuraCoder: Powering Efficient Code LM Pre-Training Via Obfuscation Grounding27 Mar 2025
- 2025Large Language Models (LLMs) for Source Code Analysis: applications, models and datasets21 Mar 2025
- 2024MOSS: Enabling Code-Driven Evolution and Context Management for AI Agents24 Sep 2024