RustBelt: Securing the foundations of the Rust programming language
Rust is a new systems programming language that promises to overcome the seemingly
fundamental tradeoff between high-level safety guarantees and low-level control over …
fundamental tradeoff between high-level safety guarantees and low-level control over …
SoK: Sanitizing for security
The C and C++ programming languages are notoriously insecure yet remain indispensable.
Developers therefore resort to a multi-pronged approach to find security issues before …
Developers therefore resort to a multi-pronged approach to find security issues before …
Alive2: bounded translation validation for LLVM
We designed, implemented, and deployed Alive2: a bounded translation validation tool for
the LLVM compiler's intermediate representation (IR). It limits resource consumption by, for …
the LLVM compiler's intermediate representation (IR). It limits resource consumption by, for …
RefinedC: automating the foundational verification of C code with refined ownership types
Given the central role that C continues to play in systems software, and the difficulty of
writing safe and correct C code, it remains a grand challenge to develop effective formal …
writing safe and correct C code, it remains a grand challenge to develop effective formal …
Hyperkernel: Push-button verification of an OS kernel
L Nelson, H Sigurbjarnarson, K Zhang… - Proceedings of the 26th …, 2017 - dl.acm.org
This paper describes an approach to designing, implementing, and formally verifying the
functional correctness of an OS kernel, named Hyperkernel, with a high degree of proof …
functional correctness of an OS kernel, named Hyperkernel, with a high degree of proof …
Silent Bugs Matter: A Study of {Compiler-Introduced} Security Bugs
Compilers assure that any produced optimized code is semantically equivalent to the
original code. However, even" correct" compilers may introduce security bugs as security …
original code. However, even" correct" compilers may introduce security bugs as security …
Modular, compositional, and executable formal semantics for LLVM IR
This paper presents a novel formal semantics, mechanized in Coq, for a large, sequential
subset of the LLVM IR. In contrast to previous approaches, which use relationally-specified …
subset of the LLVM IR. In contrast to previous approaches, which use relationally-specified …
Understanding and evolving the Rust programming language
R Jung - 2020 - publikationen.sulb.uni-saarland.de
Rust is a young systems programming language that aims to fill the gap between high-level
languages—which provide strong static guarantees like memory and thread safety—and low …
languages—which provide strong static guarantees like memory and thread safety—and low …
Exploring C semantics and pointer provenance
The semantics of pointers and memory objects in C has been a vexed question for many
years. C values cannot be treated as either purely abstract or purely concrete entities: the …
years. C values cannot be treated as either purely abstract or purely concrete entities: the …
Simuliris: a separation logic framework for verifying concurrent program optimizations
Today's compilers employ a variety of non-trivial optimizations to achieve good performance.
One key trick compilers use to justify transformations of concurrent programs is to assume …
One key trick compilers use to justify transformations of concurrent programs is to assume …