Natural Language Outlines for Code: Literate Programming in the LLM Era

要約

ソフトウェア開発プロセス全体で開発者にAI支援を提供するために、自然言語の概要を新しいモダリティと相互作用面として使用することを提案します。
コード関数のNLの概要は、簡潔な散文で記述された複数のステートメントで構成され、コードを分割し、識字プログラミングのスタイルでその主なアイデアを要約します。
重要なことに、現代のLLMは実際に正確で高品質のNLアウトラインを生成できることがわかります。
さらに、NLのアウトラインは、コードとNLの間の双方向同期を有効にします。開発者は一方を変更でき、LLMは他方を自動的に更新できます。
NLのアウトラインの多くのユースケースについて説明します。コードとDIFFの理解とナビゲーションを加速し、コードメンテナンスの簡素化、コード検索の増強、コード生成の操作など。
次に、アウトラインを生成するための複数のLLMプロンプトテクニックを提案して比較し、プロの開発者に概要を判断するよう依頼します。
最後に、コードレビューとマルウェア検出にNLアウトラインを適用する2つのケーススタディを提示します。

要約(オリジナル)

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: a developer can change one and the LLM automatically updates 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.

arxiv情報

著者 Kensen Shi,Deniz Altınbüken,Saswat Anand,Mihai Christodorescu,Katja Grünwedel,Alexa Koenings,Sai Naidu,Anurag Pathak,Marc Rasi,Fredde Ribeiro,Brandon Ruffin,Siddhant Sanyam,Maxim Tabachnyk,Sara Toth,Roy Tu,Tobias Welp,Pengcheng Yin,Manzil Zaheer,Satish Chandra,Charles Sutton
発行日 2025-04-16 07:09:59+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.CL, cs.HC, cs.LG, cs.SE パーマリンク