English
Related papers

Related papers: Automatic Linear Resource Bound Analysis for Rust …

200 papers

The goal of automatic resource bound analysis is to statically infer symbolic bounds on the resource consumption of the evaluation of a program. A longstanding challenge for automatic resource analysis is the inference of bounds that are…

Programming Languages · Computer Science 2023-04-27 Jessie Grosen , David M. Kahn , Jan Hoffmann

The Rust programming language continues to rise in popularity, and as such, warrants the close attention of the programming languages community. In this work, we present a new foundational contribution towards the theoretical understanding…

Programming Languages · Computer Science 2024-07-02 Son Ho , Aymeric Fromherz , Jonathan Protzenko

An automated resource analysis technique is introduced, targeting a Call-By-Push-Value abstract machine, with memory prediction as a practical goal. The machine has a polymorphic and linear type system enhanced with a first-order logical…

Logic in Computer Science · Computer Science 2023-10-24 Hector Suzanne , Emmanuel Chailloux

Rust claims to advance industrial programming by bridging the gap between low-level systems programming and high-level application programming. At the heart of the argument that this enables programmers to build more reliable and efficient…

Programming Languages · Computer Science 2021-10-22 Aaron Weiss , Olek Gierczak , Daniel Patterson , Amal Ahmed

This paper presents a new static analysis for deriving upper bounds on the expected resource consumption of probabilistic programs. The analysis is fully automatic and derives symbolic bounds that are multivariate polynomials of the inputs.…

Programming Languages · Computer Science 2017-11-27 Van Chan Ngo , Quentin Carbonneaux , Jan Hoffmann

We consider the problem of automatically proving resource bounds. That is, we study how to prove that an integer-valued resource variable is bounded by a given program expression. Automatic resource-bound analysis has recently received…

Programming Languages · Computer Science 2021-10-15 Tianhan Lu , Bor-Yuh Evan Chang , Ashutosh Trivedi

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…

Programming Languages · Computer Science 2018-08-20 Aaron Weiss , Daniel Patterson , Amal Ahmed

While there exist several successful techniques for supporting programmers in deriving static resource bounds for sequential code, analyzing the resource usage of message-passing concurrent processes poses additional challenges. To meet…

Programming Languages · Computer Science 2018-04-30 Ankush Das , Jan Hoffmann , Frank Pfenning

We present Aeneas, a new verification toolchain for Rust programs based on a lightweight functional translation. We leverage Rust's rich region-based type system to eliminate memory reasoning for many Rust programs, as long as they do not…

Programming Languages · Computer Science 2022-09-29 Son Ho , Jonathan Protzenko

The Rust programming language provides a powerful type system that checks linearity and borrowing, allowing code to safely manipulate memory without garbage collection and making Rust ideal for developing low-level, high-assurance systems.…

Logic in Computer Science · Computer Science 2023-03-14 Andrea Lattuada , Travis Hance , Chanhee Cho , Matthias Brun , Isitha Subasinghe , Yi Zhou , Jon Howell , Bryan Parno , Chris Hawblitzel

Rust is an emerging programming language that aims to prevent memory-safety bugs. However, the current design of Rust also brings side effects which may increase the risk of memory-safety issues. In particular, it employs OBRM…

Programming Languages · Computer Science 2021-04-27 Mohan Cui , Chengjun Chen , Hui Xu , Yangfan Zhou

Rust is an emerging programming language designed for the development of systems software. To facilitate the reuse of Rust code, crates.io, as a central package registry of the Rust ecosystem, hosts thousands of third-party Rust packages.…

Cryptography and Security · Computer Science 2023-08-30 Xiaoye Zheng , Zhiyuan Wan , Yun Zhang , Rui Chang , David Lo

Ownership and borrowing systems, designed to enforce safe memory management without the need for garbage collection, have been brought to the fore by the Rust programming language. Rust also aims to bring some guarantees offered by…

Programming Languages · Computer Science 2024-10-23 Danielle Marshall , Dominic Orchard

We propose a novel type system for verifying that programs correctly implement constant-resource behavior. Our type system extends recent work on automatic amortized resource analysis (AARA), a set of techniques that automatically derive…

Programming Languages · Computer Science 2018-01-09 Van Chan Ngo , Mario Dehesa-Azuara , Matthew Fredrikson , Jan Hoffmann

Programmers learning Rust struggle to understand ownership types, Rust's core mechanism for ensuring memory safety without garbage collection. This paper describes our attempt to systematically design a pedagogy for ownership types. First,…

Programming Languages · Computer Science 2023-09-11 Will Crichton , Gavin Gray , Shriram Krishnamurthi

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

Rust is an effective system programming language that guarantees memory safety via compile-time verifications. It employs a novel ownership-based resource management model to facilitate automated deallocation. This model is anticipated to…

Software Engineering · Computer Science 2024-08-02 Mohan Cui , Hui Xu , Hongliang Tian , Yangfan Zhou

Rust is a new and promising high-level system programming language. It provides both memory safety and thread safety through its novel mechanisms such as ownership, moves and borrows. Ownership system ensures that at any point there is only…

Programming Languages · Computer Science 2018-05-01 Feng Wang , Fu Song , Min Zhang , Xiaoran Zhu , Jun Zhang

Traditional session types prescribe bidirectional communication protocols for concurrent computations, where well-typed programs are guaranteed to adhere to the protocols. However, simple session types cannot capture properties beyond the…

Programming Languages · Computer Science 2023-06-22 Ankush Das , Frank Pfenning

There exist many techniques for automatically deriving parametric resource (or cost) bounds by analyzing the source code of a program. These techniques work effectively for a large class of programs and language features. However, non-local…

Programming Languages · Computer Science 2026-03-04 Ethan Chu , Yiyang Guo , Jan Hoffmann
‹ Prev 1 2 3 10 Next ›