Cited time in
Full metadata record
| DC Field | Value | Language |
|---|---|---|
| dc.citation.number | 1 | - |
| dc.citation.startPage | 3 | - |
| dc.citation.title | EMPIRICAL SOFTWARE ENGINEERING | - |
| dc.citation.volume | 30 | - |
| dc.contributor.author | Hong, Jaemin | - |
| dc.contributor.author | Ryu, Sukyoung | - |
| dc.date.accessioned | 2026-04-07T12:32:27Z | - |
| dc.date.available | 2026-04-07T12:32:27Z | - |
| dc.date.created | 2026-03-17 | - |
| dc.date.issued | 2024-10 | - |
| dc.description.abstract | Rust, a modern system programming language, introduces new types that prevent memory bugs and data races. This makes translating legacy system programs from C to Rust a promising approach to enhance their reliability. Since manual code translation is time-consuming, it is desirable to automate the translation. To yield satisfactory results, the translator should have the ability to perform type migration, i.e., removing C types and introducing Rust types in the code. In this work, we aim to automatically port an entire C program to Rust by translating each C function to a Rust function with a signature containing proper Rust types through type migration. This goal is challenging because (1) type migration cannot be achieved through syntactic mappings between type names, and (2) after type migration, function bodies should be correctly restructured based on the precise understanding of the functions' behavior. To address these difficulties, we leverage large language models (LLMs), which possess knowledge of program semantics and programming idioms. However, na & iuml;vely instructing LLMs to translate each function produces unsatisfactory Rust code, containing unmigrated or improperly migrated types and a huge number of type errors. To resolve these issues, we propose three techniques: (1) generating candidate signatures, (2) providing translated callees' signatures to LLMs, and (3) iteratively fixing type errors using compiler feedback. Our evaluation shows that the proposed approach yields a 63.5% increase in migrated types and a 71.5% decrease in type errors compared to the baseline (the na & iuml;ve LLM-based translation) with modest performance overhead. | - |
| dc.identifier.bibliographicCitation | EMPIRICAL SOFTWARE ENGINEERING, v.30, no.1, pp.3 | - |
| dc.identifier.doi | 10.1007/s10664-024-10573-2 | - |
| dc.identifier.issn | 1382-3256 | - |
| dc.identifier.scopusid | 2-s2.0-85206634030 | - |
| dc.identifier.uri | https://scholarworks.unist.ac.kr/handle/201301/91290 | - |
| dc.identifier.url | https://link.springer.com/article/10.1007/s10664-024-10573-2 | - |
| dc.identifier.wosid | 001335071300001 | - |
| dc.language | 영어 | - |
| dc.publisher | SPRINGER | - |
| dc.title | Type-migrating C-to-Rust translation using a large language model | - |
| dc.type | Article | - |
| dc.description.isOpenAccess | TRUE | - |
| dc.relation.journalWebOfScienceCategory | Computer Science, Software Engineering | - |
| dc.relation.journalResearchArea | Computer Science | - |
| dc.type.docType | Article | - |
| dc.description.journalRegisteredClass | scie | - |
| dc.description.journalRegisteredClass | scopus | - |
| dc.subject.keywordAuthor | Large language model | - |
| dc.subject.keywordAuthor | Rust | - |
| dc.subject.keywordAuthor | Code translation | - |
| dc.subject.keywordAuthor | Type migration | - |
Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.
Tel : 052-217-1403 / Email : scholarworks@unist.ac.kr
Copyright (c) 2023 by UNIST LIBRARY. All rights reserved.
ScholarWorks@UNIST was established as an OAK Project for the National Library of Korea.