EXPRESS語言參考手冊.doc

上傳人:小** 文檔編號:13542740 上傳時間:2020-06-20 格式:DOC 頁數:110 大小:406KB
收藏 版權申訴 舉報 下載
EXPRESS語言參考手冊.doc_第1頁
第1頁 / 共110頁
EXPRESS語言參考手冊.doc_第2頁
第2頁 / 共110頁
EXPRESS語言參考手冊.doc_第3頁
第3頁 / 共110頁

下載文檔到電腦,查找使用更方便

8 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《EXPRESS語言參考手冊.doc》由會員分享,可在線閱讀,更多相關《EXPRESS語言參考手冊.doc(110頁珍藏版)》請在裝配圖網上搜索。

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 局部規(guī)則(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 規(guī)則(Rule)第5章、接口規(guī)范5.1 USE接口規(guī)范5.2 REFERENCE接口規(guī)范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 區(qū)間表達式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章、可執(zhí)行語句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(循環(huán))語句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是一種規(guī)范化的信息模型語言。它提供了對論域中對象的規(guī)范(或定義)的詳細描述,同時地提供了與這些對象有關的信息和約束的描述。EXPRESS主要用于信息建模。關于其標準可參見ISO TR9007、ISO 10303。 EXPRESS并不是一種程序設計語言。它由允許用明確和簡要說明數據限制定義的明確對象語言元素組成。EXPRESS語言不包含輸入/輸出、信息處理以及管理之外的語言元素。1.1 基本概念在EXPRESS中,定義了以下概念: 屬性(Attribute):用于描述實體的特性、品質、特征等。 概念模式(Conceptual Schema

8、):沒有具體實現(xiàn)的一種模式。 常量(Constant):不隨時間變化或環(huán)境變化而變化的值。 數據(Data):表示信息的符號。 實體(Entity):表示具有共同特性的概念或物理對象的一類集合。 函數(Function):接收輸入參數并產生指定類型輸出結果值的算法。輸入參數值不能被修改。 信息(Information):關于事實、過程或思想的知識。 信息庫(Information base):參見ISO TR 9007。 實例(Instance):一種類型的一個特定值。 模型(Model):論域的一種規(guī)范化描述。 對象(Object):存在于現(xiàn)實世界的物質或概念。 全體(Population)

9、:一個信息庫的內容。 初等項(Primary):用一個名字或常數表示的值。 過程(Procedure):處理輸入參數并產生一個終結狀態(tài)的算法。輸入參數值可以被修改。 命題(Proposition):對一個事例或事例集為有效的特殊狀態(tài)的斷言或否定。 規(guī)則(Rule):對于一個實體實例或實例與實例之間的一個或多個約束的詳細描述。 模式(Schema):構造部分或全部模型的數據項的集合。 稀疏數組(Sparse array):一個包含未知值的EXPRESS數組。 語言符號(Token):不能再分解詞意的語言詞匯元素。 類型(Type):有效值范圍的表示。1.2 語法格式 下面介紹EXPRESS語法中

10、用到的語法符號。 EXPRESS的語法在語法框中表示。在語法框中有若干條規(guī)則,每條規(guī)則的左側有一個標號,作為其它語法對它進行引用的標識。 用于定義EXPRESS語法的元語言(meta language)如下所述。標識符(identifier)一詞通常表示一個非終結符號,它與另一個產生式有聯(lián)系。常數文字(literal)通常表示一個終結符號,它是字符序列并且不能再展開。在這種情況下,字符表示任何定義在ISO 6937中的可打印字符,標識符由字母、數字和連接符組成。 語法= 產生式. 產生式= 標識符 表達式 . . 表達式= 項 | 項. 項= 因子同子. 因子= 標識符 | 文字 | 組 |

11、選項 | 重復. 文字= 字符字符 . 組= ( 表達式 ). 選項= 表達式 . 重復= 表達式 . 常數文字是終結符號,它用單引號括起來,并且區(qū)分大小寫。當單引號出現(xiàn)在常數文字中時必須連寫兩次。括在括號中的一組表達式被當作一個單元處理。用 括起來的表達式表示該表達式是可選的。用括起來的表達式表示該表達式可重復多次。例:串類型的語法如下:語法:271 string_type = STRING ( width ) FIXED .294 width = simple_expression. . 串類型的語法定義中包含串的定義、串長度表達式和字符串長度是否可變,中括號 括起來的一部分是可選的。小括

12、號( )指示必出現(xiàn)的字符。 按照上述規(guī)則,下列的任何一個定義都是合法的: 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章 基本語言元素 本節(jié)說明組成EXPRESS 模式的基本元素:字符集、注明、符號、保留字、標識符和常數文字(Literals)。 語法定義摘于EXPRESS Language Syntax A,它定義了語言的語法,并且提供了這里沒有的語言產生式,關于語法規(guī)范的定義已在第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語言由特定規(guī)則的字符串組成。除去空格的這些字符組合成語言符號。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中定義的字符,將作為空格處理,除非它們出現(xiàn)在串文字中。在EXPRESS語法中,注釋o用于表示其它字符。2.2 注解(Remark) 注解用于文檔,它在語言元素中無效。注解有兩種:嵌入式注解和行尾注解。嵌入式注解可放于任何兩個語言元素之間,行尾注解出現(xiàn)在一個物理行的未尾并且等價于一個行結束符。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 | * | ( . 字符對(*表示嵌入式注解的開始,字符對*)表示嵌入式注解的結束。嵌入式注解可出現(xiàn)在任意兩個語言元素之間。 任何字符均可出現(xiàn)在嵌入注解的開始與結束之間,包括換行字符。所以,嵌入式注解可以占據多個物理行。 嵌入式注解可嵌套。當嵌套注解時必順注意符號對(*與*)成對匹配。例:下面是嵌入式注解嵌套的例子 (* The (* symbol starts a remark, and the *) symbol ends it *)2.2.2 行尾注解語法:279 | tail_remark = -

20、a | s n . 行尾注解在一個物理行的未尾。兩個連字符(-)表示行尾注解開始,用換行符結束它。2.3 符號 運算符號字符或是EXPRESS中有特殊含義的字符組。符號在EXPRESS中用作分隔符或操作符,分隔符用于分隔鄰接的詞匯元素。操作符與運算符有聯(lián)系,它表示在操作數上執(zhí)行的操作,見第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節(jié)對這些過程的說細說明。表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 . 二進制常數表示一個二進制類型值,并且它由符號開始,后邊跟若干個位(或)。例:一個有效的二進制數可表示為:%2.6.2 整數語法:123 | integer_literal = digits .22 | digits = digit digit . 一個整數常數表示一個整數類型值,并且它全部由數字組成。例7:有效整數常數 4016 382.6.3 實數常數

26、 一個實數常數表示一個實數類型值,并且它由一個尾數和一個可選的指數部分組成。尾數包含一個小數點。語法: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 字符串常數 字符串常數表示一個字符串類型值,是一個由單引號括起來的字符序列。如果單引號是字符串的一部分,需寫兩個連續(xù)的單引

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字符串常數中的單引號個數應總為偶數個。 Ed

28、s Computer store 超越了一個物理行2.6.5 邏輯常數 邏輯常數表示一個邏輯或布爾類型值,并且它是標準常數TRUE、FALSE或UNKNOWN三者之一。UNKNOWN與布爾數據類型是兼容的。語法:125 | logical_liberal = FALSE | TRUE | UNKNOWN .第3章、數據類型 數據類型是EXPRESS語言的最基礎部分。數據類型用于表示實例值的取值范圍。每個值(特性、邏輯變量或形式參數)都與其取值范圍有關系。例如:整數取值范圍即全部整數的集合。 數據類型可分成以下幾類:簡單類型(Simple types)、聚集類型(aggregation type

29、s)、定義類型(defined types)、實體類型(entity types)、枚舉類型(enumeration types)、普通類型(generic types)、選擇類型(select types)等。 數據類型應用時要受到一定的限制,不同的數據類型有不同的應用場合。表中列出了各種類型數據在使用中的限制。表7類型的使用類型abc簡單類型聚集類型定義類型普通類型聚集類型枚舉類型選擇類型說明: a) 基本類型:表示一個屬性或局部量; b) 參量類型:表示一個規(guī)范化參量或函數結果; c) 潛在類型(underlying types):用來表示一個定義類型。3.1簡單類型 簡單類型表示EXP

30、RESS中最小數據單位。即它們不能再分割為EXPRESS能夠識別的更小元素。追蹤模式(schema)的一條路徑,最終將以這些簡單類型之一結束。簡單類型包括:數值型(NUMBER)、實型(REAL)、整型(INTEGER)、字符串型(STRING)、布爾型(BOOLEAN)、邏輯型(LOGICAL)和二進制型(BINARY)等。3.1.1 NUNBER(數值類型)語法:228number_type = NUMBER . 當一個數的具體表示細節(jié)不重要時使用NUMBER類,NUMBER類型是REAL和INTEGER數據類型的超類。例12: size:NUMBER; 由于我們可能不知道size具體表示

31、的對象是什么,因此沒法準確地表示它。例如,在一場足球比賽中觀眾的人數則size是一個整數,而如果用size來表示投球量,則size是一個實數。3.1.2 INTEGER(整數類型)語法:201 | integer_type= INTEGER . INTEGER數據類型是NUMBER數據類型的子類,它用于表示一個整數的值,其量值沒有限制。例13: 本例用一個整數數據類型表示屬性名為nodes的值的區(qū)域 ENTITY foo; nodes: INTEGER; . END_ENTITY;3.1.3 REAL(實數類型)語法:244 | real_type = REAL (Precision_spec

32、 ) .234 | Precision_spec = simple_expression . REAL數據類型是NUMBER數據類型的子類,它用于表示有理數,無理數以及采用科學記數法表示的實數。有理數和無理數是無限可分的,并且是精確的??茖W記數法表示的實數只能表示指定精度的值。precision_spec表示有效數字位數,是一個大0的整數,不指定Precision_spec時,實數可以為任意精度。 一個實數用一個尾數和一個可選的指數表示,數的有效位數是去掉前邊所有的零后尾數的位數。3.1.4 LOGICAL(邏輯類型)語法:225 | Logical-type = LOGICAL . LOGI

33、CAL數據類型表示TRUE(真)、FALSE(假)、或UNKNOWN(未知)的值。 邏輯數據類型有下列條件:FALSE UNKNOWN TRUE。除了有UNKNOW值的,邏輯數據類型和布爾數據類型是兼容的。3.1.5 BOOLEAN(布爾類型)語法:158 | boolean-type=BOOLEAN 布爾類型表示TRUE(真)或FALSE(假)值。布爾類型可以被看作為LOGICAL類型的子類。 BOOLEAN數據類型有下列條件關系:FALSETRUE。例14 該例把BOOLEAN數據類型與名為planar的屬性聯(lián)系起來。planar實例的值只能為TRUE或FALSE。 ENTITY surf

34、ace; planar: BOOLEAN ; . END_ENTITY3.1.6 BINARY(二進制類型)語法157 | binary_type=BINARY ( width ) FIXED .294 | width=simple_expression. BINARY數據類型表示具有或值的位序列。二進制可定義為固定長度的或者是可變長度的。如果二進制沒被詳細說明為固定長度(在說明中用FIXED保留字),則它被說明為可變長度??勺兲匦栽试S二進制隨機地增長或收縮它的長度。二進制的任意部分和單獨的一個位都可使用下標尋址,這一技術陳述于第6.3節(jié)。規(guī)則與限制: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個或多個字符序列。在串中字母的大小寫是有區(qū)別的。width給出了可容納的最金字符數,width是一個整數。 串可定義

36、為固定長度或是可變長度。若串沒被說明為固定長度(在說明時用FIXED保留字),則它被說明為可變長度??勺兲匦员硎咀址呻S機增長或收縮其長度。在字符串中,可對其中的子串或單個字符進行下標尋址,這一技術在第6.5節(jié)中介紹。例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數據類型的元素是無序的,元素可重復出現(xiàn),包中元素的個數是否可變可以在類型聲明時指定。例20: 加固器(如螺母、螺栓、螺絲釘、鉚釘等)在組裝問題上可被看作一個包,這個包中可能含有許多一樣的螺栓,可以從中選取任一個。(3)LIST數據類型的元素是有序的,元素是否可重復出現(xiàn)以及元素

38、的個數是否可變可以在類型聲明時指定。例21: 對于一個生產過程所要完成的操作可表示為一個LIST,它的一個特點是它能隨機收縮或擴張,如一個操作可以被加入到該LIST中也可以從該LIST中刪除一個操作。(4)SET數據類型的元素是無序的,但元素不允許出現(xiàn)重復,SET中元素的個數是否可變可以在類型聲明時指定。例22: 世界上人口是一個SET集合。聚集類型總是一維的,如果要表示多維的對象,可以將聚集元素說明成聚集類型,這樣多層嵌套可表示出多維聚集。例23: LIST1:3OF ARRAY5:10OF INTEGER這是一個二維聚集。3.2.1數組類型(ARRAY)語法:149 | array_typ

39、e = ARRAY bound_spec OF OPTIONAL UNIOUE 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

40、 | 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個元素。每個數組元素可通過下標尋址。說明如下:a)bound

41、_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個元 ,元素類型為AR

42、RAY11: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.144 | agg

43、regation_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數據類型表示無序的同類元素的集合,元素的個數可以有選擇進行說明,若沒有說明元素的個數,則包中可有任何數量的元素,包中的元素可以重復。說明如下:a).boun

44、d_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_poinbs:BA

45、G1:?OF point;現(xiàn)在屬性 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 | aggregati

46、on_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數據類型表示一個有序的同類元素的聚集。在表中元素的個數是否可變可在說明時定義,若元素個數沒被說明,表中能存放任意數目的元素。表中的元素可以重復。說明如下:a).bo

47、und_spec包含兩個表達式。b).bound_1是一個大于等于0的整數表達式,它給出了表中最少的元素個數,即下限c).bound_2是大于等于bound_1的整數表達式.它給出了表中可放的的最大元素個數,即上限。當用?替代時,表中元素的個數沒有上界的限制。d)如果忽略bound_spec,默認的界限為0:?。e)如果使用UNIQUE關鍵字,它說明在同一個表中的元素不可重復出現(xiàn)。例26: 本例定義了一個數組表,表由0到10個數組成,表中每個數組是互不相同的。 complex_lint:LIST0:10OF UNIQUE ARRAY1:10OF INTEGER;表complex_list中整數

48、的個數根據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_

49、types.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.SET類型表示無順序的同類元素的聚集,SET元素的個數是否可變可在說明時定義,若元素個數沒被說明,表中能放下任何數目的元素。SET

50、中元素不可以重復出現(xiàn)。說明如下:a)bound_spec包含兩個表達式。b)bound_1是一個大于等于0的整數表達式,它給出了集合中最少的元素個數,即下限c)bound_2是一大于等于bound_1的整數表達式;它給出了集合中可放的最大元素個數,即上限。當用?替代上限時,集合中元素的個數沒有上限的限制。d)如果忽略bound_spec,默認的界限為0:?。例27: 該例定義了一個屬性,其類型是一個元素為點(是一個實體數據類型)的集合。a_set_of_poimts:SET OF point;屬性a_set_of_points能夠包含0或多個點,每個點實例(在集合實例中)將與其它點實例不同。如

51、果一個集合需要最少一個元素,說明要提供一個下限: a_set_of_points:SET 1:?OF point;屬性 a_set_of_points現(xiàn)在至少包含一個元素;每個點實例(在集合實例中)將是互不相同的。3.3 實體數據類型(Entity Type)語法:187 | entity_ref = entity_id .184 | entity_id = simple_id . 實體類型是被實體聲明語句聲明的對象類型(參見第4.3節(jié))。在模式中聲明的任何實體能夠作為屬性,局部變量或形式參數的數據類型。用實體作為一個屬性的數據類型,則在兩個實體間建立了關系。說明如下: entity_ref是

52、對同一模式中所聲明實體的一個引用,當該實體在另一模式中聲明時,則要建立對之引用的接口(參見第5章)。例28: 本例利用一個點實體作為一個屬性的數據類型。 ENTITY point; x,y,z:REAL; END_ENTITY; ENTITY line; p0,p1:POINT; END_ENTITY; 線實例有兩個屬性p0和p1。每個屬性的數據類型是一個點(point),在這種情況下,每個屬性的值是必須的。其中任何一個點為空都不能定義直線。3.4 自定義數據類型(Defined Type)語法:284 | type_ref = type_id .282 | type_id = simple_

53、id . 自定義數據類型是用戶對標準數據類型集合的擴展,它運用TYPE語句定義。其使用方法與標準類型相同,其它數據類型通過引用自定義數據類型的名字可使用它。type_ref是用類型聲明定義的自定義數據類型的名字,type_id是標準數據類型名字。例29: 下列定義了幾個數據類型,它們指出計量單位和屬性間的關系。 TYPE volume = REAL; END_TYPE; ENTITY PART; . bulk:volume; END_ENTITY; 屬性bulk表示一個實數,但是,使用自定義數據類型volume,幫助理解實數的含義和文法。即,REAL表示值而不是其它東西。3.5 枚舉類型語法:190 | enumeration_type = ENUMERATION OF ( enumeration_id ,enumeration_id ) .188 | enumeration_id = simple_id . ENUMERATION數據

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!