paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Bounded Abstract Effects

有界抽象效应
TOPLAS 44(1)2022匹配度 1/10 · 该论文属于编程语言类型与效果系统设计,与用户关注的静态分析在 ML/Agentic 代码中的应用、LLM 与程序分析/形式化验证交叉、浮点或贝叶斯程序分析均无直接关联;仅提供 PL 形式化方法背景,匹配度低。引用 1 inbox
Darya Melicher, Anlun Xu, Valerie Zhao, Alex Potanin, Jonathan Aldrich
crossref: 2026-09-10

AI 速览

一句话:提出一种支持抽象、聚合与上下界层级的效果系统,并集成到 Wyvern 语言中。

通用效果系统虽已研究近四十年,但除 Java 受检异常等少数实践外,通常缺乏异常系统所具备的抽象、聚合与层次能力。本文围绕保护系统资源设计了一种有界抽象效果系统,并集成到 Wyvern 语言中。类似类型成员,Wyvern 对象可拥有效果成员:它们能抽象底层效果、支持效果聚合,并带有下界与上界,从而形成细粒度的效果层次。作者给出了该效果系统的完整形式化,证明其支持对 authority 与 attenuation 的推理,并通过一个安全相关案例研究进行评估。结果表明,该设计在编程语言设计视角下兼顾了表达力与实用性。

问题
通用效果系统缺乏异常系统那样的抽象、聚合与层级表达能力,难以在保护系统资源时精确推理权限。
方法
在 Wyvern 中引入作为对象成员的效果成员,支持效果抽象、聚合及上下界,并给出完整形式化。
评估
通过一个安全相关案例研究评估该效果系统的表达力与实用性。
原文摘要(Abstract)

Effect systems have been a subject of active research for nearly four decades, with the most notable practical example being checked exceptions in programming languages such as Java. While many exception systems support abstraction, aggregation, and hierarchy (e.g., via class declaration and subclassing mechanisms), it is rare to see such expressive power in more generic effect systems. We designed an effect system around the idea of protecting system resources and incorporated our effect system into the Wyvern programming language. Similar to type members, a Wyvern object can have effect members that can abstract lower-level effects, allow for aggregation, and have both lower and upper bounds, providing for a granular effect hierarchy. We argue that Wyvern’s effects capture the right balance of expressiveness and power from the programming language design perspective. We present a full formalization of our effect-system design, showing that it allows reasoning about authority and attenuation. Our approach is evaluated through a security-related case study.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1621,
  title = {Bounded Abstract Effects},
  author = {Darya Melicher and Anlun Xu and Valerie Zhao and Alex Potanin and Jonathan Aldrich},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {44},
  number = {1},
  year = {2022},
  doi = {10.1145/3492427}
}