FSP语言(Finate State Processes)学习之:(1)FSP 语言基础

  • 先挖个坑,改天再填

FSP 的优势好处

FSP 的使用场景

FSP 的语法规则

递归语句和分句

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

在这里插入图片描述

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

选择分支语句

(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).

在这里插入图片描述

不定状态选择

(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).

在这里插入图片描述

索引进程

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
).

const 和 range 定义常量

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

在这里插入图片描述

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]
).

在这里插入图片描述

结束进程

ONESHOT = (once -> STOP).
  • 不存在循环重复执行的情况,STOP 单独是一种状态
    在这里插入图片描述
  • 结束态 STOP 的定义:
const False = 0
P = (when (False) doanything -> P).

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值