Rust Distilled: An Expressive Tower of Languages
Aaron Weiss, Daniel Patterson, and Amal Ahmed

TL;DR
This paper presents a formal semantics for Rust that models ownership and borrowing at a high level, aiming to facilitate verification and extension of Rust's type system and language features.
Contribution
It introduces a high-level, source-like semantics for Rust that simplifies reasoning about ownership, borrowing, and safety, differing from existing MIR-based models.
Findings
A formal semantics capturing ownership and borrowing without lifetime analysis
A family of languages with increasing expressive power for Rust features
Simplified model for verifying Rust's safety and extensions
Abstract
Rust represents a major advancement in production programming languages because of its success in bridging the gap between high-level application programming and low-level systems programming. At the heart of its design lies a novel approach to ownership that remains highly programmable. In this talk, we will describe our ongoing work on designing a formal semantics for Rust that captures ownership and borrowing without the details of lifetime analysis. This semantics models a high-level understanding of ownership and as a result is close to source-level Rust (but with full type annotations) which differs from the recent RustBelt effort that essentially models MIR, a CPS-style IR used in the Rust compiler. Further, while RustBelt aims to verify the safety of unsafe code in Rust's standard library, we model standard library APIs as primitives, which is sufficient to reason about their…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Security and Verification in Computing · Parallel Computing and Optimization Techniques
