55、基于契约的对象交互与协调机制解析

基于契约的对象交互与协调机制解析

1. 契约概述

在实际应用中,契约可能涉及多个参与方,而非仅局限于二元关系。这种多参与方的契约,其不变式和协调条款会涉及所有参与方,可类比为 Actors 模型中的同步代理,用于协调同时参与同一任务的不同对象的交互规则。

1.1 契约语义基础

我们为契约提出的语义基于一种名为 CommUnity 的程序设计语言和模型。它与 Unity 和 Interacting Processes 类似,但有一个基本区别:CommUnity 用基于对象的协调模型取代了共享变量的交互模型,该模型围绕私有状态和共享动作展开。

1.2 CommUnity 中的对象行为模板

CommUnity 能够以特定结构表达对象行为模板:

object P is
var output
out(V)
input 
inp(V)
init
Ι
do
[]
g∈Γ   g: [B(g) →  
||
a∈D(g)  a:=F(g,a)]

其中各部分含义如下:
- V :变量集合,变量可声明为输入或输出,对应对象使用的通信通道。输入变量用于从对象环境接收数据,输出变量用于查询对象状态和作为方法的输出参数。
- Γ :动作名称集合,每个动作名称关联一个受保护的命令。动作代表程序与环境的交互,其执行受环境控制,可能需要与系统中其他对象的动作同步。
- I :输出变量集合上的命题,即初始化条件。
- B(g)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值