×

用历史和主观性指定和验证并发算法。 (英语) Zbl 1335.68067号

Vitek,Jan(编辑),《编程语言和系统》。2015年4月11日至18日,作为欧洲软件理论与实践联合会议(ETAPS 2015)的一部分,在英国伦敦举行了第24届欧洲编程研讨会(ESOP 2015)。诉讼程序。柏林:施普林格出版社(ISBN 978-3-662-46668-1/pbk;978-3-562-46669-8/电子书)。计算机科学课堂讲稿9032,333-358(2015)。
摘要:我们基于时间戳历史的概念,提出了一种轻量级方法来实现Hoare风格的细粒度并发规范,该历史抽象地捕获程序状态中的原子变化。我们的主要观察结果是,历史形成了一个部分可交换的monoid,这是表示并发资源的基本结构。这种洞察力为我们提供了一种统一机制,使我们能够像对待分离逻辑中的堆一样对待历史。例如,两者都受相同的断言逻辑和推理规则(例如,框架规则)的约束。此外,所有权转移的概念通常适用于堆,在历史上也有类似的概念。它可以用于正式表示帮助,这是并发算法的一种重要设计模式,其中一个线程可以代表另一个线程执行代码。根据历史的规范自然地抽象出了内部干扰,因此复杂的细粒度算法可以得到与简化的粗粒度算法相同的规范,使它们同样方便于客户端推理。我们在许多示例上说明了我们的方法,并在Coq中验证了所有这些方法。
关于整个系列,请参见[Zbl 1333.68020号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)

软件:

Coq公司
PDF格式BibTeX公司 XML格式引用