Abstract
The concept of a "unique" object arises in many emerging programming languages such as Clean, CQual, Cyclone, TAL, and Vault. In each of these systems, unique objects make it possible to perform operations that would otherwise be prohibited (e.g., deallocating an object) or to ensure that some obligation will be met (e.g., an opened file will be closed). However, different languages provide different interpretations of "uniqueness" and have different rules regarding how unique objects interact with the rest of the language.Our goal is to establish a common model that supports each of these languages, by allowing us to encode and study the interactions of the different forms of uniqueness. The model we provide is based on a substructural variant of the polymorphic λ-calculus, augmented with four kinds of mutable references: unrestricted, relevant, affine, and linear. The language has a natural operational semantics that supports deallocation of references, strong (type-varying) updates, and storage of unique objects in shared references. We establish the strong soundness of the type system by constructing a novel, semantic interpretation of the types.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference30 articles.
1. Amal Ahmed Andrew W. Appel and Roberto Virga. An indexed model of impredicative polymorphism and mutable references. Available at http://www.cs.princeton.edu/~appel/papers/impred.pdf January 2003.]] Amal Ahmed Andrew W. Appel and Roberto Virga. An indexed model of impredicative polymorphism and mutable references. Available at http://www.cs.princeton.edu/~appel/papers/impred.pdf January 2003.]]
2. Checking and inferring local non-aliasing
3. An indexed model of recursive types for foundational proof-carrying code
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献