Finate State Processes(FSP)语法规则

Finate State Processes(FSP)语法规则

1. 基本语法

1.1 prefix( → \rightarrow

表示动作的发生。

1.2 choice( ∣ |

当在该状态的时,可以允许这几个动作中的一个发生。

1.3 parallel composition ( ∣ ∣ || ∣∣

表示 LTS 之间的 parallel composition 。

1.4 sequential composition ( ; ; ;

2. 高级语法

2.1 递归语句和分句

TRAFFIC_LIGHT = (green ->yellow ->red->TRAFFIC_LIGHT).

在这里插入图片描述

  • 等价于
TRAFFIC_LIGHT = GREEN ,
GREEN = (green -> YELLOW),
YELLOW = (yellow -> RED),
RED = (red -> GREEN).
  • 注意:
    • 每个分句后面要逗号 , , , 分隔
    • 整个句子结束要使用句号 . . . 结束

2.2 选择分支语句

(x -> P | y -> Q) 

代表通过 x x x 出发状态 P P P,通过 y y y 触发状态 Q Q Q

TRAFFIC_LIGHT = (button -> YELLOW | none -> GREEN),
GREEN = (green -> TRAFFIC_LIGHT),
YELLOW = (yellow -> RED),
RED = (red -> TRAFFIC_LIGHT).

在这里插入图片描述

2.3 不定状态选择

(x -> P | x -> Q)

同一个 x x x 可能触发 P P P 也可能触发 Q Q Q,这是有进程决定的

TRAFFIC_LIGHT = ( button -> YELLOW
| button -> green -> YELLOW
| none -> GREEN
),
GREEN = (green -> TRAFFIC_LIGHT),
YELLOW = (yellow -> RED),
RED = (red -> TRAFFIC_LIGHT).

在这里插入图片描述

2.4 索引进程

BUFF = (in[i:0..3] -> out[i] -> BUFF).

在这里插入图片描述

等价于

BUFF = (in[0] -> out[0] -> BUFF
|in[1] -> out[1] -> BUFF
|in[2] -> out[2] -> BUFF
|in[3] -> out[3] -> BUFF
).

2.5 constrange 定义常量

const N = 3
range T = 0..N
BUFF = (in[i:T] -> STORE[i]),
STORE[i:T] = (out[i] -> BUFF).

在这里插入图片描述

2.6 guarded action

(when B x -> P | y -> Q)

B B B 条件(guard)被满足, x x x y y y 行为都可能被选择进入,但如果 B B B 不满足,那么 x x x 操作就没有进入的可能

COUNT (N=3) = COUNT[0],
COUNT[i:0..N] = (when(i<N) inc ->COUNT[i+1]
| when(i>0) dec ->COUNT[i-1]
).

在这里插入图片描述

2.7 结束进程

ONESHOT = (once -> STOP).

不存在循环重复执行的情况,STOP 单独是一种状态

在这里插入图片描述

结束态 STOP 的定义

const False = 0
P = (when (False) doanything -> P).

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值