English

Taming Scope Extrusion in Gradual Imperative Metaprogramming

Programming Languages 2026-02-24 v1

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 λRefα,\lambda^{\alpha,\star}_{\text{Ref}}, the first gradual metaprogramming language that supports mutable references while guaranteeing scope safety. To put λRefα,\lambda^{\alpha,\star}_{\text{Ref}} on a firm foundation, we also develop its statically typed sister language, λRefα\lambda^{\alpha}_{\text{Ref}}, that introduces unrestricted subtyping for environment classifiers. Our key innovation, however, is the dynamic enforcement of the environment classifier discipline in λRefα,\lambda^{\alpha,\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 CCRefα,\mathrm{CC}^{\alpha,\star}_{\text{Ref}} that uses an extension of Henglein's Coercion Calculus to handle code types, classifier polymorphism, and subtype constraints. We prove that λRefα,\lambda^{\alpha,\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.

Keywords

Cite

@article{arxiv.2602.19951,
  title  = {Taming Scope Extrusion in Gradual Imperative Metaprogramming},
  author = {Tianyu Chen and Darshal Shetty and Jeremy G. Siek and Chao-Hong Chen and Weixi Ma and Arnaud Venet and Rocky Liu},
  journal= {arXiv preprint arXiv:2602.19951},
  year   = {2026}
}

Comments

34 pages, 19 figures

R2 v1 2026-07-01T10:47:35.129Z