Abstracting Gradual Typing Moving Forward: Precise and Space-Efficient (Technical Report)
Felipe Ba\~nados Schwerter, Alison M. Clark, Khurram A. Jafery and, Ronald Garcia

TL;DR
This paper improves Abstracting Gradual Typing (AGT) by refining its dynamic checks to ensure space efficiency and enforce type invariants, addressing key shortcomings in existing AGT semantics.
Contribution
It introduces a new theoretical framework that recasts AGT's dynamic checks as an abstract interpretation of subtyping, enabling space-efficient and reliable runtime enforcement.
Findings
Refined AGT semantics support proper tail calls.
Ensured enforcement of static type invariants at runtime.
Achieved space-efficient execution in gradually-typed languages.
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. [2015]. 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 language of Garcia et al. [2016]. This paper addresses…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Formal Methods in Verification
