Notions of Stack-Manipulating Computation and Relative Monads
Yuchen Jiang, Runze Xue, Max S. New
摘要
Monads provide a simple and concise interface to user-defined computational effects in functional programming languages. This enables equational reasoning about effects, abstraction over monadic interfaces and the development of monad transformer stacks to allow for multiple effects. Compiler implementors and assembly code programmers similarly virtualize effects, and would benefit from similar abstractions if possible. However, the implementation details of effects seem disconnected from the high-level monad interface: at this lower level much of the design is in the layout of the runtime stack , which is not accessible in a high-level programming language. We demonstrate that the monadic interface can be faithfully adapted from high-level functional programming to a lower level setting with explicit stack manipulation. We use a polymorphic call-by-push-value (CBPV) calculus as a setting that captures the essence of stack-manipulation, with a type system that allows programs to define domain-specific stack structures. Within this setting, we show that the existing category-theoretic notion of a relative monad can be used to model the stack-based implementation of computational effects. To demonstrate generality, we adapt a variety of standard monads to relative monads. Additionally, we show that stack-manipulating programs can benefit from a generalization of do-notation we call “monadic blocks” that allow all CBPV code to be reinterpreted to work with an arbitrary relative monad. As an application, we show that all relative monads extend automatically to relative monad transformers, a process which is not automatic for monads in pure languages.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper3
- The fire triangle: how to mix substitution, dependent elimination, and effectsPierre-Marie Pédrot, Nicolas TabareauPOPL 2020 · 被引用 42 次
- Denotational Semantics of Gradual Typing using Synthetic Guarded Domain TheoryEric Giovannini, Tingting Ding, Max S. NewPOPL 2025 · 被引用 2 次
- What Is a Monoid?Paul Blain Levy, Morgan RogersPOPL 2026
相关 Paper
- Adequacy for Algebraic Effects RevisitedG. A. KavvosOOPSLA 2025 · 被引用 6 次
- Abstract Operational Methods for Call-by-Push-ValueSergey Goncharov, Stelios Tsampas, Henning UrbatPOPL 2025 · 被引用 3 次
- Central Submonads and Notions of Computation: Soundness, Completeness and Internal LanguagesTitouan Carette, Louis Lemonnier, Vladimir ZamdzhievLICS 2023 · 被引用 3 次
- A Relational Theory of Monadic Rewriting Systems, Part IFrancesco Gavazzo, Claudia FaggianLICS 2021 · 被引用 3 次
- Logical relations for call-by-push-value models, via internal fibrations in a 2-categoryPedro H. Azevedo de Amorim, Satoshi Kura, Philip SavilleLICS 2025 · 被引用 1 次
