English
Related papers

Related papers: An Empirical Study of Rust-Specific Bugs in the ru…

200 papers

We introduce Flux, which shows how logical refinements can work hand in glove with Rust's ownership mechanisms to yield ergonomic type-based verification of low-level pointer manipulating programs. First, we design a novel refined type…

Programming Languages · Computer Science 2022-11-15 Nico Lehmann , Adam Geller , Niki Vazou , Ranjit Jhala

Context: Static Application Security Testing Tools (SASTTs) identify software vulnerabilities to support the security and reliability of software applications. Interestingly, several studies have suggested that alternative solutions may be…

Software Engineering · Computer Science 2024-03-15 Matteo Esposito , Valentina Falaschi , Davide Falessi

The correctness of compilers is instrumental in the safety and reliability of other software systems, as bugs in compilers can produce programs that do not reflect the intents of programmers. Compilers are complex software systems due to…

Software Engineering · Computer Science 2021-03-22 Md Rafiqul Islam Rabin , Mohammad Amin Alipour

Modern processors are equipped with single instruction multiple data (SIMD) instructions for fine-grained data parallelism. Compiler auto-vectorization techniques that target SIMD instructions face performance limitations due to…

Cryptography and Security · Computer Science 2025-07-08 Yibo He , Cunjian Huang , Xianmiao Qu , Hongdeng Chen , Wei Yang , Tao Xie

By July 2025, smart contracts collectively manage roughly $120 billion in assets. With Solidity remaining the dominant language for smart contract development, the correctness of Solidity compilers has become critically important. However,…

Programming Languages · Computer Science 2025-12-03 Haoyang Ma , Alastair F. Donaldson , Qingchao Shen , Yongqiang Tian , Junjie Chen , Shing-Chi Cheung

With the explosion in popularity of the Rust programming language, a wealth of tools have recently been developed to analyze, verify, and test Rust programs. Alas, the Rust ecosystem remains relatively young, meaning that every one of these…

Programming Languages · Computer Science 2025-06-03 Son Ho , Guillaume Boisseau , Lucas Franceschino , Yoann Prak , Aymeric Fromherz , Jonathan Protzenko

Context: Given a bug report and source code of the project, bug localization can help developers to focus on fixing probable buggy files rather than searching the entire source code repository. While existing research uses information…

Software Engineering · Computer Science 2020-11-09 Shubham Sangle , Sandeep Muvva , Sridhar Chimalakonda , Karthikeyan Ponnalagu , Vijendran Gopalan Venkoparao

Compiler bugs pose a significant threat to safety-critical applications, and promptly as well as effectively isolating these bugs is crucial for assuring the quality of compilers. However, the limited availability of debugging information…

Software Engineering · Computer Science 2024-05-09 Haoxin Tu , Zhide Zhou , He Jiang , Imam Nur Bani Yusuf , Yuxian Li , Lingxiao Jiang

Despite the recent advances in pre-production bug detection, heap-use-after-free and heap-buffer-overflow bugs remain the primary problem for security, reliability, and developer productivity for applications written in C or C++, across all…

Despite much recent interest in compiler randomized testing (fuzzing), the practical impact of fuzzer-found compiler bugs on real-world applications has barely been assessed. We present the first quantitative and qualitative study of the…

Software Engineering · Computer Science 2019-09-06 Michaël Marcozzi , Qiyi Tang , Alastair F. Donaldson , Cristian Cadar

Rust's novel type system has proved an attractive target for verification and program analysis tools, due to the rich guarantees it provides for controlling aliasing and mutability. However, fully understanding, extracting and exploiting…

Programming Languages · Computer Science 2025-08-27 Zachary Grannan , Aurel Bílý , Jonáš Fiala , Jasper Geer , Markus de Medeiros , Peter Müller , Alexander J. Summers

Rewriting C code in Rust provides stronger memory safety, yet migrating large codebases such as the 32-million-line Linux kernel remains challenging. While rule-based translators (e.g., C2Rust) provide accurate yet largely unsafe Rust…

Programming Languages · Computer Science 2025-04-01 Yuchen Liu , Junhao Hu , Yingdi Shan , Ge Li , Yanzhen Zou , Yihong Dong , Tao Xie

Pointers are a powerful, but dangerous feature provided by the C and C++ programming languages, and incorrect use of pointers is a common source of bugs and security vulnerabilities. Making secure software is crucial, as vulnerabilities…

Formal Languages and Automata Theory · Computer Science 2024-11-01 Vlad-Alexandru Teodorescu , Dorel Lucanu

Today's programmers can choose from an exceptional range of programming languages, each with its own traits, purpose, and complexity. A key aspect of a language's complexity is how hard it is to compile programs in the language. While most…

Programming Languages · Computer Science 2025-09-10 Violet Szabo , Dominik Winterer , Zhendong Su

The Verified Software Toolchain (VST) is a system for proving correctness of C programs using separation logic. By connecting to the verified compiler CompCert, it produces the strongest possible guarantees of correctness for real C code…

Programming Languages · Computer Science 2022-07-18 William Mansky

Compilers play a foundational role in building reliable software systems, and bugs within them can lead to catastrophic consequences. The compilation process typically involves hundreds of files, making traditional automated bug isolation…

Software Engineering · Computer Science 2025-06-24 Yixian Qi , Jiajun Jiang , Fengjie Li , Bowen Chen , Hongyu Zhang , Junjie Chen

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

Automatically detecting software failures is an important task and a longstanding challenge. It requires finding failure-inducing test cases whose test input can trigger the software's fault, and constructing an automated oracle to detect…

Software Engineering · Computer Science 2023-09-12 Tsz-On Li , Wenxi Zong , Yibo Wang , Haoye Tian , Ying Wang , Shing-Chi Cheung , Jeff Kramer

Static analysis is one of the most widely adopted techniques to find software bugs before code is put in production. Designing and implementing effective and efficient static analyses is difficult and requires high expertise, which results…

Software Engineering · Computer Science 2019-06-04 Andrew Habib , Michael Pradel

Compilation is an important process in developing configurable systems, such as Linux. However, identifying compilation errors in configurable systems is not straightforward because traditional compilers are not variability-aware. Previous…

Software Engineering · Computer Science 2024-07-31 Lucas Albuquerque , Rohit Gheyi , Márcio Ribeiro