并行程序的Event - B分解方法解析
1. 引言
在并行程序的开发中,要证明程序的正确性是一项极具挑战性的任务。由于不同进程的子语句会交错执行,且执行顺序不可预测,像程序测试这样的技术无法让我们对程序的正确性有足够的信心,因为在测试过程中可能不会出现导致错误的执行情况。因此,有必要对并行程序进行形式化开发和证明。
本文提出了一种结合精化(refinement)和分解(decomposition)技术的方法,该方法包含以下四个步骤:
1. 以一次性的抽象规范来明确程序的目标。
2. 通过引入共享变量的细节来精化这个抽象规范。
3. 对前一步的模型进行分解,将其拆分为多个(抽象)子模型,每个子模型对应一个进程。
4. 独立地对前一步得到的每个子模型进行精化。
在最后一步中,每个子模型都可以看作一个新的抽象规范,因此可以重复步骤2、3和4。该方法的新颖之处在于步骤2,我们在这一步中指定了进程之间的共享信息。这些信息有两个作用:一是包含了每个进程为实现最终结果所需的保证条件;二是为每个进程在后续开发中提供了可依赖的条件。这种早期引入共享信息的决策利用了分解技术,使得模型更简单,降低了程序证明的复杂度,这也是该方法相对于现有方法的主要优势。
2. Event - B建模方法
Event - B开发是一组形式化模型,这些模型由数学语言的表达式构建而成,并存储在一个仓库中。Event - B基于转换系统和系统间的模拟,具有特定的语义。下面介绍Event - B模型的两个基本构建块:上下文(contexts)和机器(machines)。
2.1 机器
机器用于指定Ev
超级会员免费看
订阅专栏 解锁全文
6078

被折叠的 条评论
为什么被折叠?



