Multilingual Code Co-Evolution Using Large Language Models

要約

多くのソフトウェア プロジェクトは、複数のプログラミング言語で API とアルゴリズムを実装しています。
開発者は、あらゆる変更 (バグ修正や新機能など) がタイムリーに、エラーなく他のプログラミング言語の実装に反映されるようにする必要があるため、このようなプロジェクトを維持するのは面倒です。
絶えず変化するソフトウェアの世界では、ルールベースの翻訳ツール (トランスパイラーなど) や機械学習モデルを使用してコードをある言語から別の言語に翻訳しても、得られる価値は限られています。
コードベース全体をある言語から別の言語に毎回翻訳するのは、開発者の仕事のやり方ではありません。
このペーパーでは、大規模言語モデル (LLM) を使用して、あるプログラミング言語から別のプログラミング言語にコード変更を変換するという新しいタスクをターゲットにしています。
私たちは、このタスクに取り組むために、Codeditor と呼ばれる最初の LLM を設計して実装しました。
Codeditor は、コード変更を編集シーケンスとして明示的にモデル化し、プログラミング言語間で変更を相互に関連付けることを学習します。
Codeditor を評価するために、2 つのプログラミング言語 (Java と C#) で同様の機能を実装する 8 組のオープンソース ソフトウェア プロジェクトから、調整された 6,613 のコード変更のコーパスを収集します。
結果は、Codeditor が、一般的に使用されるすべての自動メトリクスにおいて、最先端のアプローチよりも大幅に優れていることを示しています。
私たちの研究では、Codeditor が既存の世代ベースのモデルを補完しており、それらを組み合わせることでさらに優れたパフォーマンスが保証されることも明らかになりました。

要約(オリジナル)

Many software projects implement APIs and algorithms in multiple programming languages. Maintaining such projects is tiresome, as developers have to ensure that any change (e.g., a bug fix or a new feature) is being propagated, timely and without errors, to implementations in other programming languages. In the world of ever-changing software, using rule-based translation tools (i.e., transpilers) or machine learning models for translating code from one language to another provides limited value. Translating each time the entire codebase from one language to another is not the way developers work. In this paper, we target a novel task: translating code changes from one programming language to another using large language models (LLMs). We design and implement the first LLM, dubbed Codeditor, to tackle this task. Codeditor explicitly models code changes as edit sequences and learns to correlate changes across programming languages. To evaluate Codeditor, we collect a corpus of 6,613 aligned code changes from 8 pairs of open-source software projects implementing similar functionalities in two programming languages (Java and C#). Results show that Codeditor outperforms the state-of-the-art approaches by a large margin on all commonly used automatic metrics. Our work also reveals that Codeditor is complementary to the existing generation-based models, and their combination ensures even greater performance.

arxiv情報

著者 Jiyang Zhang,Pengyu Nie,Junyi Jessy Li,Milos Gligoric
発行日 2023-07-27 16:37:30+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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