A direct approach to control-flow sensitive region-based memory management

Author(s):  
Fritz Henglein ◽  
Henning Makholm ◽  
Henning Niss
2021 ◽  
Vol 43 (1) ◽  
pp. 1-73
Author(s):  
David J. Pearce

Rust is a relatively new programming language that has gained significant traction since its v1.0 release in 2015. Rust aims to be a systems language that competes with C/C++. A claimed advantage of Rust is a strong focus on memory safety without garbage collection. This is primarily achieved through two concepts, namely, reference lifetimes and borrowing . Both of these are well-known ideas stemming from the literature on region-based memory management and linearity / uniqueness . Rust brings both of these ideas together to form a coherent programming model. Furthermore, Rust has a strong focus on stack-allocated data and, like C/C++ but unlike Java, permits references to local variables. Type checking in Rust can be viewed as a two-phase process: First, a traditional type checker operates in a flow-insensitive fashion; second, a borrow checker enforces an ownership invariant using a flow-sensitive analysis. In this article, we present a lightweight formalism that captures these two phases using a flow-sensitive type system that enforces “ type and borrow safety .” In particular, programs that are type and borrow safe will not attempt to dereference dangling pointers. Our calculus core captures many aspects of Rust, including copy- and move-semantics, mutable borrowing, reborrowing, partial moves, and lifetimes. In particular, it remains sufficiently lightweight to be easily digested and understood and, we argue, still captures the salient aspects of reference lifetimes and borrowing. Furthermore, extensions to the core can easily add more complex features (e.g., control-flow, tuples, method invocation). We provide a soundness proof to verify our key claims of the calculus. We also provide a reference implementation in Java with which we have model checked our calculus using over 500B input programs. We have also fuzz tested the Rust compiler using our calculus against 2B programs and, to date, found one confirmed compiler bug and several other possible issues.


Author(s):  
B. Roy Frieden

Despite the skill and determination of electro-optical system designers, the images acquired using their best designs often suffer from blur and noise. The aim of an “image enhancer” such as myself is to improve these poor images, usually by digital means, such that they better resemble the true, “optical object,” input to the system. This problem is notoriously “ill-posed,” i.e. any direct approach at inversion of the image data suffers strongly from the presence of even a small amount of noise in the data. In fact, the fluctuations engendered in neighboring output values tend to be strongly negative-correlated, so that the output spatially oscillates up and down, with large amplitude, about the true object. What can be done about this situation? As we shall see, various concepts taken from statistical communication theory have proven to be of real use in attacking this problem. We offer below a brief summary of these concepts.


2016 ◽  
Vol 77 (S 02) ◽  
Author(s):  
Kazimierz Niemczyk ◽  
Robert Bartoszewicz ◽  
Krzysztof Morawski ◽  
Izabela Popieluch
Keyword(s):  

2020 ◽  
Vol 16 (2) ◽  
pp. 214
Author(s):  
Wang Yong ◽  
Liu SanMing ◽  
Li Jun ◽  
Cheng Xiangyu ◽  
Zhou Wan

Author(s):  
Louis Kaplow

Throughout the world, the rule against price fixing is competition law's most important and least controversial prohibition. Yet there is far less consensus than meets the eye on what constitutes price fixing, and prevalent understandings conflict with the teachings of oligopoly theory that supposedly underlie modern competition policy. This book offers a fresh, in-depth exploration of competition law's horizontal agreement requirement, presents a systematic analysis of how best to address the problem of coordinated oligopolistic price elevation, and compares the resulting direct approach to the orthodox prohibition. The book elaborates the relevant benefits and costs of potential solutions, investigates how coordinated price elevation is best detected in light of the error costs associated with different types of proof, and examines appropriate sanctions. Existing literature devotes remarkably little attention to these key subjects and instead concerns itself with limiting penalties to certain sorts of interfirm communications. Challenging conventional wisdom, the book shows how this circumscribed view is less well grounded in the statutes, principles, and precedents of competition law than is a more direct, functional proscription. More important, by comparison to the communications-based prohibition, the book explains how the direct approach targets situations that involve both greater social harm and less risk of chilling desirable behavior—and is also easier to apply.


Sign in / Sign up

Export Citation Format

Share Document