首页> 外文期刊>Formal Aspects of Computing >A Refinement Calculus for Shared-Variable Parallel and Distributed Programming
【24h】

A Refinement Calculus for Shared-Variable Parallel and Distributed Programming

机译:共享变量并行和分布式编程的细化演算

获取原文

摘要

Parallel computers have not yet had the expected impact on mainstream computing. Parallelism adds a level of complexity to the programming task that makes it very error-prone. Moreover, a large variety of very different parallel architectures exists. Porting an implementation from one machine to another may require substantial changes. This paper addresses some of these problems by developing a formal basis for the design of parallel programs in the form of a refinement calculus. The calculus allows the stepwise formal derivation of an abstract, low-level implementation from a trusted, high-level specification. The calculus thus helps structuring and documenting the development process. Portability is increased, because the introduction of a machine-dependent feature can be located in the refinement tree. Development efforts above this point in the tree are independent of that feature and are thus reusable. Moreover, the discovery of new, possibly more efficient solutions is facilitated. Last but not least, programs are correct by construction, which obviates the need for difficult debugging. Our programming/specification notation supports fair parallelism, shared-variable and message-passing concurrency, local variables and channels. The calculus rests on a compositional trace semantics that treats shared-variable and message-passing concurrency uniformly. The refinement relation combines a context-sensitive notion of trace inclusion and assumption-commitment reasoning to achieve compositionality. The calculus straddles both concurrency paradigms, that is, a shared-variable program can be refined into a distributed, message-passing program and vice versa.
机译:并行计算机尚未对主流计算产生预期的影响。并行性给编程任务增加了一定程度的复杂性,使其非常容易出错。此外,存在多种非常不同的并行架构。将实现从一台机器移植到另一台机器可能需要进行重大更改。本文通过为精化演算形式的并行程序设计开发了正式的基础,解决了其中的一些问题。演算允许从受信任的高级规范逐步抽象化低级实现。因此,演算有助于构造和记录开发过程。可移植性提高了,因为可以在细化树中找到与机器相关的功能。树上高于此点的开发工作与该功能无关,因此可重复使用。而且,促进了新的,可能更有效的解决方案的发现。最后但并非最不重要的一点是,程序在构造上是正确的,从而消除了进行困难调试的需要。我们的编程/规范表示法支持公平的并行性,共享变量和消息传递并发,局部变量和通道。演算基于组合跟踪语义,该语义统一地对待共享变量和消息传递并发。细化关系将跟踪包含的上下文相关概念与假设承诺推理相结合,以实现组合性。演算跨越了两种并发范式,也就是说,共享变量程序可以细化为分布式的消息传递程序,反之亦然。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号