English
Related papers

Related papers: Migrating large codebases to C++ Modules

200 papers

Newer technologies - programming languages, environments, libraries - change very rapidly. However, various internal and external constraints often prevent projects from quickly adopting to these changes. Customers may require specific…

Software Engineering · Computer Science 2024-05-14 Gábor Antal , Dávid Havas , István Siket , Árpád Beszédes , Rudolf Ferenc , József Mihalicza

Calling multi-threaded C++ code from R has its perils. Since the R interpreter is single-threaded, one must not check for user interruptions or print to the R console from multiple threads. One can, however, synchronize with R from the main…

Computation · Statistics 2021-02-09 Thomas Nagler

Parallel programming remains a daunting challenge, from the struggle to express a parallel algorithm without cluttering the underlying synchronous logic, to describing which devices to employ in a calculation, to correctness. Over the…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-08-10 Patrick Diehl , Steven R. Brandt , Hartmut Kaiser

Migrating legacy C repositories to Rust promises stronger memory safety, but existing translators often work at the level of files or functions and miss architectural intent. We present RustPrint, a documentation-guided agentic framework…

Software Engineering · Computer Science 2026-05-25 Minh Le-Anh , Anh Nguyen Hoang , Bach Le , Nghi D. Q. Bui

Foundational software libraries such as ROOT are under intense pressure to avoid software regression, including performance regressions. Continuous performance benchmarking, as a part of continuous integration and other code quality…

Software Engineering · Computer Science 2019-10-02 Oksana Shadura , Vassil Vassilev , Brian Paul Bockelman

Despite being introduced only a few years ago, Large Language Models (LLMs) are already widely used by developers for code generation. However, their application in automating other Software Engineering activities remains largely…

Software Engineering · Computer Science 2024-09-27 Aylton Almeida , Laerte Xavier , Marco Tulio Valente

Rust aims to offer full memory safety for programs, a guarantee that untamed C programs do not enjoy. How difficult is it to translate existing C code to Rust? To get a complementary view from that of automatic C to Rust translators, we…

Software Engineering · Computer Science 2024-12-09 Ruishi Li , Bo Wang , Tianyu Li , Prateek Saxena , Ashish Kundu

The object oriented programming paradigm is widely used in science and engineering. Many open and commercial libraries are written in C++ and increasingly provide bindings to Python, which is much easier to learn, but still partly…

Programming Languages · Computer Science 2023-12-22 Markus Kloimwieder , Christoph Gadermaier

When implementing functionality which requires sparse matrices, there are numerous storage formats to choose from, each with advantages and disadvantages. To achieve good performance, several formats may need to be used in one program,…

Mathematical Software · Computer Science 2019-10-22 Conrad Sanderson , Ryan Curtin

The C programming language has been foundational in building system-level software. However, its manual memory management model frequently leads to memory safety issues. In response, Rust has emerged as a memory-safe alternative. Moreover,…

Programming Languages · Computer Science 2026-04-07 HoHyun Sim , Hyeonjoong Cho , Yeonghyeon Go , Sadegh AlMahdi Kazemi Zarkouei , Zhoulai Fu , Ali Shokri , Binoy Ravindran

This paper explores the relationship between C++ templates and partial evaluation. Templates were designed to support generic programming, but unintentionally provided the ability to perform compile-time computations and code generation.…

Programming Languages · Computer Science 2007-05-23 Todd L. Veldhuizen

This proposal discusses the growing challenges in reverse engineering modern software binaries, particularly those compiled from newer system programming languages such as Rust, Go, and Mojo. Traditional reverse engineering techniques,…

Software Engineering · Computer Science 2025-06-05 Zhuo Zhuo , Xiangyu Zhang

Automating C-to-Rust migration is critical for improving software security without sacrificing performance. Traditional rule-based methods struggle with diverse C idioms, often producing rigid and unidiomatic Rust code. Large Language…

Software Engineering · Computer Science 2026-04-06 Jia Feng , Wenjie Gan , Cuiyun Gao , Chaozheng Wang , Feng Luo , Xin Xia , Ge Li , Kui Liu

Automated translation of legacy C code into Rust aims to ensure memory safety while reducing the burden of manual migration. Early approaches in code translation rely on static rule-based methods, but they suffer from limited coverage due…

Software Engineering · Computer Science 2025-08-12 Feng Luo , Kexing Ji , Cuiyun Gao , Shuzheng Gao , Jia Feng , Kui Liu , Xin Xia , Michael R. Lyu

VeriFast is a prototype tool based on separation logic for modular verification of C and Java programs. We are in the process of adding support for C++. In this report, we describe the features of C++ for which we added support so far, as…

Logic in Computer Science · Computer Science 2022-12-29 Niels Mommen , Bart Jacobs

The role of regression testing in software testing is crucial as it ensures that any new modifications do not disrupt the existing functionality and behaviour of the software system. The desired outcome is for regression tests to yield…

Software Engineering · Computer Science 2025-06-09 Xin Sun , Daniel Ståhl , Kristian Sandahl

Complex software systems often feature distinct modes of operation, each designed to handle a particular scenario that may require the system to respond in a certain way. Breaking down system behavior into mutually exclusive modes and…

Programming Languages · Computer Science 2023-01-24 Alexander Schulz-Rosengarten , Reinhard von Hanxleden , Marten Lohstroh , Soroush Bateni , Edward A. Lee

The GCC free compiler is a very large software, compiling source in several languages for many targets on various systems. It can be extended by plugins, which may take advantage of its power to provide extra specific functionality…

Programming Languages · Computer Science 2011-09-06 Basile Starynkevitch

Unit testing plays a pivotal role in the software development lifecycle, as it ensures code quality. However, writing high-quality unit tests remains a time-consuming task for developers in practice. More recently, the application of large…

Software Engineering · Computer Science 2025-08-12 Yuwei Zhang , Qingyuan Lu , Kai Liu , Wensheng Dou , Jiaxin Zhu , Li Qian , Chunxi Zhang , Zheng Lin , Jun Wei

Continuous Integration (CI) is a cornerstone of modern collaborative software development, and numerous CI platforms are available. Differences in maintenance overhead, reliability, and integration depth with code-hosting platforms make…

Software Engineering · Computer Science 2025-11-04 Chong Wang , Chen Zhang , Jiajun Wu , Wunan Guo , Jianfeng Qu , Yewen Tian , Yang Liu