Fractional Types: Expressive and Safe Space Management for Ancilla Bits
February 17, 2020 Β· Declared Dead Β· π International Workshop on Reversible Computation
Repo contents: .gitignore, Everything.agda, Examples.agda, Extraction.agda, Pi.agda, PiMemSem.agda, Piβ±D.agda, Piβ±DMemSem.agda, Piβ±D_default.agda, Piβ±β.agda, T.agda, Toffoli.agda
Authors
Chao-Hong Chen, Vikraman Choudhury, Jacques Carette, Amr Sabry
arXiv ID
2002.07020
Category
cs.PL: Programming Languages
Cross-listed
cs.LO
Citations
3
Venue
International Workshop on Reversible Computation
Repository
https://github.com/DreamLinuxer/FracAncilla
β 5
Last Checked
1 month ago
Abstract
In reversible computing, the management of space is subject to two broad classes of constraints. First, as with general-purpose computation, every allocation must be paired with a matching de-allocation. Second, space can only be safely de-allocated if its contents are restored to their initial value from allocation time. Generally speaking, the state of the art provides limited partial solutions that address the first constraint by imposing a stack discipline and by leaving the second constraint to programmers' assertions. We propose a novel approach based on the idea of fractional types. As a simple intuitive example, allocation of a new boolean value initialized to $\texttt{false}$ also creates a value $1/{\texttt{false}}$ that can be thought of as a garbage collection (GC) process specialized to reclaim, and only reclaim, storage containing the value $\texttt{false}$. This GC process is a first-class entity that can be manipulated, decomposed into smaller processes and combined with other GC processes. We formalize this idea in the context of a reversible language founded on type isomorphisms, prove its fundamental correctness properties, and illustrate its expressiveness using a wide variety of examples. The development is backed by a fully-formalized Agda implementation.
Community Contributions
Found the code? Know the venue? Think something is wrong? Let us know!
π Similar Papers
In the same crypt β Programming Languages
R.I.P.
π»
Ghosted
R.I.P.
π»
Ghosted
Tensor Comprehensions: Framework-Agnostic High-Performance Machine Learning Abstractions
R.I.P.
π»
Ghosted
Glow: Graph Lowering Compiler Techniques for Neural Networks
R.I.P.
π»
Ghosted
Learnable Programming: Blocks and Beyond
R.I.P.
π»
Ghosted
Scenic: A Language for Scenario Specification and Scene Generation
R.I.P.
π»
Ghosted
Vandal: A Scalable Security Analysis Framework for Smart Contracts
Died the same way β 𦴠Skeleton Repo
R.I.P.
π¦΄
Skeleton Repo
EuroSAT: A Novel Dataset and Deep Learning Benchmark for Land Use and Land Cover Classification
R.I.P.
π¦΄
Skeleton Repo
Deep Learning for 3D Point Clouds: A Survey
R.I.P.
π¦΄
Skeleton Repo
Adversarial Examples: Attacks and Defenses for Deep Learning
R.I.P.
π¦΄
Skeleton Repo