PROMELA如何执行此操作?

时间:2014-01-14 11:52:28

标签: c spin promela

byte x;

if
::(x == 0) -> ...
::(x > 0) -> ...
fi

是否存在全局变量的默认值?或者模型检查器检查所有可能的交错,也就是说,在这种情况下,使用(x==0)(x>0)的所有可能状态。

2 个答案:

答案 0 :(得分:1)

根据Promela doc默认情况下,变量初始化为零。

检查所有可能的变量初始值会以指数方式增加状态空间。

答案 1 :(得分:0)

这样做;

if
:: x = 0
:: x = 1
:: x = 2
// if you need more, add more
fi

或者如果你真的想要所有值,0到255

byte x = 0;

do
:: x <= 254 -> x++
:: break
od

将在每次迭代时中断或递增,从而生成所有可能的值。或者,正如您(和我)现在知道的那样,使用:

select (i : 0 .. 255)