• Corpus ID: 235624224

Native Implementation of Mutable Value Semantics

@article{Racordon2021NativeIO,
  title={Native Implementation of Mutable Value Semantics},
  author={Dimitri Racordon and Denys Shabalin and Daniel Zheng and Dave Abrahams and Brennan Saeta},
  journal={ArXiv},
  year={2021},
  volume={abs/2106.12678}
}
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

References

SHOWING 1-10 OF 10 REFERENCES

Capabilities for Uniqueness and Borrowing

TLDR
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

TLDR
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.

Definitional Interpreters for Higher-Order Programming Languages

TLDR
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.

Local Reasoning about Programs that Alter Data Structures

TLDR
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

TLDR
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

TLDR
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

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

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