[论文解读] Deriving Laws for Developing Concurrent Programs in a Rely-Guarantee Style
本文提出了一种在广谱语言中使用依赖/保证条件的形式化理论,用于对共享内存并发程序进行细化。该理论推导出一套全面的细化法则,能够在不假设表达式求值原子性的前提下处理对共享变量的干扰,从而能够正确地从规格推导出细粒度的并发算法,并在Isabelle/HOL中实现完全机械化。
This paper presents a theory for the refinement of shared-memory concurrent algorithms from specifications. We augment pre and post condition specifications with Jones' rely and guarantee conditions, all of which are encoded as commands within a wide-spectrum language. Program components are specified using either partial or total correctness versions of postcondition specifications. Operations on shared data structures and atomic machine operations (e.g. compare-and-swap) are specified using an atomic specification command. All the above constructs are defined in terms of a simple core language, based on a small set of primitive commands and a handful of operators. A comprehensive set of laws for refining such specifications to code is derived in the theory. The approach supports fine-grained concurrency, avoiding atomicity assumptions on expression evaluation and assignment commands. The theory has been formalised in Isabelle/HOL, and the refinement laws and supporting lemmas have been proven in Isabelle/HOL.
研究动机与目标
- 开发一种系统化的理论,用于在存在干扰的情况下,从规格推导出正确的并发程序。
- 解决细粒度并发算法中非确定性交错执行的挑战。
- 提供一种组合式框架,将规格与实现分离,同时在干扰下保持正确性。
- 在环境干扰存在的情况下,支持部分正确性和整体正确性。
- 通过Isabelle/HOL支持的机械化验证,实现对细化法则的机械化支持,以促进实际并发算法的开发。
提出的方法
- 通过在预条件和后条件中增强依赖和保证条件,所有条件均以广谱语言中的命令形式编码。
- 在基于原始命令和运算符的核心语言中定义所有程序构造——包括赋值、条件语句、循环和原子操作。
- 引入原子规格命令,以建模诸如比较并交换等低级操作。
- 推导出支持从抽象规格到具体代码的逐步细化的细化法则,即使在干扰下也适用。
- 在Isabelle/HOL中对整个理论及所有细化法则进行机械化,以确保正确性并支持工具辅助推理。
- 使用基于格的命令模型,对在干扰下的程序等价性和细化进行形式化推理。
实验结果
研究问题
- RQ1如何系统性地将依赖/保证条件整合进并发程序的细化演算中?
- RQ2在共享变量受到干扰的情况下,需要哪些细化法则才能安全地推导出并发算法?
- RQ3如何对原子操作和数据结构操作进行规格化与细化,同时在干扰下保持正确性?
- RQ4在并发环境中,稳定性在确保正确后置条件方面起到什么作用?
- RQ5该理论如何实现机械化,以支持可扩展的、机器可检查的并发算法验证?
主要发现
- 该理论成功推导出一套全面的细化法则,支持在不假设表达式求值原子性的前提下,开发细粒度的并发算法。
- 该方法通过在后置条件和保证条件之间拆分要求,实现了在干扰下对集合删除等操作的正确细化。
- Isabelle/HOL的机械化验证确认了所有细化法则及其支持性引理的正确性,从而实现了可信赖的验证。
- 该框架支持部分正确性和整体正确性,且对两者分别有独立的法则,允许规格化非终止但安全的算法。
- 该理论具有可扩展性,支持未来添加通用不变式、局部变量以及锁和条件变量的基于资源的推理。
- 使用基于命令的依赖/保证条件的广谱语言,使得推理比以往方法更具表达力和模块化。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。