• Corpus ID: 235624224

Native Implementation of Mutable Value Semantics

  title={Native Implementation of Mutable Value Semantics},
  author={Dimitri Racordon and Denys Shabalin and Daniel Zheng and Dave Abrahams and Brennan Saeta},
Unrestricted mutation of shared state is a source of many wellknown problems. The predominant safe solutions are pure functional programming, which bans mutation outright, and flow sensitive type systems, which depend on sophisticated typing rules. Mutable value semantics is a third approach that bans sharing instead of mutation, thereby supporting part-wise in-place mutation and local reasoning, while maintaining a simple type system. In the purest form of mutable value semantics, references… 

Figures from this paper



Capabilities for Uniqueness and Borrowing

A new approach to uniqueness is introduced, to use capabilities for enforcing both at-most-once consumption of unique references, and a flexible notion of uniqueness, based on simple, unstructured capabilities.

LLVM: a compilation framework for lifelong program analysis & transformation

The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.

Local Reasoning about Programs that Alter Data Structures

An extension of Hoare's logic for reasoning about programs that alter data structures is described, based on a possible worlds model of the logic of bunched implications, and includes spatial conjunction and implication connectives alongside those of classical logic.

The Boost Graph Library - User Guide and Reference Manual

This User Guide discusses Graph Construction and Modification Algorithm Visitors, a comparison of GP and OOP and the STL, and implementing Graph Adaptors using BGL Topological Sort with SGB Graphs.

The Genuine Sieve of Eratosthenes

It is shown that this example is not the sieve and an implementation that actually is is presented, which shows the elegance and simplicity of lazy functional programming.

A Retrospective on Region-Based Memory Management

The experience with designing, implementing, proving correct, and evaluating a region-based memory management system is reported on.

Definitional Interpreters for Higher-Order Programming Languages

This work considers the definition of a simple applicative programming language by means of an interpreter written in a similar language, and considers the treatment of imperative features such as jumps and assignment.

Own - ership Types : A Survey

  • Lecture Notes in Computer Science
  • 2013

Ownership Types: A Survey. In Aliasing in Object-Oriented Programming

  • Types, Analysis and Verification,
  • 2013