Score
Designs and formalizes static effect systems for programming languages: specifying effect annotations on expressions, rules to track control and other effects across scopes, and modeling program transformations (for example let‑insertion) as effects. Builds the corresponding type-and-effect rules, analyses, and proofs or mechanized checks that enforce effect-based type safety and soundness.
This work addresses the problem of scope extrusion that arises when metaprogramming interacts with effect handlers, often leading to the generation of ill-scoped code. While existing static type systems face practical usability and implementation challenges, dynamic checks lack a solid theoretical foundation. To bridge this gap, the paper presents the first formalization of a dynamic scope extrusion check, introducing the calculus λ⟨⟨op⟩⟩ to precisely model the issue. It proposes a novel “Cause-for-Concern” dynamic checking mechanism that preserves the benefits of prior dynamic approaches while incorporating a refined environmental classifier to statically prevent extrusion. Theoretical analysis establishes the correctness of this method independent of any concrete implementation, and a comparison with purely static techniques highlights the expressive advantages and inherent trade-offs of hybrid static–dynamic strategies.
This work identifies and rectifies a subtle binding flaw in the type-and-effect reconstruction algorithm originally proposed by Jouvelot and Gifford (1991) when applied to higher-order polymorphic languages. By formalizing a refined type system, analyzing the underlying effect algebra structure, and integrating static program analysis techniques, we address the critical deficiency in handling variable binding under higher-order polymorphism. Our correction not only enhances the correctness and reliability of type-and-effect reconstruction in such expressive settings but also establishes a more rigorous foundation for the formalization and implementation of future type-and-effect systems.
This paper addresses the challenge that object-oriented (OO) languages inherently lack natural support for arbitrary monadic effects (e.g., raise, compose, handle). To resolve this, we propose a framework that seamlessly integrates monadic effects into a pure object calculus. Methodologically: (1) effect invocation is modeled as special methods, enabling intuitive, direct calls by ordinary programmers; (2) we design the first type-and-effect system supporting both inheritance and generics, achieving concise effect polymorphism; (3) we introduce a one-step reduction semantics that uniformly captures the translation from the source language to monadic form while guaranteeing type safety. We formally verify progress and type preservation. Our contribution is the first realization in the OO paradigm of generalized side effects that simultaneously achieves elegance, type safety, and usability—significantly lowering the barrier to monadic effect programming and providing a scalable, effect-control infrastructure for modern OO languages.
Existing effect systems require extensive manual effect annotations and struggle to integrate with legacy codebases. Method: This paper proposes a static effect-handling mechanism based on modal types, introducing modal logic into effect type systems for the first time. It statically guarantees—without source-code modification—that all effectful operations are handled, eliminating the need for explicit effect polymorphism, second-class functions, or fragile syntactic analysis. Contribution/Results: The approach formalizes effect completeness via modal type constraints and semantic modeling of effect handlers. It enables zero-annotation migration and seamless integration with large-scale (million-line) legacy codebases. Experimental evaluation demonstrates strong safety guarantees alongside high compatibility.
This work addresses the lack of a systematic investigation into the formal relationship between effect systems and abstract interpretation, particularly whether they can be unified in general settings. It establishes, for the first time, a formal correspondence between the two within a generic framework by embedding effect quantales into abstract domains and formulating a novel perspective on abstract interpretation grounded in events rather than states or values. Drawing upon effect quantale theory, the abstract interpretation framework, and program semantics, the paper successfully reduces effect systems to an instance of abstract interpretation. This reduction not only clarifies the semantic foundations of effect systems but also provides a unified theoretical basis for effect-driven static analysis tools.
Traditional program logics struggle to scale and compose when accommodating new computational effects. This work proposes a novel, extensible program logic based on effect handlers, unifying the treatment of concurrency, distributed execution, and crash recovery within a purely sequential language. By formally characterizing handler properties, the approach yields inference rules that are strictly stronger than those in prior work. Building on this foundation, the paper further develops an extensible relational logic capable of supporting contextual refinement proofs. The resulting framework substantially enhances both the compositional reasoning capabilities and verification strength for programs exhibiting complex computational effects.
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.
This work addresses the challenge of efficiently testing black-box systems with side effects by proposing a test generation approach that integrates under-approximate typing with effect systems. The method employs symbolic traces to capture data and control dependencies of side-effecting operations, preserving essential constraints to guide test case synthesis. Precise coverage is achieved through an integration of property-based testing and model checking. The implemented tool, Clouseau, demonstrates substantial improvements over default strategies in frameworks such as QCheck and P, achieving test effectiveness comparable to state-of-the-art hand-crafted test suites. These results validate both the efficacy and practicality of the proposed methodology.