Affiliation:
1. EPFL
2. University of Waterloo
3. Eberhard Karls University of Tübingen
Abstract
Type systems usually characterize the shape of values but not their free variables. However, many desirable safety properties could be guaranteed if one knew the free variables captured by values. We describe
CC
< :◻
, a calculus where such captured variables are succinctly represented in types, and show it can be used to safely implement effects and effect polymorphism via scoped capabilities. We discuss how the decision to track captured variables guides key aspects of the calculus, and show that
CC
< :◻
admits simple and intuitive types for common data structures and their typical usage patterns. We demonstrate how these ideas can be used to guide the implementation of capture checking in a practical programming language.
Funder
Natural Sciences and Engineering Research Council of Canada
Publisher
Association for Computing Machinery (ACM)
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Stack-Copying Delimited Continuations for Scala Native;Proceedings of the 19th ACM International Workshop on Implementation, Compilation, Optimization of OO Languages, Programs and Systems;2024-09-13
2. Qualifying System F
<:
: Some Terms and Conditions May Apply;Proceedings of the ACM on Programming Languages;2024-04-29
3. A Formal Foundation of Reach Capabilities;Companion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming;2024-03-11
4. Polymorphic Reachability Types: Tracking Freshness, Aliasing, and Separation in Higher-Order Generic Programs;Proceedings of the ACM on Programming Languages;2024-01-05