| 变量 | CPN Tools help |
| CPN变量和引用变量描述 | CPN ML |
| 变量 | 变量是一个标识符,在模型的执行中,它的值可以改变. |
| 绑定 | 绑定是值与变量的联合.绑定拥有作用域和内容. |
| 域 | 域是指在一个模型中特定的绑定可以被引用的区域. |
| 生存期 | 生存期是特定的绑定作用的时间域. |
CPN变量是用在CPN网表述中的变量.它们有以下特征:
如果一个变量来自一个少于100个元素的颜色集,仿真器有能力一直绑定一个值给它.
var id1, id2, ..., idn : cs_name;
其中:
idi 必须是一个标识符 identifier.
: 是标识符之间的分隔符.
cs_name 是一个先前已经声明的颜色集的名字.
var i,j,k : INT;
var intList : IntList;
引用变量类似于C中的指针.引用变量只在代码段中使用.引用变量的作用范围是整个网.
引用变量不允许用于影响变迁的使能.为了说明不这样作所带来的后果,看下面的例子:
一个引用变量refvar用于两个不同的变迁A,B的弧表述之上.两个都被使能,变迁A触发.变迁A改变了refvar的值,使得变迁B实际上已不在被使能.但是,仿真器无法知道这一点,因为使能的变迁不会在它们触发之前再作检查(每次在触发前检查变迁将降低系统的可用性).于是B的触发,将成为不可预知的系统错误.
globref id = exp;
globref i = 10;
globref cur_date = (Mon, 5);
!r |
引用变量r的容量 |
r:=v |
赋值v给引用变量r |
ref v |
构造引用变量 |
inc r |
增加整数引用变量r的容量 |
dec r |
减小整数引用变量r的容量 |