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逻辑常数第3章、数据类型3.1简单类型3.1.1NUNBER(数值类型)3.1.2INTEGER(整数类型)3.1.3REAL(实数类型)3.1.4LOGICAL(逻辑类型)3.1.5BOOLEAN(布尔类型)3.1.6BINARY(二进制类型)3.1.7STRING(字符串类型)3.2聚集数据类型3.2.1ARRAY(数组类型)3.2.2BAG(包类型)3.2.3LIST(表类型)3.2.4SET(集合类型)3.3实体数据类型(EntityType)3.4自定义数据类型(DefinedType)3.5枚举类型3.6选择数据类型(Select)第4章、声明语句与块4.1标识符的作用域4.2类型声明(TypeDeclarations)4.3实体(Entity)4.3.1属性(Attributes)4.3.2局部规则(LocalRules)4.3.3超类与子类4.3.4隐含声明(ImplicitDeclarations)4.4模式(Schema)4.5常量(constant)4.6算法(Algorithms)4.6.1参数(Parameters)4.6.2局部变量(LocalVariables)4.6.3函数4.6.4过程4.7规则(Rule)第5章、接口规范5.1USE接口规范5.2REFERENCE接口规范5.3USE与REFERNCE的相互制约5.4隐式引用5.4.1常量引用(CONSTANTREFERENCE)5.4.2实体引用(ENTITYREFERENCE)5.4.3函数引用(FUNCTIONREFERENCES)5.4.4过程引用(PROCEDUREREFERENCES)5.4.5类型引用(TYPEREFERENCES)5.5子类的修剪(pruning)第6章、表达式6.1算术运算符6.1.1实数取舍(REALNUMBERROUNDING)6.2关系运算符6.2.1值比较运算符6.2.2区间表达式6.2.3实例比较运算符6.2.4成员运算符6.2.5LIKE运算符6.3二进制运算符6.3.1二进制下标运算6.3.2二进制数子串下标6.3.3二进制数连接运算符6.4逻辑运算符6.4.1NOT运算符6.4.2AND运算符6.4.3OR运算符6.4.4XOR运算符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组引用(groupreference)6.9函数调用6.10聚集的初始化6.11实体生成器6.11.1复杂实体生成器6.12类型兼容性第7章、可执行语句7.1空语句7.2ALIAS语句7.3赋值语句7.4CASE语句7.5复合语句7.6ESCAPE语句7.7IF...THEN...ELSE语句7.8过程调用语句7.9REPEAT(循环)语句7.9.1增量控制7.9.2WHILE条件7.9.3UNTIL条件7.10RETURN语句7.11SKIP语句第8章、标准常量8.1常数e8.2不确定值8.3逻辑假--FALSE8.4圆周率--PI8.5自身词--SELF8.6逻辑真--TRUE8.7UNKNOW第9章、标准函数第10章、标准过程第1章概述EXPRESS是一种规范化的信息模型语言。它提供了对论域中对象的规范(或定义)的详细描述,同时地提供了与这些对象有关的信息和约束的描述。EXPRESS主要用于信息建模。关于其标准可参见ISOTR9007、ISO10303。EXPRESS并不是一种程序设计语言。它由允许用明确和简要说明数据限制定义的明确对象语言元素组成。EXPRESS语言不包含输入/输出、信息处理以及管理之外的语言元素。1.1基本概念在EXPRESS中,定义了以下概念:属性(Attribute):用于描述实体的特性、品质、特征等。概念模式(ConceptualSchema):没有具体实现的一种模式。常量(Constant):不随时间变化或环境变化而变化的值。数据(Data):表示信息的符号。实体(Entity):表示具有共同特性的概念或物理对象的一类集合。函数(Function):接收输入参数并产生指定类型输出结果值的算法。输入参数值不能被修改。信息(Information):关于事实、过程或思想的知识。信息库(Informationbase):参见ISOTR9007。实例(Instance):一种类型的一个特定值。模型(Model):论域的一种规范化描述。对象(Object):存在于现实世界的物质或概念。全体(Population):一个信息库的内容。初等项(Primary):用一个名字或常数表示的值。过程(Procedure):处理输入参数并产生一个终结状态的算法。输入参数值可以被修改。命题(Proposition):对一个事例或事例集为有效的特殊状态的断言或否定。规则(Rule):对于一个实体实例或实例与实例之间的一个或多个约束的详细描述。模式(Schema):构造部分或全部模型的数据项的集合。稀疏数组(Sparsearray):一个包含未知值的EXPRESS数组。语言符号(Token):不能再分解词意的语言词汇元素。类型(Type):有效值范围的表示。1.2语法格式下面介绍EXPRESS语法中用到的语法符号。EXPRESS的语法在语法框中表示。在语法框中有若干条规则,每条规则的左侧有一个标号,作为其它语法对它进行引用的标识。用于定义EXPRESS语法的元语言(metalanguage)如下所述。标识符(identifier)一词通常表示一个非终结符号,它与另一个产生式有联系。常数文字(literal)通常表示一个终结符号,它是字符序列并且不能再展开。在这种情况下,字符表示任何定义在ISO6937中的可打印字符,标识符由字母、数字和连接符组成。语法={产生式}.产生式=标识符‘=’表达式‘.’.表达式=项{‘|’项}.项=因子{同子}.因子=标识符|文字|组|选项|重复.文字=’’’’字符{字符}’’’’.组=‘(’表达式‘)’.选项=‘[’表达式‘]’.重复=‘{’表达式‘}’.常数文字是终结符号,它用单引号括起来,并且区分大小写。当单引号出现在常数文字中时必须连写两次。括在括号中的一组表达式被当作一个单元处理。用[]括起来的表达式表示该表达式是可选的。用{}括起来的表达式表示该表达式可重复多次。例1:串类型的语法如下:串类型的语法定义中包含串的定义、串长度表达式和字符串长度是否可变,中括号[]括起来的一部分是可选的。小括号(‘(’‘)’)指示必出现的字符。按照上述规则,下列的任何一个定义都是合法的:a)stringb)string(22)c)string(19)fixed语法:271│string_type=STRING[‘(’width‘)’[FIXED]].294│width=simple_expression..1.3特殊字符注解下面的注解通常用于表示全部字符集,并且有些特殊字符是不能显示的。\a表示任何可打印的ISO6937字符\n表示换行符\q表示撇号(')符\s表示空格符\o表示任何其它字符下边给出一个关于Schema的例子:SCHEMAexample;ENTITYentity1;a:integer;b:integer;END_ENTITY;ENTITYentity2a:entity1;b:integer;END_ENTITY;END_SCHEMA;第2章基本语言元素本节说明组成EXPRESS模式的基本元素:字符集、注明、符号、保留字、标识符和常数文字(Literals)。语法定义摘于EXPRESSLanguageSyntaxA,它定义了语言的语法,并且提供了这里没有的语言产生式,关于语法规范的定义已在第1章中给出了。基本语言元素由文字流组成,通常它被分割成若干物理行。一个物理行包含0个或任何数目的字符,最后以换行符结束,在EXPRESS中的一行可有任意长度。下面的例子中,例2和例3在功能上是相等的。例2:entitypoint;x,y,z:real;end-entity;例3:ENTITYpoint;x,y,z:real;END_ENTITY;2.1字符集EXPRESS语言由特定规则的字符串组成。除去空格的这些字符组合成语言符号。EXPRESS的语言符号包括关键字、标识符、符号或文字,用于写EXPRESS的基本字符包括数字、字符、下划线、空格及一些特殊字符:2.1.1数字(digits)EXPRESS使用阿拉伯数字0-9。语法:121|digits=‘0’|‘1’|‘2’|‘3’|‘4’|‘5’|‘6’|‘7’|‘8’|‘9’.2.1.2字母(letter)EXPRESS可用大写、小写或字母表的混合字母,仅在被引号引起的字母大小写是有效的。2.1.3下划线下划线字符(_)在形成标识符和关键字被使用。下划线不能用于第一个字符。2.1.4特殊字符特殊字符主要用于语言部分,它们可用于注释和括起来的串中。2.1.5空字符空字符用于分隔语言符号,并且常常用于提高写语言的结构和可读性,例如分隔或加空行。2.1.5.1空格在两个语言符号之间可用一个或多个空格。在语言语法中,注释\s习惯用于表示一个空格字符。2.1.5.2换行换行标明一个源行的物理结束,换行通常处理为一个空格,但是当终结一个注释或者终结一个文字串时,它是一个记号。在语言语法中,换行被注释\n表示。2.1.5.3其它字符没有在2.1.1到2.1.5.2中定义的字符,将作为空格处理,除非它们出现在串文字中。在EXPRESS语法中,注释\o用于表示其它字符。语法:124|letter=‘a’|‘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’.语法:137|special=not_paren_star_special|‘*’|‘(‘|‘)’.130|not_paren_star_special=‘!’|‘@’|‘#’|‘$’|‘%’|‘^’|‘&’|‘_’|‘-’|‘+’|‘=’|‘{’|‘}’|‘[’|‘]’|‘~’|‘:’|‘;’|‘“‘|’’’’|‘,’|‘.’|‘?’|‘/’|‘|’|‘\’.2.2注解(Remark)注解用于文档,它在语言元素中无效。注解有两种:嵌入式注解和行尾注解。嵌入式注解可放于任何两个语言元素之间,行尾注解出现在一个物理行的未尾并且等价于一个行结束符。2.2.1嵌入式注解字符对(*表示嵌入式注解的开始,字符对*)表示嵌入式注解的结束。嵌入式注解可出现在任意两个语言元素之间。任何字符均可出现在嵌入注解的开始与结束之间,包括换行字符。所以,嵌入式注解可以占据多个物理行。嵌入式注解可嵌套。当嵌套注解时必顺注意符号对‘(*’与’*)’成对匹配。例4:下面是嵌入式注解嵌套的例子(*The'(*'symbolstartsaremark,andthe'*)'symbolendsit*)2.2.2行尾注解行尾注解在一个物理行的未尾。两个连字符(--)表示行尾注解开始,用换行符结束它。语法:180