Taming Scope Extrusion in Gradual Imperative Metaprogramming

📅 2026-02-23
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses the scope extrusion problem that arises when gradual typing, metaprogramming, and mutable references interact, potentially allowing free variables to escape their lexical scopes. To resolve this, we present λ^{α,★}_{Ref}, the first gradually typed metaprogramming language supporting mutable references while guaranteeing scope safety. Our approach combines a static type system with dynamic checks to preserve scope integrity. We introduce a novel coercion calculus, CC^{α,★}_{Ref}, built upon an extended Henglein coercion framework, which dynamically enforces environment classifier rules within the gradual type system and supports code types, classifier polymorphism, and subtyping constraints. We formally prove that the language ensures both type safety and scope safety, and we provide a space-efficient mechanism for scope checking that guarantees bounded runtime overhead.

Technology Category

Application Category

📝 Abstract
Metaprogramming enables the generation of performant code, while gradual typing facilitates the smooth migration from untyped scripts to robust statically typed programs. However, combining these features with imperative state - specifically mutable references - reintroduces the classic peril of scope extrusion, where code fragments containing free variables escape their defining lexical context. While static type systems utilizing environment classifiers have successfully tamed this interaction, enforcing these invariants in a gradual language remains an open challenge. This paper presents $λ^{α,\star}_{\text{Ref}}$, the first gradual metaprogramming language that supports mutable references while guaranteeing scope safety. To put $λ^{α,\star}_{\text{Ref}}$ on a firm foundation, we also develop its statically typed sister language, $λ^α_{\text{Ref}}$, that introduces unrestricted subtyping for environment classifiers. Our key innovation, however, is the dynamic enforcement of the environment classifier discipline in $λ^{α,\star}_{\text{Ref}}$, enabling the language to mediate between statically verified scopes and dynamically verified scopes. The dynamic enforcement is carried out in a novel cast calculus $\mathrm{CC}^{α,\star}_{\text{Ref}}$ that uses an extension of Henglein's Coercion Calculus to handle code types, classifier polymorphism, and subtype constraints. We prove that $λ^{α,\star}_{\text{Ref}}$ satisfies type safety and scope safety. Finally, we provide a space-efficient implementation strategy for the dynamic scope checks, ensuring that the runtime overhead remains practical.
Problem

Research questions and friction points this paper is trying to address.

scope extrusion
gradual typing
metaprogramming
mutable references
scope safety
Innovation

Methods, ideas, or system contributions that make the work stand out.

gradual typing
metaprogramming
scope extrusion
environment classifiers
coercion calculus
🔎 Similar Papers
No similar papers found.
T
Tianyu Chen
Indiana University, USA
D
Darshal Shetty
Indiana University, USA
Jeremy G. Siek
Jeremy G. Siek
Professor of Computer Science, Indiana University
Programming LanguagesSemanticsType SystemsGradual TypingHigh Performance Computing
C
Chao-Hong Chen
Meta, USA
W
Weixi Ma
Meta, USA
A
Arnaud Venet
Meta, USA
R
Rocky Liu
Meta, USA