1、中华人民共和国国家标准工业自动化系统与集成产品数据表达和交换第部分描述方法语言参考手册发布实施国家技术监督局发布中华人民共和国国家标准工业自动化系统与集成产品数据表达和交换第部分描述方法语言参考手册国家技术监督局批准实施本标准等效采用工业自动化系统与集成产品数据表达和交换第部分描述方法语言参考手册主题内容与适用范围主题内容本标准是在工业自动化系统与集成产品数据表达和交换总标题下系列标准之一规定了产品信息的表示以及所需的机制与定义以便在与产品设计制造和其他应用相关的不同计算机系统或环境间进行数据交换是一个系列标准它由综述和基本原理产品描述方法集成通用资源集成应用资源应用协议实现方法以及一致性测试
2、和框架七个类别组成语言参考手册是产品描述方法类中的一个标准规定了一种可用于描述产品数据特性的语言这种语言称作语言它是一种数据规范语言由用于一种无歧义对象定义的语言元素和对定义对象限制的规范所组成适用范围本标准适用于对产品数据表达和交换的描述方法的规定即使用本语言对系列标准中的模式实体约束条件及属性进行描述它的范围包括数据类型以及对数据类型引例的限制它不能用于程序编制它不能用于规定数据库格式文件格式和转换格式的定义它也不能用于过程控制信息处理和异常处理引用标准信息技术通用多八位编码字符集第一部分体系结构与基本多文种平面工业自动化系统与集成产品数据表达和交换概述和基本原理术语复合实体数据类型在特定
3、的子类型超类型图中所许可的实体数据类型组合复合实体引例复合实体数据类型的引例常数来自一个不能被修改的特定域的命名值数据类型引例的范围实体具有共同性质的一类对象实体引例对象的表示这种表示具有与特定实体数据类型的公共性质相连的值实体引例分为两类简单实体引例和复合实体引例引例对象的表示对象在现实世界中存在的概念或物理事物局部复合实体数据类型在可构成部分复合实体数据类型的子类型超类型图内的一组实体数据类型局部复合实体数据引例局部复合实体数据类型的引例它本身无意义它与其它局部复合实体引例一起构成复合实体引例总体引例的集合性质用属性或限制表示的现实世界特征简单实体引例简单实体数据类型的引例子类型超类型图已
4、说明的实体数据类型集合在子类型超类型图中被说明的实体数据类型通过子类型语句相关一个子类型超类型图定义一个或多个复合实体数据类型记号语言的不可分解的词法元素一致性要求用语言书写的形式规范词法语言按语言书写的形式规范应与下述规定的所给定的检查层次相一致支持某个给定层次的用语言写的形式规范也应当支持低于该层次的所有层次检查的层次第一层引用检查该层检查形式规范的组成应可确保形式规范能用附录中已扩展的语言的基本语法规则模式说明生成它提供了一个全面的语法检查或缺省为一个全面的引用检查第二层类型检查该层检查形式规范的组成应可标识出那些在表达式中类型兼容见第节和赋值兼容见第条无效的地方第三层值检查该层检查形式
5、规范的组成应可标识出值可被求解的地方即从第章到第章中所规定的应大于这种语句不一致的那些地方第四层全面检查该层中检查形式规范的组成应可标识出那些满足一致性规范在本标准规定的语句未被填满的地方例本标准规定当一个函数被调用时在每一个可取的路径上应规定一个返回语句这种规定就应当得到检查图的形式用图书写的形式规范应与下面规定的给定检查层次相一致支持给定层次的用图写的形式规范也应当支持低于该层次的所有层次检查的层次第一层符号检查该层检查形式规范的组成应可标识出那些与在附录和附录中分别规定的实体层或模式层规范不一致的地方它也包括对形式规范中使用附录附录和附录中规定符号的检查第二层全面检查该层检查形式规范的组
6、成应可标识出那些与在附录中定义的完整实体或完整模式层规范和在第章到第章中所定义的要求不一致的地方语言的实现方法语言的分析检验程序语言语法分析程序的实现方法应能对用语言写的并与附录中为该实现方法所说明的限制相一致如果语言法分析程序可按给定层次包括比该层次低的任何层次要求对用语言写的形式规范实行所有检查则可以认为该分析程序与这个特定的检查层在条中所定义的是一致的语言语法分析程序的实现方法应对标识符长度处理数的范围和实数的最高精度的限制作出规定为一致性测试的目的这些限制应按附录规定的格式编制成文件图形编辑工具编辑工具的实现方法应能生成用表示的形式规范该形式规范应与在附录中为该实现方法所规定的限制相一
7、致如果编辑工具所生成的图能与在使用附录附录中规定的符号所生成的实体层图或模式层图相一致则可以认为编辑工具与符号层如第条所定义的是一致的如果编辑工具所生成的图能与使用在附录附录中规定的符号所生成的完整实体层图或完整模式层图一致且按附录中规定要求实现检查则可以认为编辑工具与全面检查层如第条所定义的是一致的编辑工具的实现方法应对数标识符长度每页模型的对象数和最大页数的限制作出规定为一致性测试的目的这些限制应按附录规定的格式编制成文件基本原理本标准是以下述概念为前题的用语言写的模式描述建立一个域的一组条件为确定数据引例是否在该域内可求解数据引例如果这些数据引例满足所有条件则可以认定这些数据引例是在该域
8、中如果这些引例不能满足任何条件则这些数据引例是违背这些条件的且因此是不在这个域中如果数据引例没有包含可选属性的值而一些条件与那些可选属性有关这时就可能不能确定这些数据引例是否满足所有条件在这种情况下这些数据引例是被看作在域中在语言中的实体数据类型规范描述一个域该域中的单个成员由唯一的相关标识符区分开语言不规定这些标识符的内容和表示语言的许多元素赋值有名字这些名字使其它语言元素能引用这些相关的表示在其它语言元素定义中的名字使用构成了对下划线表示的引用当该语言的语法对该名字使用一个标识符时为理解这种结构应对这种下划线表示进行解释语言不描述实现方法的环境特别是不规定下述事项对名字的引用是如何解决的其
9、它模式是如何知道的限制是在何时或如何检查的不管与模式不一致的引例是否允许在实现方法中存在语言规范语法用来表示语言语法的表示法在本章定义语言中的所有语法在附录中给出为说明各种语句的语法这些语法规则的各部分将在以后各章节中分别阐述各个章节中的叙述不总是完整的因此有时对所缺少的规则部分要参阅附录在本标准中语法部分的每条规则都有一个唯一的号排在每个规则的左侧以便于其它语法规则的交叉引用语法规范语言语法是按沃思语法表示法方案定义的本标准中定义的表示法约定和沃思语法表示法给出如下语法产生式产生式标识符表达式表达式项项项因子因子因子标识符文字组选项重复文字字符字符组表达式选项表达式重复表达式等号表示一个产生
10、式左边的元素定义为右边元素的结合除了出现在文字内的空格外任何出现在产生式元素间的空格都是无意义的一个产生式用一个句号结束标识符的引例用来表示出现在另一个产生式左边的非终结符号标识符引例由字母数字和下划线字符组成语言的关键字由只用大写字符给出的标识符的产生式表示词文字用来表示不能再扩展的终结符号文字是括在撇号中的状态独立的字符序列在这种情况下字符表示由在组平面行中的位所定义的任何一个字符出现在文字中的撇号应当写两次各种括号的语义定义如下花括号表示零次或多次重复方括号表示可选参数圆括号表示由括号括起来的产生式组作为单个产生式使用竖线表示逻辑异或例串类型语法如下语法字符串类型宽度宽度数值表达式完整的
11、语法定义见附录包括对串数值表达式和域的定义按上面给定的语法下面的替换是允许的专用字符说明下面的说明用来表示整个字符集和显示较困难的专用字符表示中的组平面行位中的字符表示一个新行系统相关的见第条引号撇号字符并且包括在符号内空格字符表示在中组平面行位中的字符基本语言元素本章规定构成模式的基本元素字符集注解符号保留字标识符和文字本语法定义引自语言语法见附录该语法的表示方法在第六章定义基本语言元素由一系列正文构成一般为几个物理行每个物理行由新行结束的任意个也可以是零个字符组成见第条下面两个例子是等效的例例字符集用语言书写的模式只使用由下述选择的子集定义的字符组平面行的位这个选择的子集的可打印字符的组合
12、形成语言的记号这些记号包括关键字标识符符号或文字注本章只涉及用于规定模式的字符而不规定在串数据类型内所允许的字符域数字语法数字语言使用阿拉伯数字字符集的第位字母语法字母语言使用英文字母串表中的大写和小写字母字符集第和位只在显示串文字内字母的大小写才有不同的意义注语言可用大写小写或混合字母书写下划线下划线字符集的第位可用在标识符和关键字中但它不能作为第一个字符使用专用字符语法专用字符非括号星号引号字符非括号星号引号字符专用字符主要用来作为标点符和操作符某些专用字符不作为语言的一部分使用它们可以用在注解和显式串文字中这些专用字符是字符集的第和位空白空白一般用来分隔记号且常用于改善结构使得所写语言易
13、读即缩排说明或留出空行空格符在两个记号之间或在一个显式串文字中可以出现一个或多个空格符字符集的第位在语言的语法中表示空格符新行新行在用书写的形式规范中表示一行的物理结束新行在正常情况下作为空格处理只有当它终结一个尾部注解或者异常地终结一个串文字时它才有实际意义在语言的语法中新行用表示新行的表示是实现方法定义的注新行表示可是下述字符之一专用字符字符组合伪字符或信号其它字符在第节和条中没有定义的字符这些字符是字符集的第和位除非是在显式串文字中出现的否则将作为空白处理本语言语法规定用表示其它字符注解注解用于编制文件只有作空白用时才有意义注解有两种形式可以放在两个记号之间的是嵌入注解尾部注解出现在一个
14、物理行结束处且与行的终结符等效嵌入式注解字符对标明一个嵌入式注解的开始而字符对标明它的结束嵌入式注解可出现在任何两个记号之间语法嵌入式注解非左括号星号左括号非星号星号非右括号嵌入式注解非左括号星号非括号星号非括号星号字母数字非括号星号专用非括号星号专用非括号星号引号专用非括号星号引号专用数字左括号非星号非星号非星号非括号星号星号非右括号非右括号非括号星号语言选择子集中的任何字符可出现在星号和包括新字符在内的嵌入式注解之间因此嵌入式注解可以占多个物理行嵌入式注解可以嵌套例下面为嵌套的嵌入式注解的例子注嵌套式注解时要注意确保符号的配对尾部注解语法尾部注解尾部注解必须写在一个物理行末尾一个尾部注解用
15、两个连续的短横连字符开始以一个新行结束例符号符号是在语言中有专门意义的字符或字符组语言中使用的符号作为分隔符或操作符分隔符用来分隔相邻的语法元素否则词法元素的解释成为不可能操作符则完成与操作符有关的运算项的运算第章将对操作符进行全面的阐述表中列出了的符号表符号保留字的保留字是关键字和内部常数函数和过程的名字保留字不能用作标识符关键字的关键字见表表关键字注关键字的表示文字的大写产生式使语法产生式的阅读变得容易关键字和保留为本标准以后使用作为操作符的保留字表中给出了由保留字定义的操作符表操作符保留字内部常数表中给出了内部常数名这些常数的定义见第章表内部常数保留字内部函数表中给出了内部函数的名字这些
16、函数的完整定义见第章表函数名保留字内部过程表中给出了内部过程名这些内部过程的完整定义见第章表过程名保留字标识符语法简单标识符字母字母数字数字标识符是在模式中给说明项包括模式本身定的名字标识符不应与中的保留字相同标识符的第一个字符必须是字母其余的可以是字母数字或下划线的组合语言语法分析程序的实现应按附录规定该实现方法所能读的标识符字符的最大个数文字语法文字二进制文字整数文字逻辑文字实数文字串文字文字是自定义的常数值文字的类型取决于如何组合字符成为记号文字类型可以是二进制型整数型实数型串型或逻辑型二进制文字语法二进制文字位位位二进制文字表示二进制数据类型的值由表示二进制文字的符号和其后跟的一个或多
17、个位或组成语言语法分析程序的实现应按附录规定该实现方法所能读的二进制文字的最大位数例有效的二进制文字整数文字整数文字表示一个整数数据类型的值它由一个或多个数字组成语法整数文字数字数字数字数字数字语言语法分析程序的实现方法应按附录规定该实现所能读的整数文字的最大整数值例有效的整数文字实数文字实数文字表示实数类型的值它由一个数值部分和一个任选的指数部分组成数值部分应包括所有小数点语法实数文字数字数字符号数字数字数字数字数字符号例有效的实数文字可以用大写也可以用小写例无效的实数文字小数点前至少有一个数字小数点应是文字的一部分空格不是实数文字的一部分串文字串文字表示串数据类型的值串文字有两种类型显式串
18、文字和编码串文字显式串文字由引号括起来的字符集中的字符系列组成第节显式串文字内的引号用两个连续引号表示编码串文字为用双引号括起来的在中的四个八位位组编码表示的字符序例串文字不应超越一个物理行边界即在括起来串文字的引号之间不应出现新行语法串文字简单串文字编码串文字简单串文字非引号非引号非引号星号引号专用字母数字非括号星号引号专用数字编码串文字编码字符编码字符编码字符八位位组八位位组八位位组八位位组八位位组六位数字六位数字六位数字数字语言语法分析程序的实现应按附录规定该实现方法所能读的显式串文字最大字符数语言语法分析程序的实现也应按附录规定该实现方法所能读的编码串文字的最大位位组数它应是的倍数例有
19、效的显式串文字读作孩子需要一双新鞋读作伊迪的计算机商店例无效的显式串文字引号应总是成对出现超过了一个物理行例有效的编码串文字读作读作例无效的编码串文字位位组应是个一组之间仅允许有六个字符逻辑文字逻辑文字表示逻辑数据类型或布尔数据类型的值它是内部常数真假和未知之一语法逻辑文字注未知与布尔数据类型不兼容数据类型本章定义该语言所提供的数据类型数据类型定义一个引例域每个属性局部变量或者形参都有一个定义它的域的相关数据类型数据类型可以分为简单数据类型聚合数据类型命名数据类型构造数据和广义数据类型数据类型也可按它们的应用分为基本数据类型参数数据类型和下划线数据类型这两种分类间的关系见第节对这些数据类型所能
20、实施的操作在第章定义简单数据类型简单数据类型定义中的最小数据单元的域也就是说它们不能再细分为所标识的元素简单数据类型分为数值型实数型整数型串型布尔型逻辑型和二进制型数值型数据类型数值型数据类型以本语言的所有数字的值无论是整数实数作为它的域在那些不必采用更专门的数值表示的场合可以使用这种数据类型语法数值型例因为我们可能不知道度量的使用场合因此我们不知道如何正确表示它例如足球比赛参加人数为整数而球场的大小应为实数整数型数据类型语法整数型整数型数据类型以所有整数作为它的域它的范围是在实数型数据类型中划定的一个限定范围例本例用整数型表示名为节点的属性这个属性的域是未加其它限制的所有整数实数型数据类型语
21、法实数型精度说明精度说明数值表达式实数型数据类型以所有有理数无理数和科学计算实数作为它的域它的范围是在数值型数据类型中划定的一个限定范围有理数和无理数有无限个解并且是精确的科学计算的数值只表示对给定精度为已知的值精度说明用有效数字位表示实数文字由数值部分和任选指数部分表示有效位数由把所有的前置零去掉时构成数值部分的数字个数表示已知值的精度是前置数字的个数而这个精度由应用或现有测量技术的限制而定规则和限制精度说明给出所求值的数位的最小个数该表达式的值应为一个正整数解当值的精度说明未给出时则实数的精度不受限制逻辑型数据类型语法逻辑型逻辑型数据类型以文字真假和未知作为它的域下述规则适于逻辑类型的值除
22、未知的值不能赋值到布尔变量外逻辑型与布尔型是兼容的布尔型数据类型语法布尔型布尔型数据类型以文字真或假作为它的域布尔型可以看作为对逻辑型的一种限定下述规则也适于布尔型数据类型例本例用布尔型数据类型表示一个命名为平面的属性与平面的引例相连的值可为或二进制型数据类型语法二进制型宽度宽度数值表达式二进制型以每位为或的值的位系列作为它的域二进制可以定义为定长的也可定义为可变长度的如果二进制型未被说明为定长度的即在定义中未使用保留字则该二进制型为可变长度的定长度二进制型数据类型的域为长度恰好是在类型定义中所规定长度位数的所有位序列的集合可变长度二进制型数据类型的域为长度小于或等于在类型定义中所规定的最大宽
23、度的所有位序列集合如果未规定宽度则该域为对这些序列长度不加限制的所有位序列集合二进制数据类型的各个部分和单个的位可使用按第节规定的下标寻址规则和限制宽度任选项给定所能容纳的最小位数该表达式值应为一个正整数没有规定宽度时二进制值的位数是不受本语言限制的例本例可用来容纳字符的字形信息串型数据类型语法串型宽度宽度数值表达式串型数据类型以字符序列域作为它的域为串型数据类型定义的字符可以是表示的任何字符串型数据类型可以定义为固定长度的或可变长度的如果未规定为定长度的即在定义中未使用保留字则该串为可变长度的定长度串型数据类型为长度正好是在类型定义中所规定长度的所有字符序列的集合可变长度串型数据类型为长度小
24、于或等于在类型定义中所定义的最大宽度的所有字符长度序列的集合如果没有规定宽度则该域为对这些字符长度不加限制的所有字符序列的集合子串和单个的字符可使用按第节所规定的下标寻址在串内字母的大小写都是有效的规则和限制宽度任选项给定所能容纳的最大字符个数表达式值应为一个正整数当未规定宽度时字符个数是不受本语言限制的例定义一个未规定最大长度的可变长度串定义一个最大长度为个字符的串但它的实际长度可在到个字符间变化定义一个长度恰好为个字符的串其实际长度是不能改变的聚合数据类型聚合数据类型以给定的基本数据类型引例集合作为它的域见第条这些基本数据类型引例称为聚合引例的元素语言提供四种聚合数据类型数组数表数袋和数集
25、每种聚合数据类型有不同的性质和它的引例相连数组是一个有固定范围的有序集合它由一个整数系列标引该数据类型定义规定不限制一个引例可否包含有重复元素例几何变换矩阵可定义为一组数据的数组数表是一个可按它们的位置寻址的元素系列表中元素的个数是可变的且可由数据类型定义限制数据类型定义也规定不限制一个引例是否包含有重复元素例一个过程计划的运行可表示为一个数表该运行是有序的且可从过程计划中删去某个运行步骤或将某个运行步骤增加到过程计划中去数袋是一个允许在其中出现重复元素的无序集合袋中元素数量是可变的且可由数据类型定义限制例在装配问题中的紧固件集合可表示为数袋可能有许多同类型螺栓引例但是在一特定的孔中使用哪一只
26、螺栓是不重要的数集是一个不允许在其中出现重复元素的无规则集合数集中的元素数量是可变的且可由数据类型定义限制例世界人口数是一个数集注聚合是一维的通常被认为是多维的对象例如数学矩阵可用一个它的基本类型是另一个聚合数据类型的聚合数据类型表示因此聚合数据类型可嵌套成任意深度以表示任意的维数例如可定义一个整数组的数表它实际上是两维的数组数据类型数组数据类型以标引的固定范围的类元素集合作为它的域由整数值表达式表示的上下界定义了标引值的范围以及每个引例的大小数组数据类型定义可选择地规定一个引例不能包含有重复元素它也可规定不必在每个标引位置包含有一个元素语法数组型界说明基本类型界说明界界界数值表达式界数值表达
27、式基本类型聚合类型简单类型命名类型如果为下界为上界对该数组正好有个元素这些元素是用到包括和在内的下标标引的见第条规则和限制界和界的两个界说明表达式求值结果应为整数数值两个都不应为不定解值界给出数组的下界它应是该数据类型有效引例的最小标引界给出数组的上界它应是该数据类型有效引例的最大标引界小于或等于界如果规定了任选关键字则该数据类型引例在一个或多个标引位置上可有不定解值如果未规定任选关键字则该数据类型引例不应该在任何标引位置上包含不定解值如果规定了唯一关键字则在该数据类型引例中的每个元素应与同一引例中的每个其它元素不同不等于如果未规定唯一关键字则在该数据类型的同一引例中的多于一个所标引例位置上可
28、出现相同的值例本例表示如何说明一个多维数组第一维第二维第一个数组有数据类型的个元素在名为区段的属性中有总共个数据类型的元素在每个中不会出现重复但是在单一的区段中在两个不同的引例内一个引例可出现两次注界可为正负或零但不能为不定解在同一个数组型数据类型定义中任选和唯一都可被规定这不妨碍在单个引例中出现多个不定解值因为不定解值间的值比较产生未知所以它不违背唯一性限制数表数据类型语法数表型界说明基本类型界说明界界界数值表达式界数值表达式基本类型聚合类型简单类型命名类型数表数据类型以类元素系列作为它的域用整数值表达式表示的可任选的上下界定义了在该数表数据类型引例中可容纳的最小和最大元素数量数表数据类型定
29、义可任选地规定一个引例不能包含有重复元素规定和限制界应是一个求值结果为大于或等于零的整数值的表达式它给出表示在数据类型引例内元素最小数量的下界界不应为不定解值界应是一个求值结果为大于或等于界的整数表达式或一个不定解值它给出表示在数据类型引例内元素最大数量的上界如果该值为不定解则在数据类型引例内的元素数量不受上述限制如果没有界说明则界限为如果规定了关键字则在数据类型引例内的每个元素应与同一引例内的每个元素不同不等于如果未规定关键字则在同一数据类型引例内相同的值可能出现一次以上例本例定义一个数表该数表可包含有到个数组每个数组不应与数表中其它数组相同与名为属性相关的按数表元素号而定的整数为每个数组应
30、与由关键字规定的每个其它数组不同数袋数据类型数袋型数据类型以类元素的无序集合作为它的域用一个整数值表达式表示的可任选的上下界定义了在该数据类型引例中所能容纳的最小和最大元素数量数袋型数据类型引例则可包含有重复元素语法数袋型界说明基本类型界说明界界界数值表达式界数值表达式基本类型聚合类型简单类型命名类型界应是一个求值结果为大于或等于零的整数值表达式它给出表达式在数据类型引例内元素最小数量的下界界不应为不定解值界应是一个求值结果为大于或等于界的整数值表达式或一个不定解值它给出表示在数据类型引例内元素最大数量的上界如果该值为不定解则在数据类型引例内的元素数量不受上述限制如果没有界说明则界限为例本例定
31、义一个属性为点的数袋命名数据类型假定已在别处说明名为点数袋的属性值能包含有个或多个点在点数袋值中相同点引例可出现一次以上如果该值是被要求至少包含一个元素则界说明能按如下方式提供一个下界名为点数袋的属性值现在至少应含有一个点数集数据类型数集型数据类型以类元素的无序集合作为它的域数集型数据类型的范围是在数袋型数据类型中划定的一个限定范围用整型值表达式表示的可任选的上下界定义了在该数据类型引例中可容纳的最小和最大元素数量数集型数据类型引例不应包含有重复元素语法数集型界说明基本类型界说明界界界数值表达式界数值表达式基本类型聚合类型简单类型命名类型规则和限制界应是一个求值结果为大于或等于零的整数型它给出
32、表示在数据类型引例内元素最小数量的下界界不应为不定解值界应是一个求值结果为整数值大于或等于界的表达式或一个不定解值它给出表示在数据类型引例内元素最大数量的上界如果该值为不定解则在数据类型引例内的元素数量不受上述限制如果没有界说明则界限为在数集型数据类型引例内的每个元素应与同一引例中每个其它元素不同不等于例本例定义属性为点的数集命名数据类型假定已在别处说明名为的属性能包含有零个或多个点在该数集中的每个点引例应与该数集中的每个其它点不同如果要求该值不应多于个点则界说明能按如下方式提供一个上界名为的属性值现在能包含最多为点命名数据类型命名数据类型是用户说明的数据类型有两种用户说明的数据类型实体数据类
33、型和定义数据类型本章只规定命名数据类型的引用这些数据类型的说明在第九章规定实体数据类型实体数据类型通过实体说明见第节建立实体数据类型由用户赋给一个实体标识符实体数据类型通过该标识符引用语法实体引用实体标识符规则和限制实体引用应是一个在当前作用域内见第章可见的实体引用例本例使用点实体数据类型作为属性的表示实体线有名为和两个属性这些属性的数据类型是点定义数据类型定义数据类型通过类型说明见第节说明定义数据类型由用户赋给一个类型标识符定义数据类型通过这个标识符引用语法类型引用类型标识符规则和限制类型引用应是在当前作用域内可见的定义数据类型名例本例用来表示与一个属性相关的度量单位的定义数据类型名为的属性
34、表示为实数但是定义数据类型的使用使该实数的意义和上下关系更清楚了也就是说它表示体积而不是用实数表示的其它东西构造数据类型在语言中有两种构造数据类型枚举数据类型和选择数据类型这些数据类型有类似的语法结构且都是用来提供定义数据类型的下划线表示见节注构造数据类型只能用作定义数据类型的表示枚举数据类型枚举数据类型以名字的有序集合作为它的域该名字表示枚举数据类型的值这些名字是用枚举标识符表示且是引用为枚举项语法枚举型枚举标识符枚举标识符两种不同的枚举数据类型可包含有相同的枚举标识符在这种情况下对枚举标识符的任何引用例如在表达式中应当用数据类型标识符作为前置限定词以确保引用是无歧义的因此引用形式为类型标识
35、符枚举标识符规则和限制为比较起见枚举类型值的顺序应由它们在枚举标识符表中的相关位置决定第一个出现的项应比第二个小第二个应比第三个小等等不同枚举数据类型值间的比较是不定义的枚举数据类型只应用作为定义数据类型的下划线类型例本例使用枚举数据类型表示不同种类的车辆是如何移动的枚举项左有两个独立的定义每一个都由每种类型的一个分量给出标识符的两个定义之间没有联系因此由其本身对或的引用将是二义性的为避免对这些值中任何一个引用的二义性必须由类型名加以限定例如注因为语言只允许枚举数据类型用作定义数据类型的下划线表示因此总是可以得到一个类型标识符的选择数据类型选择数据类型以它的选择表中的命名数据类型的各域的并作为
36、它的域选择数据类型是对在它的选择表中的每个命名数据类型的一个总称语法选择类型命名类型命名类型规则和限制在选择表中的项应为实体数据类型或定义数据类型选择数据类型只应用作定义数据类型的下划线类型例选择应在一个给定范围内的几个事物类型之间进行一个物品通过壁装可与墙壁相连壁装可分永久连接或临时连接两种这两种方法又可再细分例如一个壁装引例可包含用铁钉螺丝胶粘或焊接中的一个引例注选择数据类型引例可以是在那个选择数据类型的选择表中规定的多个命名数据类型中的一个引例例如如果和是的子类型且它们都通过与或表达式相关则当用定义类型时会同时得到选择数据类型和的一个引例广义数据类型语法广义类型聚合类型一般聚合类型通用类
37、型广义数据类型用来规定某些其它数据类型的总称这些数据类型只能用在很专门的场合通用类型是所有数据类型的总称聚合数据类型是所有聚合数据类型的总称一般聚合数据类型也是聚合数据类型的总称但已放宽了通常对这些聚合数据类型所加的限制所有这些数据类型在第条定义数据类型的使用类别在中数据类型按三种不同方式使用基本数据类型用作属性和聚合元素的表示参数数据类型用作函数和过程的形参表示而下划线数数据类型用作定义数据类型的表示某些类别的数据类型可以这些方式中的任何一种方式使用而另一些数据类型只能在某些特定场合使用它们的区别概括表示在表中表数据类型的使用类型简单数据类型聚合数据类型命名数据类型构造数据类型广义数据类型说
38、明基本数据类型属性或聚合元素的表示参数数据类型形参局部变量或函数结果的表示下划线数据类型定义类型的表示基本数据类型基本数据类型用作属性的表示或用作聚合数据类型的基本类型基本数据类型包括简单数据类型聚合数据类型和命名数据类型语法基本类型聚合类型简单类型命名类型参数数据类型参数数据类型用作对算法函数或过程形式参数的表示参数据类型也可用来表示在算法中说明的局部变量和函数的返回类型参数数据类型包括简单数据类型命名数据类型和广义数据类型语法参数类型广义类型命名类型简单类型下划线数据类型下划线数据类型用作定义数据类型的表示下划线数据类型包括简单数据类型聚合数据类型构造数据类型和定义数据类型语法下划线类型构
39、造类型聚合类型简单类型类型引用说明本章定义中的各种说明一个说明生成一个新的项且有一个标识符与该项相连接该项可以通过写上与该标识符相连的名字在其它地方被引用见第章的基本能力表现在下述的说明中类型实体模式常数函数过程规则说明可以是显式的或隐含的本章描述显式说明隐含说明项及其建立的条件在本章和后面各章中描述类型说明类型说明生成一个定义数据类型见第条并说明了一个引用它的标识符特别是该类型标识符能被说明为定义数据类型的名字这种数据类型的表示是下划线型定义数据类型的域与下划线类型的域相同如果存在地点子句则它还由地点子句所限制定义数据类型范围是在下划线中限定的一个范围所以它与下划限类型是兼容的语法类型说明类
40、型标识符下划线类型地点子句下划线类型构造类型聚合类型简单类型类型引用例本例说明名为的定义数据类型是用串的下划线类型表示生成的因此定义数据类型可用来作为属性局部变量和形式参数的表示这种方式比使用表达了更多的信息注多个定义数据类型可与同一个表示相连域规则地点子句域规则规定限定定义数据类型域的限制定义数据类型的域是由该规则所限定的它的下划线表示的域域规则跟在关键字后面语法地点子句域规则域规则每个域规则可给出一个规则表规则表的引用不属于本国家标准的范围规则和限制每个域规定应求值为一个逻辑真假或未知值关键字见第节在每个域规则中至少应出现一次域规则对在下划线类型域内的特定引例是通过在该引例规则中替换的一个
41、具体值求解的当表达式求值为真值时域规则得到认定当表达式求值为假值时则域规被违背而当表达式求值为不定解或未知值时则域规则既不被认定也不被违背定义数据类型的域应由不违背任何域规则的下划线类型域的所有引例组成在一个给定的类型说明内域规则表应是唯一的例本例生成由下划线整数类型所限制的只允许为正整数的定义数据类型被说明为正的类型的属性局部变量或形式参数因此被限制为只有正的整数值实体说明实体说明生成实体数据类型并说明对它引用的标识符实体数据类型表示只有共同性质的一类对象在实体数据类型内实体的性质表示为属性和限制每个属性表示实体的一个性质且是与在每个实体引例内的值相连的该属性的数据类型建立可能值的域每个限制
42、表示下述实体性质中的一个对属性值的数种类和组织的限制这些限制在属性说明中规定对一个给定引例的属性值之间所需的关系这些关系出现在地点子句中且看作为域规则覆盖实体数据类型所有引例的属性值之间所需的关系这些关系出现在下述情况中它们是被看作为唯一性限制的唯一子句中它们是被看作为基数限制的反向子句中全局规则见第节在多于一个的实体类型引例间所需的关系这些关系几乎不出现在实体内而只作为全局规则见第节语法实体说明实体标题实体本体实体标题实体标识符子超类型实体本体显示属性派生子句反向子句唯一性子句地点子句规则限制在实体说明中每个被说明的属性标识符和标号在该说明内应是唯一的子类型不应说明一个有相同标识符的属性作为
43、它的一个超类型中一个的属性当子类型是说明它的一个超类型中的继承属性时则属于上述的一种例外情况属性实体数据类型的属性表示实体的基本特点性能或性质属性说明建立实体数据类型的由属性表示的数据类型间的关系属性名表示在它出现的这个实体范围内由它的相连值所起的作用有三种属性显式属性为生成引例而具有其值的属性派生属性用某种方式计算其值的属性反向属性其值是由按特定作用使用该实体的引例所组成的属性每个属性建立说明的实体数据类型的引例和某个其它引例间或两个引例间的关系由非聚合数据类型来表示的属性对该数据类型建立一个简单关系而由聚合数据类型表示的属性既对聚合引例建立聚合关系也对那些聚合引例的元素建立分配关系另外每个
44、属性在它的基本数据类型和说明的实体数据类型间建立隐含的反向关系显式属性显式属性表示为生成引例而具有的值的性质显式属性说明生成一个或多个有着给定域的显式属性且对每个属性赋给一个标识符语法显式属性属性说明属性说明基本类型属性说明属性标识符限制属性基本类型聚合类型简单类型命名类型规则和限制除非显式属性被说明为任选该实体数据类型每个引例都应具有那个属性的值关键字表示在一个给定的实体引例内属性未必有值如果属性没有值则该值可看作为不定解任选表示属性对这个实体类型的引例总是有意义的但有时某些引例可能没有起到由该属性所规定作用的值任选不表示对实体类型的某些引例是无意义的例它等效于注用于属性重说明的限定属性的语
45、法在第条描述当一个属性对某些引例是无意义时则在子类型构成时它是被严格地访效见第条由于任选属性可能没有值对任选属性的引用要小心特别是在规则中引用时更要特别小心可用内部函数来确定一个值是否存在或用内部函数来提供一个计算的缺省值如果上述两种方法都未使用则可能产生预料不到的后果派生属性派生属性表示其值是通过对表达式求值而计算得到的性质派生属性说明在关键字后给出派生属性说明由属性标识符它的表示类型和用于计算属性值的表达式组成表达式可引用作用域中的任何属性常数包括或函数标识符语法派生属性属性说明基本类型表达式属性说明属性标识符限定属性基本类型聚合类型简单类型命名类型规则和限制表达式应与属性的数据类型赋值兼
46、容见第条对一个特定的实体引例派生属性的值由表达式求值用当前引例替换的每个具体值和用相应的属性值替换属性标识符的每个具体值来确定例本例表示一个由圆心轴线和半径定义的圆除这些显式属性外还有必要计算一些重要性质例如面积和周长这些性质是通过定义它们为用表达式形式给出其值的派生属性来实现的注用于属性重说明的限定属性的语法在第条描述反向属性如果另一个实体已通过显式属性方式与当前实体建立了关系则在当前实体范围内可使用反向属性描述这种关系这种反向属性也可用来对该关系作进一步的限制反向属性说明在关键字后给出每个反向属性单个地规定对反向关键字的基数限制由反向属性的界说明规定这种限制与显式属性的方式相同反向属性用实
47、体数据类型或它的基本类型为实体数据类型数袋或数集表示该实体数据类型是当作为引用实体反向属性说明也命名引用实体的显式属性对一个特定的当前实体数据类型引例反向属性的值是由引例或按规定作用使用当前引例的引用实体数据的引例组成反向属性的三种表示类型中的每一种对两个实体间的关系都加有某些限制数袋型数据类型如果有界说明的话该界说明规定可使用当前实体引例的引用实体引例的最小和最大数量由于数袋可包含多于一次的相同引例因此引用实体的特定引例能多次使用当前实体的相同引例反向属性的可选性通过规定一个为零的下界表示它表示该当前实体的给定引例未必由引用实体的任何引例引用数集型数据类型如同数袋型数据类型可附加限制使一个特
48、定可用引例只能在属性值中出现一次它表示一个特定的引用引例只能按反向作用使用一次当前引例实体数据类型反向属性的值正好包含按规定作用使用当前引例的引用数据类型的一个引例语法反向属性属性标识符数集数袋界说明实体引用属性引用界说明界界界数值表达式界数值表达式规则和限制一个实体与要被说明的当前实体定义正向关系时应如同显式属性那样做在定义正向关系的实体中显式属性的数据类型应是要被说明的当前实体或是它的超类型中的一个如果在聚合中显式属性允许重复元素则反向属性应与数袋或数集一样按反向子句规定如果显式属性不允许重复元素则反向属性应规定一个数集或一个实体数据类型例假定有下述用于门装配的说明因此可限制门钮的说明使得
49、只有门钮在门的一个引例中使用时才能存在另一方面我们只能规定一个门钮未被使用或被一个门使用注只有反向属性是用非唯一的聚合类型表示时才会出现多次使用当前实体的相同引例即数袋数表或数组是不规定关键字的只要反向属性是由实体数据类型或唯一性聚合型表示的则对数集型数据类型的反向属性所加限制并无实际意义对用实体数据类型表示的反向属性所加限制与用对引用实体的反向属性所规定的限制相同如果数袋和数集都未被规定则该反向关系的基数为局部规则局部规则表明实体的引例域并把该规则应用于该实体数据类型所有引例上有两种局部规则唯一性规则在给定实体数据类型的所有引例间控制属性值的唯一性域规则对给定实体数据类型的每个引例属性值或这些值间的其它限制进行描述每个域规则可给一个规则标号规则标号的引用不属于本标准的范围注当给出规则标号时它可用来标识实现方法规则唯一性规则对单个属性或组合属性的唯一性限制可在唯一性规则中规定唯一性规则在关键字后给出规定一个单一的属性名或规定一个属性名的规则称作为简单唯一性规则该规则规定没有实体数据类型的两个引例对命名属性会有相同的值规定两个或多个属性名的规则称作
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1