GBT 16656.11-2010 工业自动化系统与集成 产品数据表达与交换 第11部分:描述方法:EXPRESS语言参考手册_第1页
GBT 16656.11-2010 工业自动化系统与集成 产品数据表达与交换 第11部分:描述方法:EXPRESS语言参考手册_第2页
GBT 16656.11-2010 工业自动化系统与集成 产品数据表达与交换 第11部分:描述方法:EXPRESS语言参考手册_第3页
GBT 16656.11-2010 工业自动化系统与集成 产品数据表达与交换 第11部分:描述方法:EXPRESS语言参考手册_第4页
GBT 16656.11-2010 工业自动化系统与集成 产品数据表达与交换 第11部分:描述方法:EXPRESS语言参考手册_第5页
已阅读5页,还剩213页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

园亘ICS25.040.40L67园亘中华人民共和国国家标准GB/T16656.11—2010/ISO10303—11:2004工业自动化系统与集成产品数据表达交换 第11部分:描述方法:EXPRESS语言参考手册Industrialautomationsystemsandintegration--Productdatarepresentationar.dexchange--Part11:Descriptionmethods:TheEXPRESSlanguagereference‘manual(ISO1030311:2004,IDT)2010—12-01发布 2011-05-01实施标理仪”目次GB/T16656.11--2010/ISO10303一”:2004前言⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯··⋯⋯1范围⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯2规范性引用文件⋯⋯·⋯⋯⋯⋯⋯3术语和定义⋯⋯⋯⋯ ⋯⋯⋯⋯3.1 GB/T16656.1中定义的术语·3.2 GB/T13000.1中定义的术语·V,,●,03.3其他术语和定义⋯⋯⋯⋯⋯⋯·24一致性要求⋯⋯··⋯⋯⋯⋯⋯⋯··04.1用EXPRESS表示的形式化描述04.2 EXPRESS的实现⋯⋯⋯·⋯⋯05基本原则⋯⋯⋯·⋯··⋯⋯⋯⋯⋯·06语言描述语法⋯⋯⋯⋯⋯⋯⋯⋯·06.1语法说明⋯⋯⋯⋯⋯⋯⋯⋯⋯·06.2专用字符标记⋯⋯⋯⋯⋯⋯⋯·7基本语言元素⋯⋯⋯⋯⋯⋯⋯⋯·7.1字符集⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·7.2保留字⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯··0,,m7.3符号⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯“u7.4标识符⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7.5文字⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8数据类型⋯⋯⋯⋯⋯⋯⋯·⋯··⋯⋯8.1简单数据类型⋯⋯⋯⋯⋯···⋯⋯8.2聚合数据类型⋯⋯⋯⋯⋯···⋯⋯8.3命名数据类型⋯⋯⋯⋯⋯·⋯⋯··8.4构造数据类型⋯⋯⋯⋯⋯⋯⋯···8.5广义数据类型·⋯⋯⋯⋯⋯⋯⋯··8.6数据类型使用分类⋯⋯⋯⋯···⋯9声明⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯····9.1类型声明⋯⋯⋯⋯⋯⋯⋯⋯·⋯··9.2实体声明⋯⋯⋯⋯⋯⋯⋯·⋯·····9.3模式⋯⋯⋯⋯⋯·⋯··⋯⋯⋯⋯⋯9.4常量⋯⋯⋯⋯⋯⋯⋯···⋯⋯⋯⋯9.5算法·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··9.6规则⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9.7子类约束⋯⋯⋯⋯⋯⋯⋯⋯⋯···10范围和可见性⋯⋯⋯⋯⋯⋯⋯⋯10.1范围规则⋯⋯⋯⋯⋯⋯⋯⋯·-·10.2可见性规则⋯⋯⋯⋯⋯⋯⋯⋯u地¨¨¨加扒筋孙盯盯勰蛎蝎¨驺弘鸥的的●GB/T16656.11—2010/ISO10303—11:200410.3显式项规则⋯⋯⋯⋯⋯⋯⋯⋯⋯·11接口描述⋯⋯⋯-⋯⋯⋯-⋯⋯-⋯·11.1 USE接I:I描述⋯⋯⋯⋯⋯⋯⋯⋯·11.2 REFERENCE接口描述l1.3 USE和REFERENCE的相互作隐式接口⋯⋯-⋯⋯⋯⋯⋯⋯⋯·12表达式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--··12.1算术操作符⋯⋯⋯⋯⋯⋯⋯⋯⋯·12.2关系操作符⋯⋯⋯⋯⋯⋯⋯⋯⋯-12.3二进制操作符⋯⋯⋯⋯⋯⋯⋯⋯·12.4逻辑操作符⋯--⋯⋯⋯⋯⋯⋯⋯·12.5字符串操作符⋯⋯⋯⋯⋯⋯⋯⋯·12.6聚合操作符⋯⋯⋯⋯⋯⋯⋯⋯⋯12.7引用⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·12.8函数调用⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯12.9聚合预置符⋯⋯⋯⋯⋯⋯⋯⋯⋯·12.10复合实体实例构造操作符⋯⋯⋯·12.11类型兼容性⋯⋯⋯⋯⋯⋯⋯⋯⋯-12.12表达式中的选择数据类型⋯⋯⋯·13可执行语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·】3.i空语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.3赋值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-13.4选择语句⋯⋯⋯-⋯⋯⋯·⋯⋯⋯·13.5复合语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.6转移语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.7If⋯Then⋯Else语句⋯⋯⋯⋯⋯·13.8过程调用语句⋯⋯⋯⋯⋯⋯⋯⋯·13.9重复语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.10返回语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.11跳语句⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·14内部常数⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14.1常数e⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14.2不确定值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14.3假⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14.4常数PI⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14.5Sell..··⋯.··⋯-.·⋯...⋯...⋯...⋯,,14.6真⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯·⋯·14.7未知⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15内部函数⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.1算术函数Abs⋯⋯⋯⋯⋯⋯⋯⋯15.2算术函数ACos⋯⋯⋯⋯⋯⋯⋯15.3算术函数ASin⋯⋯⋯⋯⋯⋯⋯Ⅱ

∞阻踮盱盯∞∞∞加"他∞蜘踮昙2∞∞咀叭眈∞%%%驰%卯"卯∞∞∞∞∞∞∞∞∞∞∞∞∞叽GB/T16656.11—2010/ISO10303-11:200415.4算术函数ATan⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯--15.5二进制函数BI,ength⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯·15.6算术函数Cos⋯⋯⋯⋯⋯⋯·⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.7广义函数Exists⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··15.8算术函数Exp⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯·⋯⋯⋯·15.9广义函数Format ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··15.10算术函数HiBound⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.11算术函数Hilndex⋯⋯⋯·····⋯·⋯ ⋯⋯⋯⋯⋯⋯⋯15.12串函数Length⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.13算术函数LoBound⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···15.14算术函数Log⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.15算术函数L092⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.16算术函数L0910⋯⋯·⋯···⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··15.17算术函数Lolndex⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.18空值函数NVI。⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.19算术函数Odd⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.20广义函数RolesOF⋯··⋯····⋯⋯ ⋯⋯⋯⋯⋯⋯⋯⋯15.2l算术函数Sin ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.22聚合函数SizeOf⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.23算术函数Sqrt⋯⋯⋯⋯⋯⋯⋯:⋯⋯⋯⋯⋯⋯⋯⋯⋯··15.24算术函数Tan⋯⋯⋯⋯···⋯⋯⋯⋯·⋯··⋯⋯⋯⋯⋯···15.25广义函数TypeOf⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.26广义函数Usedln⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.27算术函数Value⋯⋯⋯⋯⋯·⋯-⋯⋯⋯⋯⋯-⋯⋯⋯⋯15.28隶属函数Value_in⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.29唯一性函数Value—unique⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16内部过程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16.1插入⋯···⋯⋯⋯⋯···⋯⋯······⋯⋯⋯······⋯ ⋯⋯⋯⋯⋯删除⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯附录A(规范性附录)EXPRESS语言的语法⋯⋯⋯⋯⋯⋯⋯附录B(规范性附录)许可实体实例化的确定⋯⋯⋯⋯⋯⋯⋯附录C(规范性附录)接口描述规定的实例限制⋯⋯⋯⋯⋯⋯附录D(规范性附录)EXPRESS-G:EXPRESS附录E(附录H(资料性附录)关系⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯·附录I(资料性附录)EXPRESSG图例的EXPRESS模型⋯⋯附录J(资料性附录)不推荐使用的EXPRESS语言的语法特征附录K(资料性附录)EXPRESS语言新构造的示例··⋯⋯附录NA(资料性附录)ISO10303各部分的目录参考文献⋯·⋯⋯⋯⋯··⋯⋯·⋯··⋯⋯⋯·⋯··⋯⋯⋯⋯⋯⋯⋯-

叽∞叽叫吡∞∞叫舛似嘶%%∞∞%∞叮凹盯∞∞m加u¨n¨地坞弛蛎够∞吼舵拍∞%%∞他ⅢGB/T16656.11--2010/ISO10303—11:2004刖 嚣GB/T16656((工业自动化系统与集成产品数据表达与交换》是一个由多个部分组成的标准,各部分单独出版。GB/T16656的所属各部分又组成多个子系列,即:——第1至第19部分规定了描述方法;——第20至第29部分规定了实现方法;——第30至第39部分规定了一致性测试方法与框架}——第40至第59部分规定了集成通用资源;——第100至第199部分规定了集成应用资源;——第200至第299部分规定了应用协议;——第300至第399部分规定了抽象测试套件;——第400至第499部分规定了应用模块;——第500至第599部分规定了应用解释构造;——第1000至第1999部分规定了应用模块。GB/T16656((工业自动化系统与集成:产品数据表达与交换》现已发布了以下26个部分:——第1部分:概述与基本原理;——第11部分:描述方法:EXPRESS语言参考手册}——第21部分:实现方法:交换结构的纯正文编码;——第31部分:一致性测试方法与框架:基本概念;——第32部分:一致性测试方法与框架:测试实验室与客户的要求;——第34部分:一致性测试方法与框架:应用协议实现的抽象测试方法;——第4l部分:集成通用资源:产品描述和支持原理;——第42部分:集成通用资源:几何与拓扑表达;——第43部分:集成通用资源:表达结构;——第44部分:集成通用资源:产品结构配置;——第45部分:集成通用资源:物料;——第46部分:集成通用资源:可视化显示;——第47部分:集成通用资源:形变公差;——第49部分:集成通用资源:工艺结构与特性;——第10】部分:集成应用资源:绘图;——第105部分:集成应用资源:运动学;——第201部分:应用协议:显式绘图;——第202部分:应用协议:相关绘图;——第203部分:应用协议:配置控制设计;——第501部分:应用解释构造:基于边的线框;——第502部分:应用解释构造:基于壳的线框;——第503部分:应用解释构造:几何边界的二维线框;——第513部分:应用解释构造:基本边界表达;——第520部分:应用解释构造:相关绘图元素;——第1001部分:应用模块:外观赋值;VCB/T16656.11—2010/ISO10303—11:2004一第1006部分:应用模块:基础表达。本部分为GB/T16656的第u部分。本部分等同采用国际标准ISO10303—11:2004《工业自动化与集成 产品数据表达与换第ll部分:描述方法:EXPRESS语言参考手册》(英文版)。本部分代替GB/T16656.1l一1996《工业自动化和集成产品数据表达与交换第1l部分:描述方法:EXPRESS语言参考手册》。本部分与GB/T16656.11—1996相比主要变化如下:本部分规定了EXPRESS念构成了可扩展数据模型的体系架构,本部分的本次修订版本中增加了以下关键词:——BASED—ON;——END-SUBTYPE—CONSTRAINT;——EXTENSIBLE;——GENERIC—ENTITY;一一RENAMED:——SUBTYPE—CONSTRAlNT;——TOTALOVER;————WITH。若模式中将这些关键词作为EXPRESS版中修改的内容保持与上一个版本的向上兼容性。本部分的附录A、附录B、附录c、附录D、附录E、附录F和附录G均为规范性附录,附录H、附录I、附录J、附录K、附录NA均为资料性附录。本部分由中国机械工业联合会提出。本部分由全国自动化系统与集成标准化技术委员会(SAC/TC159)归口。本部分主要起草单位:中国标准化研究院。本部分主要起草人:詹俊峰、李文武、刘守华、柳青。ⅥGB/T16656.11—2010/ISO10303-11:2004交换第11部分:描述方法:EXPRESS语言参考手册1范围GB/T16656的本部分规定了能够定义产品数据的一种语言。这种语言被称作EXPRESS。本部分还规定了EXPRESS语言中资源构造子集的图形化表达,这种图形化表达被称作EXPRESS-G。在GB/T16656.1中EXPRESS被定义为一种数据描述语言。它由各种语言元素构成,允许无二义性的数据定义,并对所定义数据的约束进行描述。本部分适用于:——数据类型;——数据类型实例的约束。本部分不适用于:——数据库格式的定义;——文件格式的定义;——传输格式的定义;——过程控制;——信息处理;——异常处理。EXPRESS不是一种编程语言。2规范性引用文件下列文件中的条款通过GB/T16656件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。6B/T16656.1工业自动化系统与集成产品数据表达与交换第1部分:概述与基本原理(GB/T16656.1—2010,ISO1030341:1994,IDT)GB/T16262.1—2006信息技术抽象语法记法(ASN.1)第l部分:基本记法规范(iso/IEC8824—1:2002,IDT)GB13000.1信息技术通用多八位编码字符集(UCS)第1部分:体系结构与基本多文种平面(GB13000.1--1993,idtISO/IEC10646—1:1993)3术语和定义GB/T16656.1中定义的术语GB/7T]6656.1中确立下列术语和定义适用于本部分。——conformancerequirement一致性要求;——Data数据;GB/T16656.11—2010/IS010303-11:2004——Dataspeci[icationlanguage数据规范化语言;--Information信息;--Informationmodel信息模型;一 PIcsproformaPICS问卷。GB/T13000.1中定义的术语GB/T13000.1中确立的以及下列术语和定义适用于本部分。——Graphiccharacter图形字符。注:该定义仅包括那些在GB/T13000.13.3其他术语和定义下列术语和定义适用于本部分。3.3.1复合实体数据类型complexentitydatatype体数据类型的许可组合的约束定义。3.3.2复合实体(数据类型)实例complexentity(datatype)instance命名复合实体数据类型的值。一个复合实体实例的名称用于引用该实例。3.3.3复合实体(数据类型)值complexentity(datatype)value表达复合实体数据类型定义类中的单个信息的数据单元。它是该复合实体数据类型所确立的域中的一个成员。3.3.4常量constant特定域中命名数据类型的值。该取值不能被修改。3.3.5数据类型datatype值域。3.3.6实体entity由共同特性定义的信息的类。3.3.7实体数据类型entitydatatype一个实体的表达。实体数据类型确定了由共同属性和约束定义的值域。3.3.8实体(数据类型)实例entity(datatype)instance命名实体数据类型的值。一个实体实例的名称用于引用该实例。3.3.9(单--)实体(数据类型)值(single)entity(datatype)value成员。3.3,10实例 instance命名数据类型的值。GB/T16656.11—2010/ISO10303-11:20043.3.11多叶复合实体(数据类型)multi—leafcomplexentity(datatype)由多个实体数据类型构成的一种复合实体数据类型,其中的各实体数据类型都没有细分子类。3.3.12多叶复合实体(数据类型)实例multi—leafcomplexentity(datatype)instance命名的多叶复合实体数据类型的一个取值。一个多叶复合实体实例的名称用于引用该实例。3.3.13多叶复合实体(数据类型)值multi—leafcomplexentity(datatype)value表达多叶复合实体数据类型定义类中的单个信息的数据单元。它是该多叶复合实体数据类型所确立的域中的一个成员。3.3.14部分复合实体数据类型partialcomplexentitydatatype体数据类型可构成部分或全部复合实体数据类型。3.3.15部分复合实体值partialcomplexentityvalue部分复合实体数据类型的一个取值。它本身没有含义,必须与其他部分复合实体值和名称组合共同形成一个复合实体实例。3.3.16实例集population实体数据类型实例的集。3.3.17主模式primaryschema形成一个(可能循环)有向图的一组相互关联模式中的一个。主模式是一种受关注的模式,在有向图中可以有一个或多个主模式,图中的其他模式仅用来支持主模式。在将一个短模式转换为长模式时主模式要发挥特定作用(见附录G)。3.3.18根模式rootschema形成一个(可能循环)有向图的一组相互关联模式中的一个。根模式不是任何接口描述的对象,但其他所有模式都可通过根模式访问。根模式可被认为是有向图的代表。在将一个短模式转换为长模式时根模式要发挥特定作用(见附录G)。3.3.19简单实体(数据类型)实例simpleentity(datatype)instance个成员。3.3.20子类/超类图 subtype/supertypegraph一个被声明的实体数据类型集合。子类/超类图中声明的实体数据类型通过子类语句相互关联。子类/超类图定义了一个或多个复合实体数据类型。3.3.21标记token一种语言的不可分解的词汇元素。3.3.22值value一个数据单元。GB/T16656.11—2010/ISO10303-11:20044一致性要求4.1 用EXPRESS表示的形式化描述4.1.1词法语言EXPRESS其以下所有较低级别标识的所有检查都进行了验证后,则该形式化描述与该给定级别是一致的。检查级别:级别1:引用检查。该级别包括的检查是为了确保形式化描述的语法和引用是有效的。如果~形式化描述符合由附录A个形式化描述的EXPRESS项的所有引用与第10章和第11章规定的范围和可见性规则保持一致,则它的引用是有效的。级别2:类型检查。该级别包括的检查是为了确保形式化描述与下列各项保持一致:——表达式应符合第12章描述的规则;——赋值应符合13.3描述的规则;——反向属性声明应符合9.2.1.3的规则;——属性重声明应符合9.2.3.4的规则。级别3:值的检查。该级别包括的检查是为了确保形式化描述符合第7章~第16应大于B”形式的语句。这项检查限于A和B都能根据字面和/或常数求解的情况。级别4:全面检查:该级别包括的检查是为了确保形式化描述符合本部分规定的所有要求。检查。4.1.2图形形式采用EXPRESS-G表达的形式化描述应与以下规定的检查级别保持一致。当一个形式化描述对于一个给定的级别和所有较低级别所标识的所有检查都进行了验证时,则该形式化描述与该给定检查级别相一致。检查级别:级别1:符号与范围检查。该级别包括的检查是为了确保形式化描述分别与附录D中D.5和定义的实体级和模式级描述相一致,也包括对形式化描述使用的附录D中D.2、D.3和D.4中定义的符号的检查。对形式化描述的检查还为了确保页引用和重说明属性分别与附录D中D.4.1和D.5.5的规定相一致。级别2:全面检查。该级别包括的检查是为了识别形式化描述中与附录D完整模式级说明不一致以及与第7章~第16章规定的要求不一致的内容。ExPRESS的实现EXPRESS语言分析程序EXPRESS语言分析程序的实现应能分析检查任何采用EXPRESS语言编写的形式化描述是否与附录E中规定的与该实现相关的约束相一致。如果一个EXPRESS语言分析程序能够对用EXPRESS编写的形式化描述进行特定级别(以及比该级别较低的所有级别)所要求的所有检查,则认为该EXPRESS语言分析程序与这个特定的检查级别(4.1.1中定义的)相一致。EXPRESS和实数值最大精度的约束条件,这些约束说明应按照附录E测试。4.2.2图形编辑工具EXPRESS—G编辑工具的实现应能创建和显示形式化描述的EXPRESS-G图,并与附录E中规定GB/T16656.11—2010/iso10303-11:2004的与该实现有关的约束相一致。如果EXPRESS_G编辑工具所创建和显示的形式化描述的G图能与规定的检查级别(以及任何较低的级别)相一致,则认为该EXPRESS-G编辑工具与该特定检查级别是一致的。EXPRESS—G号的数量和最大页数的约束条件,这些约束说明应按照附录E规定的格式记录下来,以便用于一致性测试。5基本原则假定本部分的用户熟悉以下概念。用EXPRESS语言编写的模式(schema)描述了建立一个定义域(domain)据实例进行评价以确定它们是否在该定义域内。如果数据实例能满足所有条件,则认为它们是在该定义域内。如果数据实例不能满足任何条件,则该数据实例违背了条件,就不在该定义域内。当数据实例认为该实例是在定义域内。EXPRESS语言元素的定义中使用这些名称就构成了对基础表达的引用。当语言的语法使用了名称的标识符时,为了理解这种结构,必须对基础表达进行检查。EXPRESS语言中实体数据类型描述了一个定义域。定义域中的单个成员被假定可用某些唯一的相关标识符区分开。EXPRESS语言不规定这些标识符的内容或表达。常数实体实例的声明定义了实体数据类型描述的定义域中一个可标识的成员。这些实体实例不能通过该定义域上的操作进行修改或删除。EXPRESS中约束的过程描述可以声明或引用附加的实体实例为局部变量,这些变量被假设为定义域内f}缶时的可标识成员。这些过程描述可以修改附加的实体实例,但不能修改定义域内的永久成员。这些定义域内的临时成员只能在它们被声明的过程代码范围内访问,且代码结束后就不再存在。临时成员可能会违反唯一性约束、全局规则以及局部规则,本部分没有定义当这些违反约束条件的实例数据作为实际参数传递给函数或过程时,这些函数或过程的处理方式。EXPRESS语言没有描述实现环境,特别是EXPRESS没有规定:——如何解决名称的引用;——如何知道其他模式;——如何或何时检查约束条件;——如果一个约束条件不能满足时实现应当做什么;一在实现中是否允许存在不符合EXPRESS模式的实例;——在实现中是否、何时或如何创建、修改或删除实例。6语言描述语法本章规定了EXPRESS语言的语法表示标记法。附录A给出了EXPRESS语言的完整语法。为了说明具体语句的语法,部分语法规则在各章条中重新给出,这部分语法规则一般是不完整的,有时需要参考附录A查找缺失的语法规则。GB/T之间的相互引用。6.1语法说明EXPRESS语言的语法定义采用派生的沃思语法标记法(WSN)。注:见参考文献[3]。GB/T16656.11--2010/ISO10303-1112004以下给出标记的约定以及wsN自己的定义syntax 一{production).production=identifier7—7expression’.’.expression—term{’lterm).term —factor{factor).factor —identifier|literal group option identifier =character{character}.1iteral 一⋯’character{character}⋯7.group 5’(‘expression’)’.option —LexpressionJ.repetition一’{’expression‘)7.现的空格外,一个产生式的元素之间出现的任何空格都是无意义的。一个产生式用一个圆点“.”结束。——要素中的标识符表示出现在另一个产生式左边的非终结符号,标识符由字母、数字和下划线组成。语言的关键字是用标识符仅由大写字母组成的产生式表示的。字符是GB13000.1标准中第00组00面oo行中的21~7E单元所定义的任何字符。当文字中出现单引号时必须写两次。——各种括号的语义定义如下所示:·花括号“{)”表示零或多次重复;·方括号“[]”表示可选参数;圆括号“()”表示括号中的这组产生式应作为单一的产生式使用;竖线“l”表示应实际选择表达式中的某一项。示例1:字符串类型的语法如下:完整的语法定义(附录A)包括对STRING、numeric_expression(数字表达式)和FIXED的定义。示例2:按照示倒1给出的语法,可以进行以下替换:a)stringb)string(22)c)string(19)fixednumenc—expression的规则很复杂,可编写很多其他表达式。6.2专用字符标记以下标记用于表示整个字符集和不易显示的专用字符:——\a表示GB13000.1标准中第00组00面oo行21~7E单元中的字符;——\n表示换行(依赖于系统)(见7.1.5,2);——\q是单引号(撇号)(’)并包含在\a中;——\s是空格字符;——\x9、\xA和\xD分别表示GB13000.1标准中第00组oo面00行中第9、10和13位中的字符。6GB/T16656.11—2010/ISO10303-11:20047基本语言元素本章规定构成一个EXPRESS模式的基本元素:字符集、注释、符号、保留字、标识符和文字。零个)字符,并由一个换行符(见7.1.5.2)结束。注:把一个模式的语句划分为若干行并插入一些空格符可构成不同的结构形式,以便于语句阅读。示例:下面的两种形式是等效的。entitypoint;x,Y,Z:real;end—entity;ENTITYpoint;Z:REAI,;ENDENTITY;7.1字符集EXPRESS模式只能选用下列字符集中的字符:GB13000.1中09、0A、0D单元中的字符、范围内的图形字符以及表示换行的特殊字符\n。这些字符集合称作EXPRESS字符集,字符集中的字符通过标准中分配给该字符的单元来引用,单元号采用十六进制表示。字符集中的可打印字符(GB13000.1中的21~7E单元)共同构成了EXPRESS语言的标记,EXPRESS语言的标记包括关键字、标识符、符号和文字。EXPRESS字符集可进一步细分。上述字符集是一种抽象的字符集合,独立于其在实现中的表达。注1:ISO/IEC6429规定了ISO/IECl0646中位于09、0A和0D的字符语义,本部分没有对ISO/IEC6429中规定的语义进行要求,但也不排除它们。注2:本条仅涉及用来描述EXPRESS模式的字符,而不规定字符串数据类型中许可字符的定义域。7.1.1数字EXPRESS使用阿拉伯数字o~9(ExPREss字符集中30~39单元的字符)。EXPRESS使用英文字母表中的大写和小写字母(EXPRESS字符集中的41~5A和61~7A的字符)。字母的大小写仅在显式字符串文字中有意义。注:EXPRESS语言可用大写、小写或混合形式(见前面的示例)。专用字符(非字母和数字的可打印字符)主要用作标点符号和操作符,这些专用字符是EXPRESS字符集中21~2F、3A~3F、40、5B~5E、60和7B~7E单元的字符。GB/T16656.11m2010/mo10303-11:2004F划线下划线字符(一,EXPRESS字符集中5F单元的字符)可用在标识符和关键字中,但不能作为首字符使用。7.1.5空白以下各条和7.1.6对空白进行了定义。空白一般用于分隔EXPRESS模式中的标记。注;文字、常数中使用空白可改善模式的结构和可读性。7.1.5.1空格符aiN4-标记之间可出现一个或多个空格(EXPRESS字符集中单元20的字符),在EXPRESS语言的语法@ks表示空格符。7.1.5.2换行符在EXPRESS形式化描述中换行符表示一个物理行的结束。正常情况下换行符作为空格处理·但当结束一个末尾注释或者异常结束一个字串文字时沱就具有了特定意义。在E)四REsS语言语法中\r嚷示换行符。换行符的表达是由具体实现确定的。7.1.5.3其他字符单元09、0A和0D中的字符,除在显式字串文字中外,都应被作为空白处理。EXPRESS语言语法中用\xn来表达这些字符,其中n表示9、A和D中的一个。7.1.6注释注释用于编制文档,EXPRESS释和末尾注释。两种形式的注释都与一个采用注释标记的标识结构关联。7.1.6.1嵌入式注释字符对(*表示一个嵌入式注释的开始,*)表示其结束。嵌入式注释可以出现在任意两个标记之间。语法:145embedded—remark=’(*’[remark—tag]{(not—paren—star{not—paren—star})Ilparen—thennot—lparen_starI(’*’{’*7))Inot—raparen—star—then—rparenembedded—remark)’*)reinark.tag一7”’remarkref{7.’remark—ref}■remark_ref—attribute—refconstant—re[1entity—ref}enumeration—reIfunction_refparameterrefjprocedure_re{Jrule_label—refrule—refschema—refsubtype—constraint—reftype_label—reftypere/1variable_re[.131not—paren—star=letterldigitInot—paren_star—special.128letteF,atf~bh⋯d’f7f’川~gf~hf⋯iHf~k¨’f7m’I7n‘I’o’’p7I~q7r⋯Is’【⋯tI’u’1’v⋯w’【‘Y’I7z‘r124digit⋯0l’l⋯27l’3’l’4’l~5l⋯6l’7’l~8l~9.133nor_paren_star—speeial5not—paren—star—quote—special【“”.132not_paren_star-quote—special=’!’I”“J’#’J’$’I’%’J’&7】’+’l’,7I’一’¨.’1⋯/h。¨;’1‘<。17一’?’I’@7j’[’I’\’J’]7I。’J’一7I~’J’{’’l’I7}’l’~7.lparen—then—not—lparen—star=‘(’{7(’}not—lparen~star{notlparen—star}.not—lparen_star=not—paren—star+)+.138not—TpaTen—star—then—rparen=not—rparen—star{not—rparen—star}‘)’I’)‘}.135not_rparen—star—not—paren—starI’(’.8GB/T16656.11—2010/iso10303-11:2004EXPRESS字符集中的任何字符都可用在嵌入式注释中,包括换行符,因此嵌入式注释可占多个物理行。嵌入式注释可以嵌套。注:必须注意嵌套注释应确保符号的配对。示例:以下为嵌套的嵌入式注释的例子。(*The7(*‘symbolremark,andthe‘*)’symbolendsit*)7.1.6.2末尾注释末尾注释必须写在物理行的结尾。末尾注释用两个连续的短横线(一)开始,并以随后的换行符示例:thisisremarkthatendswithnewline7.1.6.3注释标记号注释符括起来。规则与约束:a) remark—ref应遵循lO.2中规定的可视性规则。b)许可注释引用应按照下列方式采用10.2用对象的范围。注:许可注释引用是一种采用‘.‘标记(见前面定义的语法规则147)的注释引用。c) 如果根据上述可视性规则没有找到注释引用,则该注释将不被关联到任何项上。d)包含其他标记注释的已标记注释(通过嵌套方式)应完整地(包括被嵌套的注释)关联到被用的项上。内部标记注释也应关联到它们相应的标识项上。e) 如果被嵌套的注释和封闭注释引用了相同的标识项,则该嵌套注释应与该标识项关联2次是在封闭注释中关联,另一次是直接关联。示例1:下列例子中的已标记注释引用了ent实体范围中的attr属性。ENTITYent;attr:INTEGER;ENDENTITY:(*”ent.attr"Theattribute⋯*)GB/T16656.”一2010/ISo10303-11:2004示例2:下面的例子中,已标记注释中对my—B@sonnschema模式的引用后可以跟该模式中直接声踢的任何标识符例子中就使用了函数名a_complicated—function。SCHEMAmysecond—schema;FUNCTIONa—complicated—functionENDFUNCTION;(*”mysecond—schema.a—complicated—function'7Thiscomplicatedfunction⋯*)END_SCHEMA;7.2保留字EXPRESS条详细描述了EXPRESS保留字的内容。7.2.1关键宇EXPRESS的关键字见表1。注:关键字用表达文字的大写形式,这样便于阅读语法生成式。表1 EXPRESS关键字操作符保留字见表2,这些操作符的定义见第12章。表2 EXPRESS操作符保留字内部常量的名称见表3,这些常量的定义见第14章。10GB/T16656.11—2010/ISO10303—11:2004表3 EXPRESS内部常■保留字7.2.4内部函数内部函数的名称见表4,这些函数的定义见15章。表4EXPRESS内部函数保留字ABSBLENGTHF()RMATLOBOUNDI。OINDEXSINTYPEOFVALUE—UN]QUE7.2.5内部过程

S儿"OFMM

ASINEXlSTSHIINDEXLoG2oDDSQRTVALUE

ATANEXPLENGTHLOGl0RoLESoFTANVALUE—IN内部过程的名称见表5,这些过程的定义见16章。表5EXPRESS内部过程保留字7.3符号符号是EXPRESS语言中有特定意义的专用字符或专用字符组。在EXPRESS中符号用作分隔符和操作符。分隔符用来表示相邻的词或语法元素的开始、分隔或结束,没有分隔符就不可能解释这些元素。操作符表示对与操作符有关的操作数应执行的运算,见第12章对操作符的解释。EXPRESS见表6。7.4标识符标识符是模式中所声明的项的名称(见9.3),包括模式本身。标识符不应与EXPRESS相同。标识符的第一个字符应当是字母,其余字符可以是字母、数字和下划线字符的任意组合。EXPRESS语言分析器的实现应参考附录E规定该实现能够读取的标识符最大字符数。GB/T16656.11—2010/[so10303—11:20047.5文字整数、实数、字符串和逻辑类型。7.5.1二进制文字二进制文字表示一个二进制数据类型的值,由符号%和后跟的一个或多个位(0或1)组成。EXPRESS语言分析器的实现应按照附录E规定该实现能读取的二进制文字的最大位数。示例:有效的二进制文字}%01010011007.5.2整数文字整数文字表示一个整数数据类型的值,由一个或多个数字组成。注:整数文字的符号在语法中没有被建模,因为EXPRESS在表达式语法中采用了一元操作符的概念。EXPRESS语言分析器的实现应按照附录E规定该实现能读取的整数文字的最大整数值。示例:有效的整数文字4016387.5.3实数文字含一个小数点。语法:142real——literal--integer——literal(digits’.’[digits][-7e’[sign]digits])125digits--digit{digit).124digit=⋯o|~1j~2J~3J’47j⋯5J~6|77⋯8’j⋯9.304sign一7+7 注:实数文字的符号在语法中投有被建模,因为EXPRESS在表达式语法中采用了一元操作符的概念。EXPRESS语言分析器的实现应按照附录E规定该实现能读取的实数文字的最大精度和最大指数。示例1:有效的实数文字1E6 ”E”可用大写或小写形式35e535962示例2:无效的实数文字001’ 小数点前至少要有一位数字12GB/T16656.11—2010/ISO10303-11:2004lelO 小数点必须是实数文字的组成部分e10 实数文字中不能有空格7.5.4字符串文字字符串文字表示一个字符串数据类型的值。它包括两种类型:简单字符串文字和编码字符串文字。简单字符串文字由单引号(7)括起来的EXPRESS字符集(见7.1)中的引号用两个连续引号表示。编码字符串文字是用双引号(”)括起来的GB13000.1四个八位组编码所表示的字符序列,编码方法定义如下:a) 第一个八位一IS0/IEC10646中字符定义的组;b) 第二个八位一IsO/IEc10646中字符定义的平面;c) 第三个八位一Is0/IEc10646中字符定义的行;d)第四个八位一IS0/IEC10646中字符定义的单元。八位编码序列应标识IsO/IEC10646字符串文字不应跨越一个物理行边界,即字符串文字的引号之间不应出现换行符。语法:310string—literal=simple—string—literalIencoded_string_literal.144simple—string_literal:\q{(\q\q)Inot—quoteI\sI\x9I\xA\xD}\q.134not—quote:not—paren—star_quotespeciallletterIdigitI’(’i7)’l’*’.132paren—star—quotespecial:’!’i⋯’l’#’l‘$’i7%’J7&’I’+’I7,7I_r7I7/’I7:7I7;’I7<’I7一’I7>’I7’I’@’I『[’I’\’I’]’I。‘J’一’|“7I’{7I’I’I’)’}’~’.128letter=⋯aI⋯bI⋯CI⋯dI⋯e|⋯fl~gl~hl⋯i⋯1~k1⋯17m’{⋯nI⋯Ol⋯PI~qI⋯rl⋯sI⋯t}⋯UI‘v⋯w⋯I7Y⋯z124digit:⋯0I⋯1⋯2I~3j⋯4l⋯5I⋯677’1⋯8l⋯9.140encoded—string—literal-⋯encoded_character{encoded—character}’”126encoded—character—octet136octet—hex_digithex_digit.127hexdigit=digitl~al~b}7c7l~dl~e∽7.EXPRESS语言分析器的实现应按照附录E的要求规定该实现能读取的简单字符串文字的最大字符数。EXPRESS语言分析器的实现还应按照附录E的要求规定该实现能读取的编码字符串文字的最大八位位组数(应当是4的倍数)。示例1有效的简单字符串文字:7Babyneedsnewpairofshoes1读作⋯Babyneedsnewpairof7Ed”sComputerStore’读作⋯EdComputerStore示例2无效的简单字符串文字:’Ed’SComputerStore‘引号总应当是成对出现的。’Ed”SComputerStore’不应当超过一个物理行。13GB/T16656.11--2010/ISO10303-11:2004示例3有效的编码字符串文字:“00000041”读作A”000000C5”读作A”0000795EO0006238”日本的表意文字神户(Kobe)。示例4无效的编码字符串文字:”000041”应当为4个八位一组的编码。”00000041000000C5”在””之间只能有十六进制字符。7.5.5逻辑文字逻辑文字表示一个逻辑数据类型或布尔数据类型的值,包括内部常量TRUE、FAI。SE和UNKNOWN.注:UNKNOWN与布尔数据类型不兼容。8数据类型本章定义了EXPRESS语言的数据类型。每个属性、局部变量或形式化参数都有一个关联的数据类型。EXPRESS有关这两种数据类型分类之间的关系说明详见8.6。对这些数据类型取值的许可操作详见第12章的规定。8.1简单数据类型简单数据类型定义了EXPRESS语言中最小数据单元的值域,即这些数据单元不能再进一步分解为EXPRESS可识别的更小元素。简单数据类型分为数字型(NUMBER)、实型(REAI。)、整型(INTE—GER)、字符串型(sTRING)、布尔型(BOOLEAN)、逻辑型(LOGIcAL)和二进制型(BINARY)。8.1.1数字型数据类型数字型(NuMBER)数据类型的定义域是EXPPRESS语言中的所有数字值。当更具体的数值表达不重要时,应使用NUMBER数据类型。(INTEGER),而球场的面积将是个实数(REAl,)。size:NUMBER;注:在本部分未来版本中将进一步细分NUMBER数据类型,例如复数值域等。8.1.2实型数据类型实型(REAL)数据类型的定义域是所有有理数、无理数和科学计算实数。它是NUMBER数据类型的专门化。14GB/T16656.11—2010/ISO10303-11:2004有理数和无理数可以精确表示为无限小数,科学计算数值表示仅在特定精度下已知的数量。精度说明(precision—spec)用有效数字位数表示。是有效数字的位数。精度是有效数字的位数,这个精度对于应用是必要的。规则和限制:“precision—spec规定了所求解的数字的最小位数,该表达式的解应是一个正整数。b) 当没有给定解的说明时,则实数的精度不受约束。8.1.3整型数据类型整型(INTEGER)数据类型的定义域是所有整数数值,它是REAL数据类型的专门化。示例:下例实体中使用INTEGER数据类型表示一个名为nodes的属性,该属性的定义域是投有任何约束的所有整数。ENTITYfoo;nodes:INTEGER;ENDENTITY;8.1.4逻辑型数据类型逻辑型(LOGICAL)数据类型的定义域是三个文字:真(TRUE)、假(FALSE)和未知(UNKNOWN)。以下规则适用于LOGICAl。数据类型:FALsE<UNKN0wN<TRUE。除了UNKNOWN赋值给布尔变量以外,LOGICAl。数据类型与布尔(B00LEAN)数据类型是兼容的。8.1.5布尔型数据类型布尔型(BOOLEAN)数据类型的定义域是两个文字:TRUE和FAI,SE。BOOI。EAN数据类型是LOGICAI。数据类型的专门化。与LOGICAL数据类型相似,以下规则也适用于BOOLEAN数据类型的取值:FLAsE<TRuE。示例:下例中用BOOLEAN数据类型表示一个名为planar的属性。与surface实体实例相关联的planar以是TRUE或FALSE。ENTlTYsurface;planar:BOOLEAN;END—ENTITY;8.1.6字符串数据类型字符串(sTRING)数据类型的定义域是字符序列。字符串中的许可字符是位于GB13000.1中单元09、0A和0D的字符以及20~7E和A0~10FFFF范围内的图形符号。GB/T16656.11—2010/IS010303-11:2004STRING数据类型可以定义为长度(字符个数)是固定的或可变的。如果该字符串没有规定为固定长度(在定义中通过使用FIXED保留字来定义),则它就是可变长的。固定长度的STRING数据类型的定义域为恰好是类型定义中规定长度的所有字符序列的集合。可变长度的STRING数据类型的定义域是长度小于或等于类型定义规定的最大长度的所有字符序列的集合。如果没有规定长度,则定义域是长度不加约束的所有字符序列的集合。可使用12.5描述的下标访问子字符串和单个字符。在字符串内,字母的大写和小写都有效。规则和限制:字符串长度表达式的值是个正整数。示例1:下例定义了一个可变长字符串,它的值没有定义最大长度。stringl:STRING;示例2:下例定义了一个最大长度为10个字符的字符串,它的值的实际长度可以从0到10个字符。strin92:STRING(10);示例3:下例定义的字符串的长度是固定的10个字符,它的值应包含10个字符。strin93:STRING(10)FIXED;8.1.7二进制数据类型二进制(BINARY)数据类型的定义域是每位为0或1的位序列。BINARY长度的(在定义中通过使用FIXED保留字来定义),则该BINARY数据类型就是变长的。固定长度BINARY集合。变长BINARY集合。可以使用12.3描述的下标访问BINARY数据类型的各部分和单个位。规则和限制:长度表达式的计算值应为一个正整数。示例:下例实体可用于保存字符的字形信息。representation:ARRAY[1:203oFBINARY(8)FIXED;8.2聚合数据类型聚合数据类型是以给定的基本数据类型(见8.6.1)的取值集合为定义域,这些基本数据类型的值称为聚合集合的元素。EXPRESS提供四种聚合数据类型的定义:数组(ARRAY)、列表(LIST)(BAG)和集合(SET)。每种聚合数据类型的取值都附有不同的特性。聚合(AGGREGATE)数据类型】6GB/T16656.11—2010/iso10303—11:2004是这四种聚合数据类型的泛化(见9.5.3.1)。数组(ARRAY)是一个有固定大小的有序集合,它通过一个整数序列进行索引。示例1:(几何)变换矩阵可以被定义为一个(数值)数组的数组。一一列表(LIST)是一个可根据位置访问的元素序列。列表中元素的数量是可变的,且可通过数据类型的定义约束。示例2:划中删去操作。包(BAG)是一个允许出现重复元素的无序集合,包中元素的数量是可变的,且可通过数据类型的定义约束。示例3:装配问题中紧固件的集台可以表示为一个包,其中可能有许多相同的元素:螺钉,但在每个特定孔位上使用哪一个螺钉并不重要。——集合(SET)是一个不允许出现两个相同实例元素的无序集合。集合中元素的数量是可变的,且可以通过数据类型的定义约束。示例4:世界人口数是一个集合。注:EXPRESS的聚合数据类型。因此,聚合数据类型可以嵌套到能表示任意维度的任意深度。示例5:可以定义一个LISTEl}3]OFARRAYE5:10]OFINTEGER,它相当于是二维的。8.2.1数组数据类型数组(ARRAY)的上限和下限定义了索引值的范围以及每个数组集合的大小。ARRAY数据类型定义可有选择地规定一个数组值不能包含有重复的元素,也可以规定一个数组值不必在每个索引位置都有一个元素。若m为数组的下限,n为上限,则该数组正好有n--m+1个元素。这些元素的索引是从m到n,也包含m和n在内(见12.6.1)。注1:数组的上下界限可以是正的、负的或零,但不能是不确定值的(?)(见14.2)。规则和限制:a)boun疋1和bound一2b) bound-1给定数组的下限,它应当是该数据类型数组值的最小有效索引。。) bound一2给定数组的上限,它应当是该数据类型数组值的最大有效索引d)bound一1应当小于或等于bound一2。e) 如果规定了可选(OPTIoNAL)关键字,则该数据类型数组值在一个或多个索引位置处可以有不确定值(?)。f) 如果没有规定可选(0PTIoNAL)确定值(?)。g) 如果规定了唯一(uNlQuE)的其他每个元素不同(即实例不相等)。注2:OPTIONAL和UNIQUE可以在同一个ARRAY数据类型定义中规定,这不排除在单个数组值中出现多个不确定值(?),这是因为不确定值(’)之间的比较会产生UNKNOWN,示例:下例表示如何说明一个多维数组。GB/T16656.11--2010/IS010303—11:2004sectors:ARRAY[1:10]OF ~第一维ARRAY[11:14]OF 一第=维UNIQUEsomething;第一个数组有数据类型为ARRAY[11:14]OFUNIQUEsomething的10个元素,在名为sectors的属性中共有40个数据类型为something的元素。在每个ARRAY[11:14]元素,但是相同的something实例可以出现在两个不同的ARRAY[11;14]sectors的某一个值中。8.2.2列表数据类型列表(LIST)数据类型的定义域是相似元素序列。可选项上下限为整列表达式,定义了LIST类型规定的集合中可以包含的最小和最大元素数量。LIST能包含重复元素。规则和限制:a) boundj数据类型的列表值中可包含的最小元素数量。boundj的表达式不应产生不定值(?)。b) bound一2表达式的求解结果应当是一个大于或等于bound_1(?)。它给出列表的上限,表示该数据类型的列表值中可包含的最大元素数量。如果该值是一个不定值(?),则该数据类型的列表值中元素数量的上限不受限制。c) 如果省略bound—spec,则该列表的上下限为[o:?]。d) 如果规定了关键字UNIQUE,他元素不同(即实例不相同)。示例:下例定义了一个数组列表,该列表可包含o~10个数组,每个数组有lo个整数类型的元素。在一个具体的列表中,其中的每个数组都与该列表中的其他数组不同。complexlist:LIST[O:10]OFUNIQUEARRAY[1:io]OFINTEGER;8.2.3包数据类型BAG(示一个BAG数据类型定义的集合中可以包含的最小和最大元素数量。规则和限制:bound-1据类型的包值中可包含的最小元素数量。bound_l的表达式不应产生不定值(?)。b)bound一2表达式的求解结果应当是一个大于或等于bound一1的整数值,或者是一个不定值(?)。它给出包的上限,表示该数据类型的包值中可包含的最大元素数量。如果该值是一个不定值(?),则该数据类型的包值中元素数量的上限不受限制。18GB/T16656.11—2010/Iso10303-11:2004c)如果省略bound—spec,则该包的上下限为[o:?]。示例:下例将一个属性定义为BAGOFpoint(其中假定point是已在其他某处声明的已命名数据类型)。a—bag—oLpoints:BAGOFpoint;属性a_bag_oLpoints的取值可以包含0个或多个point,在a—bag—of—points的值中同一point的实例可以出现多次。若要求它至少包含一个元素,则可以规定它的下限,如下所示:a—bag—oCpoints:BAG[1:?]OFpoint;这样,属性a_bagoLpoints的取值必须至少包含一个point。8.2.4集合数据类型SET(集合)数据类型的定义域是相似元素的无序集合。SET数据类型是BAG数据类型的专门化。它的上下限是可选的,是整数值表达式,定义了SET元素数量。SET数据类型定义的集合不应包含实例相同的两个或多个元素(即重复元素)。规则和限制:a) bound一1数据类型的集合值中可包含的最小元素数量。bound1的表达式不应产生不定值(?)。b)bound一2表达式的求解结果应当是一个大于或等于bound_1的整数值,或者是一个不定值(?)。它给出集合的上限,表示该数据类型的集合值中可包含的最大元素数量。如果该值是一个不定值(?),则该数据类型的集合值中元素数量的上限不受限制。c)如果省略bound—spec,则该包的上下限为[o:?]。d)在SET数据类型的实例中每个元素都应与同一实例中的其他元素不同(即实例不相同)。示例:下例将一个属性定义为SETOFpoint(假定该数据类型是已在其他某处声明的已命名数据类型)。a—set—oCpoints:SETOFpoint;属性a—set—oLpoints的值可以包含0个或多个point,在a—set—of—points的值中每个point的其他point元素不同。若要求它的取值为不多于15个point,则可以规定它的上限,如下所示:a—set_oLpoints:SET[o:15]OFpoint;这样,属性a_set_oLpoints的取值可以是不多于15个的point。8.2.5聚合值唯一性聚合元素的唯一性是基于实例比较确定的(见12.2.2)。通过使用VALUE—UNIQUE函数(见可以约束聚合值的唯一性。示例:下例为一个集合被约束为值唯一。value_unique_set=SETOFw}皿REwrl:value_unique(SELF);注:建模程序定义值的唯一性可以通过一对函数来说明,例如这对函数可称作my_equal和my_unique,如下例伪代码所示。FUNCTIONmy_equal(vl,v2:GEN喔RIC:gen):LOGr*。’my_equal”ReturnsifGB/T16656.11—2010/iso10303-I1:2004FUNCTl0Nmy_unique(C·AGGREGATEr*。’my_unique”ReturnsFALSEUNKNOWNifOtherwiseTRUE*)LOCALresult:LOGICAL;unknownp:BOOLEAN:2FALSE;END_LOCAL;IF(SIZEOF(c)=0)THENRETURN(TRUE);END_IF;i:=LOINDEX(c)TO(HIINDEX(c)-I)REPEATJ:=(i+1)TOHIINDEX(c);resultl=my_equal(c[i],c[]]);IF(result=TRUE)THENRETURN(FALSE);ENDIF(result=UNKNOWN)THENunknownp:=TRUE;END_IF;END_REPEATiREPEAT;unknownpRETORR(Ⅷ弼mN):RETURN(TRUE)}END_FUNCTION;函数my—equal应当含有以下能够建立等效类的特性。下列中的s是所考虑对象的集合,my—equal(i,j)返回[FALSE,uNKNOwN,TRUE]之一,其中i和j在s中。a) 对于S中的所有i,myequal(i,j)返回TRUE(因为不定值(?)不在s中,不需要my—equal(i,j)为TRUE);对于s中的所有i和J,myequal(i,j)=my_equal(j,i);c)对于S中的所有i、j和k,(my—equal(i,j)一TRUE)AND(my—equal(i,k)一TRUE)意味着my_equal(i,k)一TRUE。8.3命名数据类型命名数据类型是指那些可以在形式化规范中说明的数据类型。有两种命名数据类型:实体数据类型和定义数据类型。本条只涉及命名数据类型的引用,这些数据类型的说明详见第9章的规定。8.3.1实体数据类型实体数据类型是通过实体(ENTITY)声明建立的(见9.2)识符,实体数据类型通过该标识符被引用。规则和限制:entityjef应当是对当前范围可见的一个实体的引用(见第1020GB/T16656.11—2010/ISO10303-11:2004示例:下例采用point实体数据类型作为一个属性的表达。P0·pl:point;例子中line实体有2个属性po和p1,它们的数据类型都是point。8.3.2定义数据类型定义数据类型是通过类型(TYPE)声明说明的(见9.1)。定义数据类型由用户赋予~符,并通过该标识符引用定义数据类型。规则和限制:type_reI应当是当前范围可见的定义数据类型的名称(见第10章)。示例:下例的定义数据类型用来说明与一个属性相关的度量单位。volume=REAl.:END_TYPE;ENTITY例子中的bulk属性被表示为一个实数,但利用定义数据类型volume有助于明确该实数值的含义和语境。该实数值表示体积,而不是其他可被表达为实数的事物。8.4构造数据类型EXPRESS语言中有两种构造数据类型:枚举(ENUMERATION)数据类型和选择(SELECT)类型。这两种数据类型具有相似的语法结构,仅可用于提供定义数据类型的基本表达(见9.1)。8.4.1枚举数据类型枚举(ENUMERATION)数据类型的定义域是名称的集合。根据ENUMERATION取值类型可确定名称集合的扩展内容。下列各种ENuMERATIoN数据类型是不同的:——可扩展的ENUMERATIoN;——基于可扩展ENUMERATIoN的扩展ENUMERATION;——既不是可扩展的也不是扩展的NUMERATION。ENUMERATION声明的名称是ENUMERATION名称都被引用为一个枚举项,并通过enumeration—id来标识。对于既非可扩展也非扩展的ENuMERATION数据类型,其定义域是所声明的枚举项的有序集合。可扩展ENUMEATION类型定义域的枚举项集合的并集。可扩展枚举数据类型是一种泛化的枚举数据类型,它采用EXTENSIBLE保留字进行说明。扩展枚举数据类型的定义域是所声明的枚举项加上在其所基于的可扩展枚举数据类型中不通过扩展而是直接规定的枚举项的集合。扩展ENUMEATION数据类型通过使用保留字BASED—ON说明。GB/T16656.11—2010/ISO10303-11:2004一个枚举数据类型既可以是可扩展的也可以是扩展的枚举数据类型。一个可扩展TION可以不规定枚举项,还可以基于另一个可扩展ENuMERATIoN,不规定任何扩展基础ENl3MERAION的枚举项。based—on关系是可传递的,即尽管有多层based—on高层的可扩展枚举;它包含所有来自中间可扩展枚举和最高层可扩展枚举的枚举项。注l:在单一语境中被扩展了2上就是一种泛化。注2;本部分的上个版本中规定枚举项的顺序定义了取值顺序。在本版本中除下列规则d)规定的外,不再另外规定顺序,这是为了适用予可扩展枚举数据类型,因为扩展项的顺序是无法确定的。规则和限制:a)b) 只有在定义中使用保留字ExTENsIBLE时,枚举数据类型才是可扩展的。enumerationextension中的type_ref应当引用一个可扩展枚举类型。enumeration—id列表中的相对位置确定;首次出现的项的顺序应小于第二项;第二项应小于第三项.依此类推。e) 可扩展枚举或扩展枚举没有取值顺序。f)既非可扩展也非扩展的枚举应在定义域中规定枚举项。g)h) 两个不同的ENuMERATION数据类型在其名称集合中可包含相同的enumeation—id。如果这些枚举数据类型不是对相同可扩展枚举数据类型的扩展,则它们的enumeration—id不同的概念,即使它们的局部名称是相同的。在这种情况下,任何对enumeation—id(例如在表达式中)都需要通过数据类型标识符来限定,以确保引用是无歧义的,这种引用的形式是type—id.enumeration_id。注3:为限制enumeration—id而使用的type_id通常被定义为一个ENUMERATION数据类型。示例1:下面的例子使用ENUMERATION数据类型描述各种交通工具所具有的不同行驶方式。carcan_move=ENUMERATIONOF(1eft,right,backward,forward);END_nfPE;planecanmove=ENUMERATION(1eft,right,backward,forward,up,don);END_TYPE;上面的例子中枚举项left有两个独立的定义,由它所在每个数据类型给定。标识符left何联系。只对left或right种形式:car_canmove.1eft。i)可扩展枚举和它的扩展项确定了由enumeration—id组成的定义域。在该定义域中,相同meration_id的所有表现形式都具有相同的取值,即使当enumeration—id是在构成定义域的多个枚举数据类型中规定的。示例2:下面例子中的EXPRESS产生一个单一的名为red的枚举项,stoplight和canadian_flag都扩展了颜色的定义域。colour=EXTEBSIBLEENUMERATION;END_TYPE;22GB/T16656.11—2010IISO10303—11:2004stop_light=ENUMERATIONBASH吐ONcolourWITH(red·yellow·green);ENDTZPE;canadian—flag=ENUMERATIONBASED_ONWITH(red,white);END-TYPE;j) 说明枚举数据类型的类型声明不应包含定义域规则(局部)。注4:上述规则确保了一个定义数据类型对枚举数据类型的命名,且该定义数据类型不是枚举数据类型的专门化。示例3:下面的例子说明了如何将可扩展枚举用于模拟一个语境相关的批准概念。general—approval示,是最普遍的批准概念,只显式定义了两个值。通过将general—approval声明为可扩展枚举,使得在声明其扩展的模式中它可以取一个语境相关的值。如果用于表达属性的定义域,则该属性的许可取值都是语境相关的。SCttF3蛆sl;general—approval=EXZENSIB[月F/Ⅱ/MERATIONOF(approved,rejected);X哪E{SCHEMAs2:sl(general—approval);domain2一approval=EXTENSIBLEENUMERATIONBASEDOHgeneral—approvalWITH(pending);END_TYPE;END—SaⅡ琳A;s3;sl(general—approval);domain3general—approvalWITH(cancelled)s2(domain2一approval);FROMs3(domain3一approval);spec!ific—approval=ENUMERATIONBASED_ONdomain2一approvalWITH(rework);END_SCHEMA;sl(general—approval);redundantEND_TYPE;END_SCHFaA}在模式sl的语境中:general—approval的定义域为(approved,rejected)在模式s2的语境中:——gener弘一approval的定义域为(approved,rejected,pending);——d锄aill2一approval的定义域为(approved,rejected,pending)在模式s3的语境中:——gener“一approval的定义域为(approved,rejected,cancelled);一domain3一approval的定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论