【24h】

Scalable Reasoning About Concurrent Programs

机译:关于并发程序的可扩展推理

获取原文

摘要

Scalable reasoning about complex concurrent programs interacting with shared memory is a fundamental, open research problem. Developers manage the complexity of concurrent software systems by designing software components that are compositional and modular. With compositionality, a developer designs local subcomponents with well-understood interfaces that connect to the rest of the system. With modularity, a developer designs reusable subcomponents with abstract software interfaces that can hide the complexity of the subcomponents from the rest of the system. The challenge is to develop compositional, modular reasoning of concurrent programs, which follows the intuitions of the developer in how to structure their software components with precisely defined specifications of software interfaces. These specifications should not leak implementation details and should be expressed at the level of abstraction of the client. I will describe the work done by my group and others on compositional and modular reasoning about concurrent programs using modern concurrent separation logics. I will present work on reasoning about safety properties, highlighting the CAP logic [ECOOP'10] which introduced logical abstraction (the fiction of separation) to concurrent separation logics and the TaDA logic [ECOOP'14] which introduced abstract atomicity (the fiction of atomicity). I will also present new work on progress properties, introducing the TaDA-Live logic for reasoning about the termination of blocking programs. I will demonstrate the subtlety of the reasoning using a simple lock module, and also compare this work with linearizability, contextual refinement and other concurrent separation logics.
机译:关于复杂并发程序与共享内存交互的可扩展推理是一个基本的,开放的研究问题。开发人员通过设计组成和模块化的软件组件来管理并发软件系统的复杂性。通过组合性,开发人员可以设计具有连接到系统其余部分的易于理解的接口的本地子组件。通过模块化,开发人员可以使用抽象的软件界面来设计可重用的子组件,从而可以将子组件的复杂性隐藏在系统的其余部分中。挑战在于开发并发程序的组合,模块化推理,这遵循开发人员的直觉,即如何使用精确定义的软件接口规范来构造其软件组件。这些规范不应泄漏实现细节,而应在客户端的抽象级别上表达。我将描述我的小组和其他人在使用现代并发分离逻辑进行的有关并发程序的组成和模块推理方面所做的工作。我将介绍有关安全属性推理的工作,重点介绍将逻辑抽象(分离的虚构)引入并发分离逻辑的CAP逻辑[ECOOP'10]和引入抽象原子性的TaDA逻辑[ECOOP'14]。原子性)。我还将介绍有关进度属性的新工作,介绍TaDA-Live逻辑以推理终止程序的终止。我将使用一个简单的锁模块演示推理的精妙之处,并将此工作与线性化,上下文优化和其他并行分离逻辑进行比较。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号