要約
私たちは、ソフトウェア開発プロセス全体を通じて開発者に AI 支援を提供するための新しいモダリティおよび対話面として自然言語アウトラインを使用することを提案します。
コード関数の NL アウトラインは、簡潔な散文で書かれた複数のステートメントで構成され、コードを分割し、読み書き可能なプログラミングのスタイルで主なアイデアを要約します。
重要なのは、最新の LLM が実際に正確で高品質の NL アウトラインを生成できることがわかりました。
さらに、NL アウトラインにより、コードと NL 間の双方向同期が可能になり、一方の変更をもう一方に自動的に反映できます。
NL アウトラインの多くの使用例について説明します。NL アウトラインにより、コードと差分の理解とナビゲーションが促進され、コードのメンテナンスが簡素化され、コード検索が強化され、コード生成が制御されます。
次に、アウトラインを生成するための複数の 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, allowing changes in one to be automatically reflected in 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-01-15 03:43:22+00:00 |
arxivサイト | arxiv_id(pdf) |
提供元, 利用サービス
arxiv.jp, Google