paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility

Armada:具有可靠语义可扩展性的并发代码自动验证
TOPLAS 44(2)2022匹配度 3/10 · 论文属于并发程序的形式化验证与 SMT 自动化推理,虽然与形式化验证领域相关,但未涉及用户核心关注的 LLM/Agent 改进静态分析或形式化验证、浮点程序分析、贝叶斯程序分析等交叉方向。引用 2 inbox
Jacob R. Lorch, Yixuan Chen, Manos Kapritsos, Haojun Ma, Bryan Parno, Shaz Qadeer, Upamanyu Sharma, James R. Wilcox, Xueyuan Zhao
crossref: 2026-09-10

AI 速览

一句话:提出 Armada 语言与工具,借助 SMT 自动化和可扩展的可靠推理技术,低代价形式验证高性能并发程序。

编写既高性能又安全的并发程序极为困难,而传统形式验证往往代价高昂。Armada 是一个面向并发程序验证的语言与工具:它采用类 C 语言与小步、基于状态机的语义,允许开发者自由选择内存布局与同步原语,以免限制性能优化。为降低验证负担,Armada 借助 SMT 自动化与一组强大的推理技术库,包括 rely-guarantee、TSO 消除、reduction 和指针分析;这些技术均已被证明可靠,且 Armada 可随时间可靠地扩展新的验证策略。作者使用 Armada 验证了五个并发案例研究,并表明所验证代码可达到与未验证代码相当的性能。

问题
并发程序既要高性能又要正确性,而形式验证通常需要大量人工投入。
方法
设计类 C 的 Armada 语言及其小步状态机语义,允许任意内存布局与同步原语,并结合 SMT 自动化与已证明可靠的 rely-guarantee、TSO 消除、reduction、指针分析等推理技术,且支持可靠地扩展新策略。
评估
在五个并发案例上进行验证,并与未验证代码进行性能对比,结果显示性能相当。
原文摘要(Abstract)

Safely writing high-performance concurrent programs is notoriously difficult. To aid developers, we introduce Armada, a language and tool designed to formally verify such programs with relatively little effort. Via a C-like language and a small-step, state-machine-based semantics, Armadagives developers the flexibility to choose arbitrary memory layout and synchronization primitives so that they are never constrained in their pursuit of performance. To reduce developer effort, Armadaleverages SMT-powered automation and a library of powerful reasoning techniques, including rely-guarantee, TSO elimination, reduction, and pointer analysis. All of these techniques are proven sound, and Armadacan be soundly extended with additional strategies over time. Using Armada, we verify five concurrent case studies and show that we can achieve performance equivalent to that of unverified code.

链接与引用

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

BibTeX
@article{paperbot1615,
  title = {Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility},
  author = {Jacob R. Lorch and Yixuan Chen and Manos Kapritsos and Haojun Ma and Bryan Parno and Shaz Qadeer and Upamanyu Sharma and James R. Wilcox and Xueyuan Zhao},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {44},
  number = {2},
  year = {2022},
  doi = {10.1145/3502491}
}