Affiliation:
1. INRIA, Le Chesnay, France
Abstract
Reasoning about imperative programs requires the ability to track aliasing and ownership properties. We present a type system that provides this ability, by using regions, capabilities, and singleton types. It is designed for a high-level calculus with higher-order functions, algebraic data structures, and references (mutable memory cells). The type system has polymorphism, yet does not require a value restriction, because capabilities act as explicit store typings.
We exhibit a type-directed, type-preserving, and meaning-preserving translation of this imperative calculus into a pure calculus. Like the monadic translation, this is a store-passing translation. Here, however, the store is partitioned into multiple fragments, which are threaded through a computation only if they are relevant to it. Furthermore, the decomposition of the store into fragments can evolve dynamically to reflect ownership transfers.
The translation offers deep insight about the inner workings and soundness of the type system. If coupled with a semantic model of its target calculus, it leads to a semantic model of its imperative source calculus. Furthermore, it provides a foundation for our long-term objective of designing a system for specifying and certifying imperative programs with dynamic memory allocation.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference22 articles.
1. Arthur Chargu´eraud and François Pottier. Technical appendix. http://arthur.chargueraud.org/research/2008/icfp/. Arthur Chargu´eraud and François Pottier. Technical appendix. http://arthur.chargueraud.org/research/2008/icfp/.
2. Verification of Object-Oriented Programs with Invariants.
3. Connecting effects and uniqueness with adoption
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Context-Free Session Type Inference;Programming Languages and Systems;2017
2. Type Soundness and Race Freedom for Mezzo;Functional and Logic Programming;2014
3. Views;ACM SIGPLAN Notices;2013-01-23
4. Syntactic soundness proof of a type-and-capability system with hidden state;Journal of Functional Programming;2012-10-10
5. A step-indexed Kripke model of hidden state;Mathematical Structures in Computer Science;2012-08-31