paperbot · PL 论文追踪

全部论文 待读 收藏

P2 An Operational Approach to Library Abstraction under Relaxed Memory Concurrency

松弛内存并发下库抽象的一种操作方法
POPL 7(POPL)2023匹配度 2/10 · 该论文属于并发弱内存模型下的库抽象与形式语义,虽与PL/形式化方法相关,但未涉及用户核心关注的LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析,也不涉及AI与PL的交叉。引用 11 inbox
Abhishek Kr Singh, Ori Lahav
crossref: 2026-09-10

AI 速览

一句话:针对 RC11 弱内存模型给出操作语义与通用库正确性条件,使客户端可用规范代码推理程序行为。

并发数据结构与同步机制是模块化软件开发的基础,但在弱内存并发下,库抽象问题——即客户端能否借助简化的规范代码推理程序行为——一直缺乏通用解答。本文针对 RC11 内存模型的一个片段,给出与之等价的操作语义表示,显式暴露线程间的知识传播,并足以将库行为刻画为全序的操作执行轨迹;据此提出通用的库正确性条件。作者还引入新的访问模式(access modes),用以精确描述库内部不暴露给客户端的同步,以及库对客户端外部同步提出的要求。文章通过多个性质各异的实例展示了该方法的适用性。

问题
在弱内存并发下,库的实现细节对客户端不可见,客户端难以用远比实现简单的规范代码来推理程序行为,缺少通用的库抽象正确性条件。
方法
针对 RC11 内存模型的一个片段,构造等价的操作语义表示以显式刻画线程间的知识传播,将库行为表示为全序的操作执行轨迹,并引入新的访问模式来刻画库内部同步与对客户端外部同步的要求。
评估
以理论构造为主,通过在若干性质不同的实例上应用所提出的正确性条件与访问模式来论证方法的适用性。
原文摘要(Abstract)

Concurrent data structures and synchronization mechanisms implemented by expert developers are indispensable for modular software development. In this paper, we address the fundamental problem of library abstraction under weak memory concurrency, and identify a general library correctness condition allowing clients of the library to reason about program behaviors using the specification code, which is often much simpler than the concrete implementation. We target (a fragment of) the RC11 memory model, and develop an equivalent operational presentation that exposes knowledge propagation between threads, and is sufficiently expressive to capture library behaviors as totally ordered operational execution traces. We further introduce novel access modes to the language that allow intricate specifications accounting for library internal synchronization that is not exposed to the client, as well as the library's demands on external synchronization by the client. We illustrate applications of our approach in several examples of different natures.

链接与引用

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

BibTeX
@article{paperbot2064,
  title = {An Operational Approach to Library Abstraction under Relaxed Memory Concurrency},
  author = {Abhishek Kr Singh and Ori Lahav},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {POPL},
  year = {2023},
  doi = {10.1145/3571246}
}