PKRU-Safe: Automatically locking down the heap between safe and unsafe languages
After more than twenty-five years of research, memory safety violations remain one of the
major causes of security vulnerabilities in real-world software. Memory-safe languages, like …
major causes of security vulnerabilities in real-world software. Memory-safe languages, like …
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 …
Stacked borrows: an aliasing model for Rust
Type systems are useful not just for the safety guarantees they provide, but also for helping
compilers generate more efficient code by simplifying important program analyses. In Rust …
compilers generate more efficient code by simplifying important program analyses. In Rust …
Finding typing compiler bugs
We propose a testing framework for validating static typing procedures in compilers. Our
core component is a program generator suitably crafted for producing programs that are …
core component is a program generator suitably crafted for producing programs that are …
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 …
The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency
Program logics and semantics tell a pleasant story about sequential composition: when
executing (S1; S2), we first execute S1 then S2. To improve performance, however …
executing (S1; S2), we first execute S1 then S2. To improve performance, however …
[PDF][PDF] Declare4Py: A Python Library for Declarative Process Mining.
I Donadello, F Riva, FM Maggi, A Shikhizada - BPM (PhD/Demos), 2022 - bia.unibz.it
In process mining, procedural process models can be difficult to manage when the process
is unpredictable and characterized by many possible exceptions since they can easily …
is unpredictable and characterized by many possible exceptions since they can easily …
K-LLVM: a relatively complete semantics of LLVM IR
Abstract LLVM [Lattner and Adve, 2004] is designed for the compile-time, link-time and run-
time optimization of programs written in various programming languages. The language …
time optimization of programs written in various programming languages. The language …
VIP: verifying real-world C idioms with integer-pointer casts
Systems code often requires fine-grained control over memory layout and pointers,
expressed using low-level (eg, bitwise) operations on pointer values. Since these operations …
expressed using low-level (eg, bitwise) operations on pointer values. Since these operations …