SpecTra: Enhancing the Code Translation Ability of Language Models by Generating Multi-Modal Specifications

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Nitin, Vikram, Krishna, Rahul, Ray, Baishakhi
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911302294700032
author Nitin, Vikram
Krishna, Rahul
Ray, Baishakhi
author_facet Nitin, Vikram
Krishna, Rahul
Ray, Baishakhi
contents Large language models (LLMs) are increasingly being used for the task of automated code translation, which has important real-world applications. However, most existing approaches use only the source code of a program as an input to an LLM, and do not consider the different kinds of specifications that can be extracted from a program. In this paper, we propose SpecTra, a multi-stage approach that uses a novel self-consistency filter to first generate high-quality static specifications, test cases, and natural language descriptions from a given program, and then uses these along with the source code to improve the quality of LLM-generated translations. We evaluate SpecTra on three code translation tasks - C to Rust, C to Go, and JavaScript to TypeScript - and show that it can enhance the performance of six popular LLMs on these tasks by up to a relative improvement of 46%. We also present a case study on extending this approach to handle translation of a full C project to Rust. Our research suggests that generating high-quality specifications could be a promising and efficient way to improve the performance of LLMs for code translation.
format Preprint
id arxiv_https___arxiv_org_abs_2405_18574
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle SpecTra: Enhancing the Code Translation Ability of Language Models by Generating Multi-Modal Specifications
Nitin, Vikram
Krishna, Rahul
Ray, Baishakhi
Software Engineering
Large language models (LLMs) are increasingly being used for the task of automated code translation, which has important real-world applications. However, most existing approaches use only the source code of a program as an input to an LLM, and do not consider the different kinds of specifications that can be extracted from a program. In this paper, we propose SpecTra, a multi-stage approach that uses a novel self-consistency filter to first generate high-quality static specifications, test cases, and natural language descriptions from a given program, and then uses these along with the source code to improve the quality of LLM-generated translations. We evaluate SpecTra on three code translation tasks - C to Rust, C to Go, and JavaScript to TypeScript - and show that it can enhance the performance of six popular LLMs on these tasks by up to a relative improvement of 46%. We also present a case study on extending this approach to handle translation of a full C project to Rust. Our research suggests that generating high-quality specifications could be a promising and efficient way to improve the performance of LLMs for code translation.
title SpecTra: Enhancing the Code Translation Ability of Language Models by Generating Multi-Modal Specifications
topic Software Engineering
url https://arxiv.org/abs/2405.18574