paperbot · PL 论文追踪

全部论文 待读 收藏

P2 DisLog: A Separation Logic for Disentanglement

DisLog:面向 disentanglement 的分离逻辑
POPL 8(POPL)2024匹配度 2/10 · 论文属于并发分离逻辑与程序验证,虽与静态分析和形式化验证相关,但未涉及用户画像核心的 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析,也没有 AI 与 PL 交叉内容。引用 0 inbox
Alexandre Moine, Sam Westrick, Stephanie Balzer
crossref: 2026-09-10

AI 速览

一句话:提出首个静态验证并行程序 disentanglement 的并发分离逻辑 DisLog,并提炼 DisLog+,全部在 Coq/Iris 中机械化。

Disentanglement 是并行程序的运行时性质,保证任务不访问其他并发任务分配的内存,可用于高性能并行内存管理。已有工作依赖程序员保证或运行时插桩,本文提出首个静态验证方法 DisLog:在并发分离逻辑中引入推理 fork-join 结构所需的概念,以验证内存访问确实 disentangled。作者进一步提炼出 DisLog+,其中无需专门推理内存访问:对无数据竞争等一大类程序,功能正确性证明即可蕴含 disentanglement。文章在多个案例(包括两种并发哈希并行去重实现)上展示 DisLog/DisLog+,所有结果均在 Coq 中用 Iris 机械化。

问题
已有 disentanglement 验证要么信任程序员,要么依赖运行时插桩;如何静态保证并行程序任务不访问其他并发任务分配的内存,是本文要解决的问题。
方法
提出 DisLog,在并发分离逻辑中支持 fork-join 并行结构的内存访问推理;并提炼 DisLog+,使无数据竞争等程序的功能正确性证明自动蕴含 disentanglement。
评估
在包括两种并发哈希并行去重实现等案例上演示逻辑的可用性,并在 Coq/Iris 中机械化全部证明与元理论结果。
原文摘要(Abstract)

Disentanglement is a run-time property of parallel programs that facilitates task-local reasoning about the memory footprint of parallel tasks. In particular, it ensures that a task does not access any memory locations allocated by another concurrently executing task. Disentanglement can be exploited, for example, to implement a high-performance parallel memory manager, such as in the MPL (MaPLe) compiler for Parallel ML. Prior research on disentanglement has focused on the design of optimizations, either trusting the programmer to provide a disentangled program or relying on runtime instrumentation for detecting and managing entanglement. This paper provides the first static approach to verify that a program is disentangled: it contributes DisLog, a concurrent separation logic for disentanglement. DisLog enriches concurrent separation logic with the notions necessary for reasoning about the fork-join structure of parallel programs, allowing the verification that memory accesses are effectively disentangled. A large class of programs, including race-free programs, exhibit memory access patterns that are disentangled "by construction". To reason about these patterns, the paper distills from DisLog an almost standard concurrent separation logic, called DisLog+. In this high-level logic, no specific reasoning about memory accesses is needed: functional correctness proofs entail disentanglement. The paper illustrates the use of DisLog and DisLog+ on a range of case studies, including two different implementations of parallel deduplication via concurrent hashing. All our results are mechanized in the Coq proof assistant using Iris.

链接与引用

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

BibTeX
@article{paperbot2605,
  title = {DisLog: A Separation Logic for Disentanglement},
  author = {Alexandre Moine and Sam Westrick and Stephanie Balzer},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {POPL},
  year = {2024},
  doi = {10.1145/3632853}
}