Multilingual Code Co-Evolution Using Large Language Models

Jiyang Zhang, Pengyu Nie, Junyi Jessy Li, Milos Gligoric
7/27/2023
cs.SEcs.AI

No official code found. Best implementation: EngineeringSoftware/codeditor (14 stars, MIT, last commit 2024-12-08).

Abstract

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.

View on arXivView PDF

Code Implementations(1)

MIT

Multilingual Code Co-Evolution Using Large Language Models

143Shell, PythonAug 31, 20231 years agoMIT
co-evolutioncodeevolutionlarge-language-modelsllm

Similar Papers

Cite this paper

@article{zhang2023multilingual,
  title  = {Multilingual Code Co-Evolution Using Large Language Models},
  author = {Jiyang Zhang and Pengyu Nie and Junyi Jessy Li and Milos Gligoric},
  year   = {2023},
  eprint = {2307.14991},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2307.14991v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2307.14991.svg)](https://codeofpaper.com/paper/2307.14991)

Discussion