Natural Language Outlines for Code: Literate Programming in the LLM Era
Fuente:
arXiv
Guardado en:
| Autores principales: | , , , , , , , , , , , , , , , , , , , |
|---|---|
| Formato: | Preprint |
| Publicado: |
2024
|
| Materias: | |
| Acceso en línea: | |
| Etiquetas: |
Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
|
| _version_ | 1866908325088591872 |
|---|---|
| author | Shi, Kensen Altınbüken, Deniz Anand, Saswat Christodorescu, Mihai Grünwedel, Katja Koenings, Alexa Naidu, Sai Pathak, Anurag Rasi, Marc Ribeiro, Fredde Ruffin, Brandon Sanyam, Siddhant Tabachnyk, Maxim Toth, Sara Tu, Roy Welp, Tobias Yin, Pengcheng Zaheer, Manzil Chandra, Satish Sutton, Charles |
| author_facet | Shi, Kensen Altınbüken, Deniz Anand, Saswat Christodorescu, Mihai Grünwedel, Katja Koenings, Alexa Naidu, Sai Pathak, Anurag Rasi, Marc Ribeiro, Fredde Ruffin, Brandon Sanyam, Siddhant Tabachnyk, Maxim Toth, Sara Tu, Roy Welp, Tobias Yin, Pengcheng Zaheer, Manzil Chandra, Satish Sutton, Charles |
| contents | 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. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2408_04820 |
| institution | arXiv |
| publishDate | 2024 |
| record_format | arxiv |
| spellingShingle | Natural Language Outlines for Code: Literate Programming in the LLM Era Shi, Kensen Altınbüken, Deniz Anand, Saswat Christodorescu, Mihai Grünwedel, Katja Koenings, Alexa Naidu, Sai Pathak, Anurag Rasi, Marc Ribeiro, Fredde Ruffin, Brandon Sanyam, Siddhant Tabachnyk, Maxim Toth, Sara Tu, Roy Welp, Tobias Yin, Pengcheng Zaheer, Manzil Chandra, Satish Sutton, Charles Software Engineering Artificial Intelligence Computation and Language Human-Computer Interaction Machine Learning 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. |
| title | Natural Language Outlines for Code: Literate Programming in the LLM Era |
| topic | Software Engineering Artificial Intelligence Computation and Language Human-Computer Interaction Machine Learning |
| url | https://arxiv.org/abs/2408.04820 |