Express 参考手册 您所在的位置:网站首页 express关键字手册 Express 参考手册

Express 参考手册

2023-07-13 09:33| 来源: 网络整理| 查看: 265

1、EXPRESS语言参考手册目 录第1章 概述错误! 未找到索引项。1.1 基本概念1.2 语法格式1.3 特殊字符注解第2章 基本语言元素2.1 字符集2.1.1 数字(digits)2.1.2 字母(letter)2.1.3 下划线2.1.4 特殊字符2.1.5 空字符2.2 注解(Remark)2.2.1 嵌入式注解2.2.2 行尾注解2.3 符号2.4 保留字2.4.1 关键字2.4.2 作为运算符的保留字2.4.3 标准常数2.4.4 标准函数2.4.5 标准过程2.5 标识符2.6 常数2.6.1 二进制常数2.6.2 整数2.6.3 实数常数2.6.4 字符串常数2.6.5 逻辑常

2、数第3章、数据类型3.1简单类型3.1.1 NUNBER(数值类型)3.1.2 INTEGER(整数类型)3.1.3 REAL(实数类型)3.1.4 LOGICAL(逻辑类型)3.1.5 BOOLEAN(布尔类型)3.1.6 BINARY(二进制类型)3.1.7 STRING(字符串类型)3.2聚集数据类型3.2.1ARRAY(数组类型)3.2.2BAG(包类型)3.2.3 LIST(表类型)3.2.4SET(集合类型)3.3 实体数据类型(Entity Type)3.4 自定义数据类型(Defined Type)3.5 枚举类型3.6 选择数据类型(Select)第4章、声明语句与块4.1

3、标识符的作用域4.2 类型声明(Type Declarations)4.3 实体(Entity)4.3.1 属性(Attributes)4.3.2 局部规则(Local Rules)4.3.3 超类与子类4.3.4 隐含声明(Implicit Declarations)4.4 模式(Schema)4.5 常量(constant)4.6 算法(Algorithms)4.6.1 参数(Parameters)4.6.2 局部变量(Local Variables)4.6.3 函数4.6.4 过程4.7 规则(Rule)第5章、接口规范5.1 USE接口规范5.2 REFERENCE接口规范5.3 US

4、E与REFERNCE的相互制约5.4 隐式引用5.4.1 常量引用(CONSTANT REFERENCE)5.4.2 实体引用(ENTITY REFERENCE)5.4.3 函数引用(FUNCTION REFERENCES)5.4.4 过程引用(PROCEDURE REFERENCES)5.4.5 类型引用(TYPE REFERENCES)5.5 子类的修剪(pruning)第6章、表达式6.1 算术运算符6.1.1 实数取舍(REAL NUMBER ROUNDING)6.2 关系运算符6.2.1 值比较运算符6.2.2 区间表达式6.2.3实例比较运算符6.2.4 成员运算符6.2.5 LI

5、KE运算符6.3 二进制运算符6.3.1 二进制下标运算6.3.2 二进制数子串下标6.3.3二进制数连接运算符6.4 逻辑运算符6.4.1 NOT运算符6.4.2 AND运算符6.4.3 OR 运算符6.4.4 XOR运算符6.5 字符串运算符6.5.1 串下标6.5.2 子串下标6.5.3 字符串连接运算符6.6 聚集运算符6.6.1 聚集下标6.6.2 相交运算符6.6.3 并运算符6.6.4差运算符6.6.5 子集运算符6.6.6 超集运算符6.7 引用6.7.1简单引用6.7.2前缀式引用6.8实体运算符6.8.1 属性的引用6.8.2 组引用(group reference)6.9

6、 函数调用6.10 聚集的初始化6.11 实体生成器6.11.1复杂实体生成器6.12 类型兼容性第7章、可执行语句7.1 空语句7.2 ALIAS语句7.3 赋值语句7.4 CASE语句7.5 复合语句7.6 ESCAPE语句7.7 IF.THEN.ELSE语句7.8 过程调用语句7.9 REPEAT(循环)语句7.9.1 增量控制7.9.2 WHILE条件7.9.3 UNTIL条件7.10 RETURN语句7.11 SKIP语句第8章、标准常量8.1 常数e8.2 不确定值8.3 逻辑假-FALSE8.4 圆周率-PI8.5 自身词-SELF8.6 逻辑真-TRUE8.7 UNKNOW第9

7、章、标准函数第10章、标准过程第1章 概述 EXPRESS是一种规范化的信息模型语言。它提供了对论域中对象的规范(或定义)的详细描述,同时地提供了与这些对象有关的信息和约束的描述。EXPRESS主要用于信息建模。关于其标准可参见ISO TR9007、ISO 10303。 EXPRESS并不是一种程序设计语言。它由允许用明确和简要说明数据限制定义的明确对象语言元素组成。EXPRESS语言不包含输入/输出、信息处理以及管理之外的语言元素。1.1 基本概念在EXPRESS中,定义了以下概念: 属性(Attribute):用于描述实体的特性、品质、特征等。 概念模式(Conceptual Schema

8、):没有具体实现的一种模式。 常量(Constant):不随时间变化或环境变化而变化的值。 数据(Data):表示信息的符号。 实体(Entity):表示具有共同特性的概念或物理对象的一类集合。 函数(Function):接收输入参数并产生指定类型输出结果值的算法。输入参数值不能被修改。 信息(Information):关于事实、过程或思想的知识。 信息库(Information base):参见ISO TR 9007。 实例(Instance):一种类型的一个特定值。 模型(Model):论域的一种规范化描述。 对象(Object):存在于现实世界的物质或概念。 全体(Population)

9、:一个信息库的内容。 初等项(Primary):用一个名字或常数表示的值。 过程(Procedure):处理输入参数并产生一个终结状态的算法。输入参数值可以被修改。 命题(Proposition):对一个事例或事例集为有效的特殊状态的断言或否定。 规则(Rule):对于一个实体实例或实例与实例之间的一个或多个约束的详细描述。 模式(Schema):构造部分或全部模型的数据项的集合。 稀疏数组(Sparse array):一个包含未知值的EXPRESS数组。 语言符号(Token):不能再分解词意的语言词汇元素。 类型(Type):有效值范围的表示。1.2 语法格式 下面介绍EXPRESS语法中

10、用到的语法符号。 EXPRESS的语法在语法框中表示。在语法框中有若干条规则,每条规则的左侧有一个标号,作为其它语法对它进行引用的标识。 用于定义EXPRESS语法的元语言(meta language)如下所述。标识符(identifier)一词通常表示一个非终结符号,它与另一个产生式有联系。常数文字(literal)通常表示一个终结符号,它是字符序列并且不能再展开。在这种情况下,字符表示任何定义在ISO 6937中的可打印字符,标识符由字母、数字和连接符组成。 语法= 产生式. 产生式= 标识符 表达式 . . 表达式= 项 | 项. 项= 因子同子. 因子= 标识符 | 文字 | 组 |

11、选项 | 重复. 文字= 字符字符 . 组= ( 表达式 ). 选项= 表达式 . 重复= 表达式 . 常数文字是终结符号,它用单引号括起来,并且区分大小写。当单引号出现在常数文字中时必须连写两次。括在括号中的一组表达式被当作一个单元处理。用 括起来的表达式表示该表达式是可选的。用括起来的表达式表示该表达式可重复多次。例:串类型的语法如下:语法:271 string_type = STRING ( width ) FIXED .294 width = simple_expression. . 串类型的语法定义中包含串的定义、串长度表达式和字符串长度是否可变,中括号 括起来的一部分是可选的。小括

12、号( )指示必出现的字符。 按照上述规则,下列的任何一个定义都是合法的: a) string b) string ( 22 ) c) string ( 19 ) fixed1.3 特殊字符注解 下面的注解通常用于表示全部字符集,并且有些特殊字符是不能显示的。 a 表示任何可打印的ISO6937字符 n 表示换行符 q 表示撇号()符 s 表示空格符 o 表示任何其它字符 下边给出一个关于Schema的例子: SCHEMA example; ENTITY entity1; a:integer; b:integer; END_ENTITY; ENTITY entity2 a:entity1; b:

13、integer; END_ENTITY; END_SCHEMA;第2章 基本语言元素 本节说明组成EXPRESS 模式的基本元素:字符集、注明、符号、保留字、标识符和常数文字(Literals)。 语法定义摘于EXPRESS Language Syntax A,它定义了语言的语法,并且提供了这里没有的语言产生式,关于语法规范的定义已在第1章中给出了。 基本语言元素由文字流组成,通常它被分割成若干物理行。一个物理行包含0个或任何数目的字符,最后以换行符结束,在EXPRESS中的一行可有任意长度。 下面的例子中,例2和例3在功能上是相等的。 例2: entity point; x,y,z: rea

14、l ; end-entity; 例3: ENTITY point; x, y, z: real; END_ENTITY;2.1 字符集 EXPRESS语言由特定规则的字符串组成。除去空格的这些字符组合成语言符号。EXPRESS的语言符号包括关键字、标识符、符号 或文字,用于写EXPRESS的基本字符包括数字、字符、下划线、空格及一些特殊字符:2.1.1 数字(digits)语法:121 | digits = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 . EXPRESS使用阿拉伯数字0-9。2.1.2 字母(letter)语法:124 | letter = a

15、| b | c | d | e | f | g | h | I | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z . EXPRESS可用大写、小写或字母表的混合字母,仅在被引号引起的字母大小写是有效的。2.1.3 下划线 下划线字符()在形成标识符和关键字被使用。下划线不能用于第一个字符。2.1.4 特殊字符语法:137 | special = not_paren_star_special | * | ( | ) .130 | not_paren_star_special = ! | | # | $ | %

16、| | & | _ | - | + | = | | | | | | : | ; | “ | | , | . | ? | / | | | . 特殊字符主要用于语言部分,它们可用于注释和括起来的串中。2.1.5 空字符 空字符用于分隔语言符号,并且常常用于提高写语言的结构和可读性,例如分隔或加空行。2.1.5.1 空格 在两个语言符号之间可用一个或多个空格。在语言语法中,注释s习惯用于表示一个空格字符。2.1.5.2 换行 换行标明一个源行的物理结束,换行通常处理为一个空格,但是当终结一个注释或者终结一个文字串时,它是一个记号。在语言语法中,换行被注释n表示。2.1.5.3 其它字符 没有在2.1

17、.1到2.1.5.2中定义的字符,将作为空格处理,除非它们出现在串文字中。在EXPRESS语法中,注释o用于表示其它字符。2.2 注解(Remark) 注解用于文档,它在语言元素中无效。注解有两种:嵌入式注解和行尾注解。嵌入式注解可放于任何两个语言元素之间,行尾注解出现在一个物理行的未尾并且等价于一个行结束符。2.2.1 嵌入式注解语法:180 | embedded_remark = (* not_lparen_star | lparen_not_star | star_not_rparen | embedded_remark *) .128 | not_lparen_star = not_p

18、aren_star | ) .129 | not_paren_star = letter | digit | not_paren_star_special .130 | not_paren_star_special = ! | | # | $ | % | | & | _ | - | + | = | | | | | | : | ; | “ | | , | . | ? | / | | | .126 | lparen_not_star = ( not_star .132 | not_star = not_paren_star | ( | ) .138 | star_not_rparen = * no

19、t_rparen .131 | not_rparen = not_paren_star | * | ( . 字符对(*表示嵌入式注解的开始,字符对*)表示嵌入式注解的结束。嵌入式注解可出现在任意两个语言元素之间。 任何字符均可出现在嵌入注解的开始与结束之间,包括换行字符。所以,嵌入式注解可以占据多个物理行。 嵌入式注解可嵌套。当嵌套注解时必顺注意符号对(*与*)成对匹配。例:下面是嵌入式注解嵌套的例子 (* The (* symbol starts a remark, and the *) symbol ends it *)2.2.2 行尾注解语法:279 | tail_remark = -

20、a | s n . 行尾注解在一个物理行的未尾。两个连字符(-)表示行尾注解开始,用换行符结束它。2.3 符号 运算符号字符或是EXPRESS中有特殊含义的字符组。符号在EXPRESS中用作分隔符或操作符,分隔符用于分隔邻接的词汇元素。操作符与运算符有联系,它表示在操作数上执行的操作,见第6章对运算符的详细解释。EXPRESS符号见表1。表1EXPRESS 符号.,;:*+-=/|()*=*:=|:=:%,(*)-2.4 保留字 EXPRESS保留字包括关键字和标准常数、函数或过程的名字,保留字将不被用于标识符。EXPRESS保留字描述如下,保留字可用大写、小写字母、下划线字符及“?”组合而成

21、。2.4.1 关键字 EXPRESS关键字已列于表中,关键字通常用于增加语义以便于语言更容易阅读和理解。2.4.2 作为运算符的保留字 运算符保留字定义已列于表中。2.4.3 标准常数 标准常数的名字已列于表中。见第8章对这些标准常数的详细说明。2.4.4 标准函数 标准函数的名字已列于表中,见第8章对这些函数的说细说明。2.4.5 标准过程标准过程的名字已列于表6中。见第15节对这些过程的说细说明。表2EXPRESS函数保留字ABSTRACTAGGREGATEALIASARRAYASBAGBEGINBINARYBOOLEANBYCASECONSTANTCONTEXTDERIVEELSEEND

22、END_ALIASEND_CASEEND_CONSTANTEND_CONTEXTEND_ENTITYEND_FUNCTIONEND_IFEND_LOCALEND_MODELEND_PROCEDUREEND_REPEATEND_RULEEND_SCHEMAEND_TYPEENTITYENUMERATIONESCAPEFIXEDFORFROMFUNCTIONGENERICIFINTEGERINVERSELISTLOCALLOGICALMODELNUMBEROFONEOFOPTIONALOTHERWISEPROCEDUREQUERYREALREFERENCEREPEATRETURNRULESCHEM

23、ASELECTSETSKIPSTRINGSUBTYPESUPERTYPETHENTOTYPEUNIQUEUNTILUSEVARWHEREWHILE表3EXPRESS保留字(运算符)AND ANDORDIVINLIKEMODNOTORXOR表4EXPRESS保留字(标准常数)?SELFCONST_EPIFALSETRUEUNKNOWN表5EXPRESS保留字(函数名)ABSACOSASINATANBLENGTHCOSEXITSEXPFORMATHIBOUNDHIINDEXLENGTHLOBOUNDLOGLOG10LOG2LOINDEXNVLODDROLESOFSINSIZEOFSQRTTANTY

24、PEOFUSEDINVALUE表6 - EXPRESS保留字(标准过程名) INSERT REMOVE2.5 标识符 标识符是在模式中给出元素的名字,包括模式本身的名字。标识符不能与EXPRESS的保留字相同。 标识符的第一个字符是一个字母。若还有其它字符的话,剩余的字符可为字母、数字或下划线的任何组合。用于组成标识符的字母对大小写是不敏感。2.6 常数语法:221 | literal = binary_literal | integer_literal | logical | logical_literal | real_literal | string_literal . 常数是由一组字符

25、组成的数值。常数的类型取决于字符是如何组成语法元素的。常数类型可以是二进制数、整数、实数、字符串和逻辑型的。2.6.1 二进制常数语法:118 | binary_literal = % bit bit .119 | bit = 0 | 1 . 二进制常数表示一个二进制类型值,并且它由符号开始,后边跟若干个位(或)。例:一个有效的二进制数可表示为:%01010011002.6.2 整数语法:123 | integer_literal = digits .22 | digits = digit digit . 一个整数常数表示一个整数类型值,并且它全部由数字组成。例7:有效整数常数 4016 38

26、2.6.3 实数常数 一个实数常数表示一个实数类型值,并且它由一个尾数和一个可选的指数部分组成。尾数包含一个小数点。语法:133 | real_literal = digits . digits E sign digits .122 | digits = digit digit .135 | sign = + | - .例8:有效的实数文字 1.E6 E 可用大写或小写 3.5e-5 359.62例9:无效的实数常数 .001 在小数点前最少有一位数字 1e10 必有小数点在文字中2.6.4 字符串常数 字符串常数表示一个字符串类型值,是一个由单引号括起来的字符序列。如果单引号是字符串的一部分

27、,需写两个连续的单引号。字符串常数不能包含换行符,所以一个字符串常数不能跨越一个物理行。语法:139 | string_literal = q character | s | o q .120 | character = digit | letter | special .例10:有效的字符串常数 Baby needs a new pair of shoes! 读为:Baby needs a new pair of shoes! Eds Computer store读为 Eds Computer store例11:非法的字符串常数例子Eds Computer store字符串常数中的单引号个数

28、应总为偶数个。 Eds Computer store 超越了一个物理行2.6.5 逻辑常数 逻辑常数表示一个逻辑或布尔类型值,并且它是标准常数TRUE、FALSE或UNKNOWN三者之一。UNKNOWN与布尔数据类型是兼容的。语法:125 | logical_liberal = FALSE | TRUE | UNKNOWN .第3章、数据类型 数据类型是EXPRESS语言的最基础部分。数据类型用于表示实例值的取值范围。每个值(特性、逻辑变量或形式参数)都与其取值范围有关系。例如:整数取值范围即全部整数的集合。 数据类型可分成以下几类:简单类型(Simple types)、聚集类型(aggreg

29、ation types)、定义类型(defined types)、实体类型(entity types)、枚举类型(enumeration types)、普通类型(generic types)、选择类型(select types)等。 数据类型应用时要受到一定的限制,不同的数据类型有不同的应用场合。表中列出了各种类型数据在使用中的限制。表7类型的使用类型abc简单类型聚集类型定义类型普通类型聚集类型枚举类型选择类型说明: a) 基本类型:表示一个属性或局部量; b) 参量类型:表示一个规范化参量或函数结果; c) 潜在类型(underlying types):用来表示一个定义类型。3.1简单类型

30、 简单类型表示EXPRESS中最小数据单位。即它们不能再分割为EXPRESS能够识别的更小元素。追踪模式(schema)的一条路径,最终将以这些简单类型之一结束。简单类型包括:数值型(NUMBER)、实型(REAL)、整型(INTEGER)、字符串型(STRING)、布尔型(BOOLEAN)、逻辑型(LOGICAL)和二进制型(BINARY)等。3.1.1 NUNBER(数值类型)语法:228number_type = NUMBER . 当一个数的具体表示细节不重要时使用NUMBER类,NUMBER类型是REAL和INTEGER数据类型的超类。例12: size:NUMBER; 由于我们可能不

31、知道size具体表示的对象是什么,因此没法准确地表示它。例如,在一场足球比赛中观众的人数则size是一个整数,而如果用size来表示投球量,则size是一个实数。3.1.2 INTEGER(整数类型)语法:201 | integer_type= INTEGER . INTEGER数据类型是NUMBER数据类型的子类,它用于表示一个整数的值,其量值没有限制。例13: 本例用一个整数数据类型表示属性名为nodes的值的区域 ENTITY foo; nodes: INTEGER; . END_ENTITY;3.1.3 REAL(实数类型)语法:244 | real_type = REAL (Prec

32、ision_spec ) .234 | Precision_spec = simple_expression . REAL数据类型是NUMBER数据类型的子类,它用于表示有理数,无理数以及采用科学记数法表示的实数。有理数和无理数是无限可分的,并且是精确的。科学记数法表示的实数只能表示指定精度的值。precision_spec表示有效数字位数,是一个大0的整数,不指定Precision_spec时,实数可以为任意精度。 一个实数用一个尾数和一个可选的指数表示,数的有效位数是去掉前边所有的零后尾数的位数。3.1.4 LOGICAL(逻辑类型)语法:225 | Logical-type = LOGI

33、CAL . LOGICAL数据类型表示TRUE(真)、FALSE(假)、或UNKNOWN(未知)的值。 逻辑数据类型有下列条件:FALSE UNKNOWN TRUE。除了有UNKNOW值的,逻辑数据类型和布尔数据类型是兼容的。3.1.5 BOOLEAN(布尔类型)语法:158 | boolean-type=BOOLEAN 布尔类型表示TRUE(真)或FALSE(假)值。布尔类型可以被看作为LOGICAL类型的子类。 BOOLEAN数据类型有下列条件关系:FALSETRUE。例14 该例把BOOLEAN数据类型与名为planar的属性联系起来。planar实例的值只能为TRUE或FALSE。 E

34、NTITY surface; planar: BOOLEAN ; . END_ENTITY3.1.6 BINARY(二进制类型)语法157 | binary_type=BINARY ( width ) FIXED .294 | width=simple_expression. BINARY数据类型表示具有或值的位序列。二进制可定义为固定长度的或者是可变长度的。如果二进制没被详细说明为固定长度(在说明中用FIXED保留字),则它被说明为可变长度。可变特性允许二进制随机地增长或收缩它的长度。二进制的任意部分和单独的一个位都可使用下标寻址,这一技术陈述于第6.3节。规则与限制:a)width(可选的

35、)给出了能被容纳的最大位数。该表达式将产生一个正的整数结果。b)当没有详细说明时,二进制值的位的数不受限制。例15:下列用于保持字符字体信息。ENTITY character;representatiou:ARRAY1:20 OF BINARY(8) FIXED;END_ENTITY;3.1.7 STRING(字符串类型)语法:271 | string_type = STRING ( width ) FIXED .294 | width=simple_expression.STRING数据类型表示0个或多个字符序列。在串中字母的大小写是有区别的。width给出了可容纳的最大字符数,width是

36、一个整数。 串可定义为固定长度或是可变长度。若串没被说明为固定长度(在说明时用FIXED保留字),则它被说明为可变长度。可变特性表示字符串可随机增长或收缩其长度。在字符串中,可对其中的子串或单个字符进行下标寻址,这一技术在第6.5节中介绍。例16string1 : STRING;string1定义成一个没有最大长度的可变串。例17:string2:STRING(10);string1被定义为一个最长为10个字符的串,但在实际上它在0到10个字符是可变的。例18:string3:STRING(10) FIXED;string3被定义成一个有精确10个字符长度的串,它的实际长度不能变化。3.2聚集

37、数据类型聚集数据类型用于表示顺序或非顺序的某些基本类型元素的集合,集合中元素的个数是否可变,这取决于聚集的类型。聚集包括以下几种类型:ARRAY(数组)、BAG(包)、LIST(表)和SET(集合)。每种聚集类型有不同的含义:(1) ARRAY数据类型有固定元素个数,元素的索引是很重要的。例19: 数学中的矩阵可被定义为多维数组。(2)BAG数据类型的元素是无序的,元素可重复出现,包中元素的个数是否可变可以在类型声明时指定。例20: 加固器(如螺母、螺栓、螺丝钉、铆钉等)在组装问题上可被看作一个包,这个包中可能含有许多一样的螺栓,可以从中选取任一个。(3)LIST数据类型的元素是有序的,元素是

38、否可重复出现以及元素的个数是否可变可以在类型声明时指定。例21: 对于一个生产过程所要完成的操作可表示为一个LIST,它的一个特点是它能随机收缩或扩张,如一个操作可以被加入到该LIST中也可以从该LIST中删除一个操作。(4)SET数据类型的元素是无序的,但元素不允许出现重复,SET中元素的个数是否可变可以在类型声明时指定。例22: 世界上人口是一个SET集合。聚集类型总是一维的,如果要表示多维的对象,可以将聚集元素说明成聚集类型,这样多层嵌套可表示出多维聚集。例23: LIST1:3OF ARRAY5:10OF INTEGER这是一个二维聚集。3.2.1数组类型(ARRAY)语法:149 |

39、 array_type = ARRAY bound_spec OF OPTIONAL UNIQUE base_type .161 | bound_spec = bound_1 : bound_2 .159 | bound_1 = simple_expression .160 | bound_2 = simple_expression .156 | base_type = aggregation_types | simple_types | named_types .144 | aggregation_types = array_type | bag_type | list_type | set

40、_type .268 | simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_string_type .226 | named_types = entity_ref | type_ref .ARRAY数据类型表示有序的、元素个数的固定的聚集。在一个数组中无素的数量,通过它的下限和上限确定。上、下限的值可为负数、0或正整数表达式,上限必须大于或等于下限。假定m是下限,n是上限,在数组中有n-m+1个元素。每个数组元素可通过下标寻址。说明

41、如下:a)bound_spec包括两个表达式。b)两个表达式bound_1和bound_2的结果都是整数。.c)bound_1表达式给出数组的下限。d)bound_2表达式给出数组的上限,该值必须固定,所以不能用?。e)bound_1必须小于或等于bound_2。f)如果提供了OPTIONAL关键字的话,它表示并非全部元素均需要值,即元素可以为null,产生一个稀疏数组。g)如果提供UNIQUE关键字的话,它表示在一个数组实例中,每个元素都是不相同的。例24: 本例说明如何声明一个多维数组。sectors:ARRAY1:10OF 第一维 ARRAY11:14OF 第二维 a;第一组数组有10个

42、元 ,元素类型为ARRAY11:14OF a;第二组数组中有4 个元素,元素类型为a,因此在在属性setors中一共有40类型为a的元素。3.2.2包类型(BAG)语法:155 | bag_type = BAG bound_spec OF base_type.161 | bound_spec = bound_1 : bound_2 .159 | bound_1 = simple_expression.160 | bound_2 = simple_expression.156 | base_type = aggregation_types | simple_types | named_types

43、.144 | aggregation_types = array_type | bag_type | list_type | set_type.268 | simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type.226 | named_types=entity_tef |type_ref.BAG数据类型表示无序的同类元素的集合,元素的个数可以有选择进行说明,若没有说明元素的个数,则包中可有任何数量的元素,包中的元素可以重复。说明

44、如下:a).bound_spec包含两个表达式b).bound_1是大于等于0的整数表达式,它给出包中最小的元素个数,即下限。c).bound_2是大于等于bound_1的整数表达式;它给出了在包中可存放的最大元素个数,即上限。当用?替代bound_2时,包中元素的个数没有上界的限制。d)若忽略bound_spec,默认为界限为0:?。例25: 本例定义属性类型是一个以点(实体数据类型)为元素的包。a_bag_of_points:BAG OF point;属性名a_bag_of_points是一个包,这个包中可有0或多个点,若要求包中需要至少一个元素。则要把下限定义为1,如下:a_bag_of

45、_poinbs:BAG1:?OF point;现在属性 a_bag_of_points最少包含一个元素。3.2.3 表类型(LIST)语法:220 | list_type = LIST bound_spec OF UNIQUE base_type.161 | bound_spec = bound_1 : bound_2 .159 | bound_1 = simple_expression.160 | bound_2 = simple_expression.156 | base_type = aggregation_types | simple_types | named_types.144 |

46、 aggregation_types = array_type | bag_type | list_type | set_type.268 | simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type.226 | named_types=entity_tef | type_ref.LIST数据类型表示一个有序的同类元素的聚集。在表中元素的个数是否可变可在说明时定义,若元素个数没被说明,表中能存放任意数目的元素。表中的元素可以重复。

47、说明如下:a).bound_spec包含两个表达式。b).bound_1是一个大于等于0的整数表达式,它给出了表中最少的元素个数,即下限c).bound_2是大于等于bound_1的整数表达式.它给出了表中可放的的最大元素个数,即上限。当用?替代时,表中元素的个数没有上界的限制。d)如果忽略bound_spec,默认的界限为0:?。e)如果使用UNIQUE关键字,它说明在同一个表中的元素不可重复出现。例26: 本例定义了一个数组表,表由0到10个数组成,表中每个数组是互不相同的。 complex_lint:LIST0:10OF UNIQUE ARRAY1:10OF INTEGER;表compl

48、ex_list中整数的个数根据LIST中数组的个数不同而不同,可能的个数有:0、10、20、.、90、100个。当用UNIQUE关键字指定后,表中的每个数组是不同的。3.2.4集合类型(SET)语法:220 | set_type = SET bound_spec OF base_type.161 | bound_spec = bound_1 : bound_2 .159 | bound_1 = simple_expression.160 | bound_2 = simple_expression.156 | base_type = aggregation_types | simple_types | named_types.144 | aggregation_types = array_type | bag_type | list_type | set_type.268



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有