PlusCal算法语言深度解析:从基础到应用
1. PlusCal概述
PlusCal是一种用于描述算法的语言,它虽无专门的消息收发构造,但能轻松描述分布式消息传递算法。如在特定约束下(输入有4条消息或某通道有5条消息时停止执行,消息集含3个元素),TLC模型能在7.5秒内完成算法检查。
引入 LoseMsg 进程并非强制通道丢消息,算法代码仅规定可能执行的步骤,未规定必须执行的步骤,如 ABProtocol 算法代码未要求 LoseMsg 进程删除消息或 Sender 进程发送消息。
算法的每个进程由无限循环构成,循环体非确定性地选择一个原子动作执行,这是分布式算法高级版本的典型结构。
2. PlusCal语言构造
PlusCal的主要语言构造如下:
- 记录操作 :支持对记录字段的常规赋值,如 v.a := 0; A[0].b := 42; ,若变量类型不符,TLC会报错,所以 v 和 A 需初始化为正确“类型”的值。
- if语句 :有可选的 elsif 子句(仅在p - 语法中)和可选的 else 子句。
- 过程声明 :有过程声明、调用和返回语句。 call 语句不返回值,过程可通过设置全局
超级会员免费看
订阅专栏 解锁全文

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



