paperbot · PL 论文追踪

全部论文 待读 收藏

P2 On library correctness under weak memory consistency: specifying and verifying concurrent libraries under declarative consistency models

弱内存一致性下的库正确性:声明式一致性模型中并发库的规约与验证
POPL 3(POPL)2019匹配度 3/10 · 该论文属于形式化验证与并发内存模型方向,用户偏好理论形式化与工程实现,但研究画像的核心是AI与PL交叉、浮点程序分析、贝叶斯程序分析;本文不涉及LLM/Agent、浮点或贝叶斯方法,与核心方向交集有限。引用 37 inbox
Azalea Raad, Marko Doko, Lovro Rožić, Ori Lahav, Viktor Vafeiadis
crossref: 2026-09-10

AI 速览

一句话:提出声明式框架,在弱内存一致性下对并发库进行组合式规约与验证。

并发库是并发编程的基础构件,涵盖锁、交换器、栈、队列和集合等,并以分层方式构建。已有工作多集中于顺序一致性(SC)环境下验证这些库,而在弱内存一致性(WMC)下如何规约和验证它们仍不清楚。本文提出一个通用的声明式框架,用于声明式地规约并发库,并组合式地验证库实现满足其规约。该框架能够编码 SC、(R)C11 和 TSO 等标准内存模型。作者还规约了互斥锁、读写锁、交换器、队列、栈和集合等多种并发库,并利用该框架验证了锁、交换器、队列和栈的多个弱一致实现。

问题
在弱内存一致性下,并发库的规约与验证缺乏通用框架,已有工作主要局限于顺序一致性环境。
方法
提出声明式框架,支持组合式规约与验证并发库,并可编码 SC、(R)C11 和 TSO 等标准一致性模型。
评估
规约了锁、读写锁、交换器、队列、栈和集合等库,并验证了锁、交换器、队列和栈的多个弱一致实现。
原文摘要(Abstract)

Concurrent libraries are the building blocks for concurrency. They encompass a range of abstractions (locks, exchangers, stacks, queues, sets) built in a layered fashion: more advanced libraries are built out of simpler ones. While there has been a lot of work on verifying such libraries in a sequentially consistent (SC) environment, little is known about how to specify and verify them under weak memory consistency (WMC). We propose a general declarative framework that allows us to specify concurrent libraries declaratively, and to verify library implementations against their specifications compositionally. Our framework is sufficient to encode standard models such as SC, (R)C11 and TSO. Additionally, we specify several concurrent libraries, including mutual exclusion locks, reader-writer locks, exchangers, queues, stacks and sets. We then use our framework to verify multiple weakly consistent implementations of locks, exchangers, queues and stacks.

链接与引用

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

BibTeX
@article{paperbot666,
  title = {On library correctness under weak memory consistency: specifying and verifying concurrent libraries under declarative consistency models},
  author = {Azalea Raad and Marko Doko and Lovro Rožić and Ori Lahav and Viktor Vafeiadis},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {3},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3290381}
}