毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

代数规约语言解析工具的设计与实现(3)

时间:2020-12-18 22:06来源:毕业论文
2.2.3 Sort的可观察性 如果一个软件实体的状态和值可以被直接测试,那么我们就称它是可观察的。不然,它的状态和值不得不用其他方法进行检查,比如通

2.2.3 Sort的可观察性

如果一个软件实体的状态和值可以被直接测试,那么我们就称它是可观察的。不然,它的状态和值不得不用其他方法进行检查,比如通过观察者。可观察性的语法如下:

<Observability> ::=

   is observable by <Op Id>

   | is unobservable

一个可观察实体的操作子必须是一个返回布尔值的二值函数,这个函数必须被定义在sort的signature里面。

 

2.3 signature的语法和语义

Signature确定软件实体的操作,有三种操作:constants,variables,operations。

<Signature> ::= {[<Constant>]|[<Variable>]|[<Operator>]}*

2.3.1 Constant

    一个constant的关键词是“Const”。

<Constant> ::= Const : <ConstList>;

<ConstList> ::= <Const ID> [, <ConstList>]

<Const ID> ::= <Identifer>

每一个constant identifier定义一个sort的特定constant。

2.3.2 Variable 

一个variable是一个可以改变它state的实体元素,因此被命名为“variable”。它的关键字是“Var”。Variable的sort定义了variable的状态空间,即为,sort。

<Variable> ::= Var <VarList>;

<VarList> ::= <VariableType> [; <VarList>]

<VariableType> ::= <Var IDs> : <Sort Name>

<Var IDs> ::= <Var ID> [, <Var IDs>]

<Var ID> ::= <Identifier> [ <index> ]

如果一个vairable有一个index,那么实际上它通过index values定义了一系列的variables。这个Index可以是一个一定区域内的自然数的连续集,这个集合可以既是一个特定自然数或者意着不确定的“*”,也可以是一个constants的枚举集合以标识符的形式被描述,也可以是上述两者的笛卡尔乘积。

<Index> ::= "[" <Index-set> "]"源]自=751-·论~文"网·www.751com.cn/

<Index set> ::= <Single_Index>[,<Index set>]

<Single_Index> ::=

    | <lower bound> "" <upper bound>

    | <Enumerate set>

<lower bound> ::= <nature number>

<upper bound> ::= <nature number> | "*"

<Enumerate set> ::= <enumerate ID> [, <Enumerate set> ]

<Enumerate ID> ::= <identifier>

2.3.3 Operation

    一个操作子定义一个由实体产生的操作,它在被使用时改变实体的状态,并且可能也会输出产出。一个操作子的输入被以domain的形式给出,而由调用产出的输出则是以co-domain的形式被给出。一个操作子经常访问实体的状态,而且可能改变它。因此,它被呈现给所有的操作子,后者的主main sort被称为上下文 sort。

代数规约语言解析工具的设计与实现(3):http://www.751com.cn/jisuanji/lunwen_66579.html
------分隔线----------------------------
推荐内容