999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STEP中EXPRESS語(yǔ)言到Java語(yǔ)言的映射方法

2022-02-19 10:12:18吳華李湉張世貴李心靈楊滔
機(jī)械工程師 2022年2期
關(guān)鍵詞:規(guī)則語(yǔ)言功能

吳華,李湉,張世貴,李心靈,楊滔

(1.中國(guó)航發(fā)成都發(fā)動(dòng)機(jī)有限公司,成都 610503;2.西南石油大學(xué)機(jī)電工程學(xué)院, 成都 610500)

0 引言

為了實(shí)現(xiàn)我國(guó)由制造大國(guó)向制造強(qiáng)國(guó)的轉(zhuǎn)變,云制造、智能制造等先進(jìn)的制造模式相繼被提出[1-3]。它們是面向產(chǎn)品全生命周期的數(shù)字化、網(wǎng)絡(luò)化、智能化制造系統(tǒng)。要實(shí)現(xiàn)這些先進(jìn)的制造模式,實(shí)現(xiàn)產(chǎn)品信息建模方法標(biāo)準(zhǔn)化是十分重要的基礎(chǔ)性研究之一[4]。

產(chǎn)品模型數(shù)據(jù)交互規(guī)范(Standard for the Exchange of Product Model Data,STEP)是國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定的描述整個(gè)產(chǎn)品生命周期內(nèi)產(chǎn)品信息的標(biāo)準(zhǔn),它提供了一種獨(dú)立于任何特定系統(tǒng)、能夠描述產(chǎn)品數(shù)據(jù)的中性機(jī)制[5]。

EXPRESS語(yǔ)言是產(chǎn)品描述性語(yǔ)言,不是一種實(shí)現(xiàn)語(yǔ)言,因此需要通過(guò)語(yǔ)言映射來(lái)實(shí)現(xiàn)對(duì)產(chǎn)品信息模型的利用。已有映射研究中,周受欽[4]認(rèn)為要完成集成CAD系統(tǒng)的信息,EXPRESS與應(yīng)用開發(fā)語(yǔ)言C++/Java之間映射關(guān)系是基礎(chǔ),并簡(jiǎn)述了映射的兩個(gè)關(guān)鍵點(diǎn),數(shù)據(jù)類型的映射和數(shù)據(jù)關(guān)系的映射。趙繼政[6]認(rèn)為EXPRESS語(yǔ)言和Java語(yǔ)言存在描述能力和計(jì)算能力的對(duì)比差距,但EXPRESS作為一種描述性語(yǔ)言,并不具備計(jì)算能力。此外,由于未建立一般的映射方法,部分研究者存在映射不正確、不準(zhǔn)確、不完整的情況(例如:EXPRESS的REAL數(shù)據(jù)類型不需要考慮精度的問(wèn)題; 未定義表達(dá)式及關(guān)鍵操作符如:=:、IN、LIKE等)。這使得在面向大量的EXPRESS描述的產(chǎn)品信息模型,實(shí)現(xiàn)映射的通用性、正確性難以保證。大多數(shù)CAx系統(tǒng)采用的是C/S模式,研究映射的目標(biāo)語(yǔ)言多為C++語(yǔ)言。相比EXPRESS語(yǔ)言到C++語(yǔ)言的映射研究[7-10],建立EXPRESS到Java的映射研究較少[11]。要加快STEP的產(chǎn)品信息模型的快速應(yīng)用,對(duì)于采用Java語(yǔ)言用于開發(fā)的研究者來(lái)說(shuō),建立一種通用性強(qiáng)的EXPRESS到Java的映射方法是必要的。

1 EXPRESS到Java的映射的總體框架

EXPRESS語(yǔ)言符合傳統(tǒng)設(shè)計(jì)語(yǔ)言,又在此基礎(chǔ)上吸收了面向?qū)ο蟮募夹g(shù)特性,這使其兼具了較強(qiáng)的語(yǔ)言表達(dá)力和描述優(yōu)勢(shì)。EXPRESS語(yǔ)言對(duì)Java語(yǔ)言的映射可實(shí)施性較強(qiáng),總體的映射復(fù)雜度相對(duì)較小。

本文在總結(jié)EXPRESS和Java的特點(diǎn)的基礎(chǔ)上,將映射方法分類為一致映射、簡(jiǎn)易映射、預(yù)定義映射、功能改進(jìn)映射、功能置換映射。依據(jù)上述具體情況說(shuō)明所對(duì)應(yīng)的映射方法,將EXPRESS語(yǔ)言的所有元素依據(jù)層級(jí)關(guān)系建立了到Java映射的總體框架,如圖1所示。

圖1 EXPRESS到Java映射總體框架

EXPRESS中的SCHEMA與Java中的包package進(jìn)行簡(jiǎn)易映射,映射方法和總體框架的關(guān)鍵內(nèi)容映射在后文做進(jìn)一步說(shuō)明。

2 EXPRESS到Java的映射方法

2.1 數(shù)據(jù)類型的映射

EXPRESS語(yǔ)言的數(shù)據(jù)類型有簡(jiǎn)單數(shù)據(jù)類型、聚合數(shù)據(jù)類型、命名數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、廣義數(shù)據(jù)類型。大部分簡(jiǎn)單數(shù)據(jù)類型和聚合數(shù)據(jù)類型的定義于與Java語(yǔ)言常見數(shù)據(jù)類型是一致的,但在相對(duì)復(fù)雜的數(shù)據(jù)類型有較大差距,如表1所示。

表1 數(shù)據(jù)類型的映射表

2.1.1 簡(jiǎn)單數(shù)據(jù)類型

簡(jiǎn)單數(shù)據(jù)類型有數(shù)字型(NUMBER)、實(shí)型(REAL)、整型(INTEGER)、字符串型(STRING)、布爾型(BOOLEAN)、邏輯型(LOGICAL)和二進(jìn)制型(BINARY)。Java中存在雙精度浮點(diǎn)數(shù)double、整數(shù)類型int、字符串類型String、布爾類型boolean、enum(自定義)、二進(jìn)制數(shù)類型byte與之映射。

2.1.2 聚合數(shù)據(jù)類型

聚合數(shù)據(jù)類型包括數(shù)組(ARRAY)、列表(LIST)、包(BAG)和集合(SET)。除BAG以外,在Java中存在Arrays類、ArrayList類、Set類與之映射。前兩者為簡(jiǎn)易映射,只是聲明的關(guān)鍵詞不同,后者的SET聲明的關(guān)鍵詞相同,因此是一致映射。由于Java中不存在與BAG功能相近的類,需要預(yù)定義映射。BAG數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)是:1)允許出現(xiàn)重復(fù)的元素;2)元素的集合是一個(gè)無(wú)序的集合;3)包內(nèi)的元素?cái)?shù)量是可變的。

2.1.3 命名數(shù)據(jù)類型

命名數(shù)據(jù)類型是指那些可以在形式化規(guī)范中說(shuō)明的數(shù)據(jù)類型,是EXPRESS語(yǔ)言最基本、最重要的元素,包括實(shí)體數(shù)據(jù)類型和定義數(shù)據(jù)類型。

實(shí)體數(shù)據(jù)類型需用戶賦值一個(gè)實(shí)體標(biāo)識(shí)符,通過(guò)該標(biāo)識(shí)符實(shí)現(xiàn)引用。實(shí)體映射的關(guān)鍵點(diǎn)有屬性、局部規(guī)則、子類和超類和抽象實(shí)體數(shù)據(jù)類型等。

1)屬性。屬性在EXPRESS語(yǔ)言中是描述實(shí)體的本質(zhì)特征、特點(diǎn)和特性,這與Java中用成員變量描述實(shí)例的狀態(tài)是類似的。屬性主要分為顯示屬性、導(dǎo)出屬性和反向?qū)傩浴1M管ENTITY數(shù)據(jù)類型的屬性與Java類的成員變量有共同之處,但在導(dǎo)出屬性和反向?qū)傩陨先匀恍枰δ苤脫Q映射,其映射到Java屬性的處理過(guò)程及示例如表2所示。

表2 屬性映射表

屬性映射過(guò)程中,需要注意的是導(dǎo)出屬性需定義導(dǎo)出函數(shù),并將該函數(shù)放置于構(gòu)造函數(shù)與相關(guān)屬性的set函數(shù)中的尾部。從而達(dá)到EXPRESS導(dǎo)出屬性的功能。

2)局部規(guī)則。局部規(guī)則分為唯一性規(guī)則和定義域規(guī)則。唯一性規(guī)則在所給實(shí)體數(shù)據(jù)類型的所有實(shí)例之間控制屬性值的唯一性。定義域規(guī)則對(duì)給定實(shí)體數(shù)據(jù)類型的每個(gè)實(shí)例的屬性值或這些值之間的其他約束條件進(jìn)行描述。

唯一性規(guī)則的映射為功能置換映射。主要是約束實(shí)體的所有實(shí)例的某個(gè)屬性的值不能相等,在Java中不存在約束成員變量的值唯一性的規(guī)則,因此需要功能置換映射。具體實(shí)現(xiàn)方法是先定義一個(gè)與約束規(guī)則對(duì)應(yīng)的類變量的數(shù)組,以及監(jiān)測(cè)該數(shù)組是否有重復(fù)元素的唯一性函數(shù)。唯一性函數(shù)要求放置于構(gòu)造函數(shù)和相關(guān)屬性的set函數(shù)中的尾部。當(dāng)數(shù)組有重復(fù)的值,唯一性函數(shù)將會(huì)有提示,從而實(shí)現(xiàn)唯一性規(guī)則。

定義域規(guī)則的映射也為功能置換映射,需要定義一個(gè)私有變量作為是否滿足定義域規(guī)則的狀態(tài)變量,同時(shí)需要定義一個(gè)定義域函數(shù)來(lái)判斷屬性是否屬于定義域內(nèi),若不在定義域內(nèi),則提示。與唯一性規(guī)則一樣,定義域函數(shù)應(yīng)放置于構(gòu)造函數(shù)和相關(guān)屬性的set函數(shù)中的尾部。

3)其它。子類與超類:EXPRESS的子類與超類與Java是一致的,是簡(jiǎn)易映射。EXPRESS 通過(guò)SUPERTYPE、和SUBTYPE的關(guān)鍵字進(jìn)行超類和子類的聲明,Java則采用extends關(guān)鍵字。EXPRESS的子類和超類聲明在ENTITY和ENDENTITY之間,而Java則在類定義的頭部。

抽象實(shí)體數(shù)據(jù)類型:EXPRESS允許聲明不能直接被實(shí)例化而僅可通過(guò)其子類實(shí)例化的ENTITY數(shù)據(jù)類型-抽象實(shí)體數(shù)據(jù)類型。這與Java的抽象類的功能是一致的,可以通過(guò)抽象類的方法簡(jiǎn)易映射達(dá)到抽象實(shí)體數(shù)據(jù)類型的功能。

定義數(shù)據(jù)類型的映射:定義數(shù)據(jù)類型是定義某個(gè)數(shù)據(jù)類型的變量聲明操作,可與Java中變量和類實(shí)例的初始化映射。

2.2 表達(dá)式的映射

表達(dá)式由操作符、操作數(shù)及函數(shù)調(diào)用組合而成,并且要對(duì)它們進(jìn)行運(yùn)算以產(chǎn)生一個(gè)結(jié)果值。EXPRESS語(yǔ)言對(duì)操作符進(jìn)行了定義并規(guī)定了與每一種操作符一起使用的操作數(shù)的數(shù)據(jù)類型,實(shí)現(xiàn)操作符的優(yōu)先級(jí)映射和操作符的映射亦是模式映射的主要內(nèi)容之一。

EXPRESS語(yǔ)言的操作運(yùn)算符分為組件引用、一元操作符、取冪運(yùn)算、乘法/除法運(yùn)算、加法/減法運(yùn)算、關(guān)系運(yùn)算,共6個(gè)優(yōu)先級(jí)。Java語(yǔ)言的操作符分為后綴、一元、乘性、加性、移位、關(guān)系、相等、按位與、按位異或、按位或、邏輯與、邏輯或、條件、賦值、逗號(hào),共15個(gè)優(yōu)先級(jí)。映射過(guò)程中,有以下3個(gè)注意點(diǎn):

1)在Java中取冪、實(shí)例比較、成員操作、相似操作符在Java中沒有直接操作符與之對(duì)應(yīng),因此需要一定的處理以完成映射。對(duì)于取冪運(yùn)算,采用Math.pow進(jìn)行替代,對(duì)于實(shí)例比較、相似操作、賦值操作符的功能則需自定義映射,在Java中設(shè)計(jì)全局靜態(tài)函數(shù)實(shí)現(xiàn)其功能。

2)在映射過(guò)程中,部分操作符的優(yōu)先級(jí)順序發(fā)生改變。例如或運(yùn)算符及異或運(yùn)算符的優(yōu)先級(jí)低于了等號(hào)運(yùn)算符和不等號(hào)運(yùn)算符。又如取冪函數(shù)Math.pow的優(yōu)先級(jí)上升到最高的0優(yōu)先級(jí)。對(duì)于運(yùn)算優(yōu)先級(jí)上的改變,本文的解決方案是對(duì)于映射過(guò)程中只要存在運(yùn)算符是帶有下劃線的操作符,一律加花括號(hào)( ),以保證運(yùn)算先后順序的正確性。

3)當(dāng)操作符是同一優(yōu)先級(jí)別時(shí),就需要考慮操作符的結(jié)合性,EXPRESS語(yǔ)言一律采用從左至右,部分操作符與Java操作符不同,這也影響這運(yùn)算的順序。為了保證映射正確性,同樣采用花括號(hào)( )避免映射結(jié)合性的秩序問(wèn)題。

此外,EXPRESS語(yǔ)言操作符中還存在實(shí)例比較、成員操作、相似操作三種操作符,需要在Java中預(yù)定義映射。實(shí)例比較操作符的映射:數(shù)字型、邏輯型、字符串型、二進(jìn)制型及枚舉數(shù)據(jù)類型的實(shí)例比較,等價(jià)于對(duì)應(yīng)的值比較操作符。因此Java映射對(duì)于上述類型采用值比較操作符進(jìn)行返還結(jié)果值。EXPRESS的聚合實(shí)例和實(shí)體實(shí)例的比較操作符,需定義對(duì)應(yīng)功能的全局靜態(tài)函數(shù)實(shí)現(xiàn)自定義映射。

成員操作符的映射:成員操作符的功能主要是判斷某個(gè)元素是否存在于某個(gè)聚合數(shù)據(jù)類型中,為真則返還TRUE,否則返還FALSE。實(shí)現(xiàn)方法同實(shí)例比較操作符。相似比較符的映射:相似比較符用于兩字符串的匹配。如果對(duì)應(yīng)的任何字符不存在,則匹配失敗,結(jié)果為FALSE,匹配成功返還TRUE。在Java存在Pattern類可以實(shí)現(xiàn)這個(gè)匹配功能。

3 案例分析

現(xiàn)有一個(gè)EXPRESS模式,SCHEMA s。有4個(gè)實(shí)體數(shù)據(jù)類型:person、teacher、student、graduate。person實(shí)體含有屬性身份證ss_no(整型)、出生日期date(日期型)、編號(hào)id(String字符串型)。teacher實(shí)體繼承了person,將person中的id重寫為INTEGER整型,同時(shí)有定義域約束年齡小于21。student實(shí)體繼承person,定義域約束年齡大于5,選的課程需為定義的course枚舉數(shù)據(jù)類型的范圍中。graduate實(shí)體繼承student和teacher,定義域約束GRAD LEVEL IN teachers。定義course枚舉數(shù)據(jù)類型。利用上述映射方法,從EXPRESS模式到Java模式的映射結(jié)果如圖2所示。

圖 2 EXPRESS模式到Java模式的映射

4 結(jié)語(yǔ)

本文將映射方法總結(jié)并歸類為一致映射、簡(jiǎn)易映射、預(yù)定義映射、功能改進(jìn)映射和功能置換映射,構(gòu)建了從EXPRESS語(yǔ)言到Java語(yǔ)言的總體框架。詳細(xì)論述了EXPRESS的數(shù)據(jù)類型、表達(dá)式等元素到Java的映射具體實(shí)現(xiàn)方法。依據(jù)該一般化映射方法實(shí)現(xiàn)了對(duì)SCHEMA s的EXPRESS模式到Java模式的映射。文中建立的一般化映射方法,適用于STEP標(biāo)準(zhǔn)中EXPRESS語(yǔ)言描述的信息模型的Java映射。大量現(xiàn)有的信息模型標(biāo)準(zhǔn)知識(shí),為基于Java語(yǔ)言開發(fā)的CAD、CAPP、STEP-NC等系統(tǒng)提供了可借鑒的標(biāo)準(zhǔn)。

猜你喜歡
規(guī)則語(yǔ)言功能
也談詩(shī)的“功能”
撐竿跳規(guī)則的制定
數(shù)獨(dú)的規(guī)則和演變
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語(yǔ)言描寫搖曳多姿
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
關(guān)于非首都功能疏解的幾點(diǎn)思考
TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
我有我語(yǔ)言
主站蜘蛛池模板: 中文字幕欧美成人免费| 欧美乱妇高清无乱码免费| 欧美黑人欧美精品刺激| 亚洲中文字幕在线精品一区| 性欧美久久| 无码专区第一页| 成人免费视频一区| 毛片在线看网站| 久久久噜噜噜| 亚亚洲乱码一二三四区| 亚洲视屏在线观看| 亚洲无限乱码一二三四区| 一本久道热中字伊人| 国产精品密蕾丝视频| 最新国产午夜精品视频成人| 伊人无码视屏| 国产区福利小视频在线观看尤物| 日本午夜网站| 久久精品无码中文字幕| 国产日韩欧美一区二区三区在线 | 久久精品aⅴ无码中文字幕 | 91麻豆精品视频| 国产色偷丝袜婷婷无码麻豆制服| 中国精品久久| 亚洲人成网18禁| 久久久久久国产精品mv| 国内精品久久久久鸭| 91av国产在线| 一级毛片不卡片免费观看| 亚洲一区精品视频在线| 欧美成人日韩| 日本高清视频在线www色| 高清国产va日韩亚洲免费午夜电影| 国产人成在线视频| 亚洲一级毛片免费看| 久热99这里只有精品视频6| 亚洲精品爱草草视频在线| 国产一区二区在线视频观看| 久久久久亚洲精品成人网| 欧美一级高清视频在线播放| 亚洲日韩在线满18点击进入| 99视频只有精品| 尤物成AV人片在线观看| 天天激情综合| 无码区日韩专区免费系列| 日韩精品无码免费一区二区三区 | 亚洲国产成人在线| 99re热精品视频国产免费| 97亚洲色综久久精品| 欧美国产综合色视频| 无码一区中文字幕| 久久中文无码精品| 久草国产在线观看| 老司机精品一区在线视频| 伊人91在线| 丁香六月激情婷婷| 久久青草视频| 在线国产你懂的| 欧洲极品无码一区二区三区| 亚洲综合精品香蕉久久网| www.国产福利| 久久久亚洲色| 日韩国产另类| 91极品美女高潮叫床在线观看| 亚洲人精品亚洲人成在线| 午夜精品福利影院| 精品99在线观看| 欧美国产在线看| 国产麻豆另类AV| 永久在线播放| 91视频青青草| 亚洲福利视频一区二区| 国产玖玖视频| 国产女人在线观看| 久久黄色毛片| 香蕉久久国产精品免| 激情影院内射美女| 国产成人精品在线1区| 亚洲综合18p| 日韩高清欧美| 国产精品自在拍首页视频8| 国产精品lululu在线观看 |