45、图形用户界面胶水代码的反应式合成

图形用户界面胶水代码的反应式合成

1. 示例引入

为了更好地理解相关定义,我们来看一个费用分摊应用程序规范的片段。图形用户界面(GUI)胶水代码需要满足的规范通常包含对环境的假设以及控制器必须履行的保证。

1.1 保证规范

保证部分包含如下规范:
[
\psi_g = G(\text{newTeamButton.click} \to (\neg\text{done} U \text{regTeam.start}) \land (\neg\text{regTeam.terminate} U (\text{regTeam.terminate} \land (\neg\text{done} U \text{updateTeamList}))))
]
此保证表明,每当点击启动新团队的 GUI 按钮时,在控制器将控制权交还给操作系统之前,应启动一个用于注册新团队的线程。注册新团队需要与服务器进行通信,在收到服务器的响应之前,GUI 不应被阻塞,这意味着需要将通信任务卸载到单独的线程中。此外,当该线程最终终止后,在将控制权交还给操作系统之前,应执行一个即时操作 updateTeamList 。这两个操作(启动线程和执行 updateTeamList )都会触发用户编写的后端代码执行。 updateTeamList 操作足够快,在 GUI 上下文中执行不会导致其阻塞,像用于 Android 应用程序的 GUI 框架甚至要求此类更新必须从 GUI(主)线程执行。

1.2 假设规范

仅上述规范是无法实现的,因为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值