Published: Oct. 18, 2024
Language: Английский
Published: Oct. 18, 2024
Language: Английский
Published: April 23, 2025
Language: Английский
Citations
0Information and Software Technology, Journal Year: 2025, Volume and Issue: unknown, P. 107758 - 107758
Published: April 1, 2025
Language: Английский
Citations
0Nature Synthesis, Journal Year: 2024, Volume and Issue: 3(11), P. 1327 - 1339
Published: Oct. 10, 2024
Language: Английский
Citations
2Empirical Software Engineering, Journal Year: 2024, Volume and Issue: 30(1)
Published: Oct. 17, 2024
Abstract Rust, a modern system programming language, introduces new types that prevent memory bugs and data races. This makes translating legacy programs from C to Rust promising approach enhance their reliability. Since manual code translation is time-consuming, it desirable automate the translation. To yield satisfactory results, translator should have ability perform type migration , i.e., removing introducing in code. In this work, we aim automatically port an entire program by each function with signature containing proper through migration. goal challenging because (1) cannot be achieved syntactic mappings between names, (2) after migration, bodies correctly restructured based on precise understanding of functions’ behavior. address these difficulties, leverage large language models (LLMs), which possess knowledge semantics idioms. However, naïvely instructing LLMs translate produces unsatisfactory code, unmigrated or improperly migrated huge number errors. resolve issues, propose three techniques: generating candidate signatures, providing translated callees’ signatures LLMs, (3) iteratively fixing errors using compiler feedback. Our evaluation shows proposed yields 63.5% increase 71.5% decrease compared baseline (the naïve LLM-based translation) modest performance overhead.
Language: Английский
Citations
2Published: Dec. 2, 2024
Embedded software is used in safety-critical systems such as medical devices and autonomous vehicles, where defects, including security vulnerabilities, have severe consequences. Most embedded codebases are developed unsafe languages, specifically C/C++, riddled with memory safety vulnerabilities. To prevent Rust, a performant memory-safe language, provides an optimal choice for developing software. Rust interoperability enables applications on top of existing C codebases. Despite this, even the most resourceful organizations continue to develop C/C++.This paper performs first systematic study holistically understand current state challenges using systems. Our organized across three research questions. We collected dataset 6,408 spanning various categories 6 Static Application Security Testing (SAST) tools. performed analysis our surveys 225 developers investigate found that support inadequate, SAST tools cannot handle certain features software, resulting failures, prevalence advanced types makes it challenging engineer interoperable code. In addition, we faced by development.
Language: Английский
Citations
1Automated Software Engineering, Journal Year: 2024, Volume and Issue: 31(2)
Published: June 21, 2024
Language: Английский
Citations
0Published: Oct. 18, 2024
Language: Английский
Citations
0Published: Oct. 18, 2024
Language: Английский
Citations
0Published: Oct. 18, 2024
Language: Английский
Citations
0