Affiliation:
1. University of British Columbia, Canada
2. n.n., n.n.
3. Amazon, Canada
Abstract
Abstracting Gradual Typing (AGT) is a systematic approach to designing gradually-typed languages. Languages developed using AGT automatically satisfy the formal
semantic
criteria for gradual languages identified by Siek et al. Nonetheless, vanilla AGT semantics can still have important shortcomings. First, a gradual language's runtime checks should preserve the
space-efficiency
guarantees inherent to the underlying static and dynamic languages. To the contrary, the default operational semantics of AGT break proper tail calls. Second, a gradual language's runtime checks should enforce basic modular type-based invariants expected from the static type discipline. To the contrary, the default operational semantics of AGT may fail to enforce some invariants in surprising ways. We demonstrate this in the GTFL
≲
language of Garcia et al.
This paper addresses both problems at once by refining the theory underlying AGT's dynamic checks. Garcia et al. observe that AGT involves
two
abstractions of static types: one for the static semantics and one for the dynamic semantics. We recast the latter as an abstract interpretation of
subtyping
itself, while gradual types still abstract static types. Then we show how
forward-completeness
(Giacobazzi and Quintarelli) is key to supporting both space-efficient execution and reliable runtime type enforcement.
Funder
National Sciences and Engineering Research Council of Canada
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Space-Efficient Polymorphic Gradual Typing, Mostly Parametric;Proceedings of the ACM on Programming Languages;2024-06-20
2. Gradually Typed Languages Should Be Vigilant!;Proceedings of the ACM on Programming Languages;2024-04-29
3. GTP Benchmarks for Gradual Typing Performance;Proceedings of the 2023 ACM Conference on Reproducibility and Replicability;2023-06-27
4. Propositional equality for gradual dependently typed programming;Proceedings of the ACM on Programming Languages;2022-08-29
5. Plausible sealing for gradual parametricity;Proceedings of the ACM on Programming Languages;2022-04-29