Yarrow: Reconciling Effects Handlers and Region-Based Memory Management

Anders Alnor Mathiasen, Amin Timany, Lars Birkedal 2026-07-20

The problem is that algebraic effects with multi-shot handlers break the stack discipline and region-exit invariants required by region-based memory management. The method is a new language, Yarrow, with a program logic called Yarrow Logic (YL) for safe, modular reasoning about regions under one-shot and multi-shot effect handlers. Experimental evidence shows YL proves correctness of case studies including checkpointing, asynchronous computation, and a LIFO data structure, all using region-allocated memory to avoid garbage collection. This matters because it enables efficient, region-managed memory in languages with algebraic effects, eliminating reliance on garbage-collected heap memory.

PDF

A Modular Framework for Stack-Heap and Value Abstractions (Extended Version)

Giacomo Boldini, Luca Negrini, Luca Olivieri, Pietro Ferrara 2026-07-20

This paper addresses the problem of designing a static analysis framework that can accurately model stack and heap memory across diverse programming languages. The method proposes a modular, parametric framework based on Abstract Interpretation that separates value and memory analyses into interacting abstract domains via memory identifiers. The abstract does not disclose experimental results, but the framework is formalized to support sound approximation of memory models for languages like C, C++, Java, and Python. This matters because it enables detection of critical memory errors (e.g., buffer overflows, use-after-free) before execution, while allowing independent selection and combination of different analyses.

PDF