变量
CPN变量和引用变量描述 CPN ML


术语解说 Term Definitions

变量 变量是一个标识符,在模型的执行中,它的值可以改变. 
绑定 绑定是值与变量的联合.绑定拥有作用域和内容.
域是指在一个模型中特定的绑定可以被引用的区域.
生存期 生存期是特定的绑定作用的时间域.

CPN 变量

CPN变量是用在CPN网表述中的变量.它们有以下特征:

如果一个变量来自一个少于100个元素的颜色集,仿真器有能力一直绑定一个值给它.

声明语法 Declaration Syntax

var id1, id2, ..., idn : cs_name;

其中:

声明的例子 Declaration Examples

var i,j,k : INT;

var intList : IntList;

引用变量 Reference Variables

引用变量类似于C中的指针.引用变量只在代码段中使用.引用变量的作用范围是整个网.

引用变量不允许用于影响变迁的使能.为了说明不这样作所带来的后果,看下面的例子:

一个引用变量refvar用于两个不同的变迁A,B的弧表述之上.两个都被使能,变迁A触发.变迁A改变了refvar的值,使得变迁B实际上已不在被使能.但是,仿真器无法知道这一点,因为使能的变迁不会在它们触发之前再作检查(每次在触发前检查变迁将降低系统的可用性).于是B的触发,将成为不可预知的系统错误.

声明语法 Declaration Syntax

globref id = exp;

声明例子 Declaration Examples

globref i = 10;

globref cur_date = (Mon, 5);

操作 Operations

!r 引用变量r的容量
r:=v 赋值v给引用变量r
ref v 构造引用变量
inc r 增加整数引用变量r的容量
dec r 减小整数引用变量r的容量