亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種aadl到c語言的代碼自動(dòng)生成方法_2

文檔序號(hào):9217046閱讀:來源:國知局
件以及子程序構(gòu)件均轉(zhuǎn)換為C語言程序中的函數(shù)定義;線程構(gòu)件的功能接口轉(zhuǎn)換為 函數(shù)的輸入?yún)?shù)和輸出參數(shù),線程組構(gòu)件的功能接口轉(zhuǎn)換為函數(shù)的輸入?yún)?shù)和輸出參數(shù), 子程序構(gòu)件的功能接口轉(zhuǎn)換為函數(shù)的輸入?yún)?shù)和輸出參數(shù),子程序構(gòu)件定義中的數(shù)據(jù)構(gòu)件 轉(zhuǎn)換為局部變量定義;
[0039] 14)處理器構(gòu)件中定義調(diào)度算法,調(diào)度算法轉(zhuǎn)換為C語言程序中的函數(shù)定義; [0040] 15)進(jìn)程構(gòu)件轉(zhuǎn)換為C語言程序中的主函數(shù),進(jìn)程構(gòu)件所包含的子構(gòu)件之間的連 接關(guān)系轉(zhuǎn)換為源端函數(shù)和目標(biāo)端函數(shù),并將進(jìn)程構(gòu)件所包含的子構(gòu)件之間的連接名稱轉(zhuǎn)換 為變量定義,用于源端函數(shù)和目標(biāo)端函數(shù)之間的數(shù)據(jù)傳遞;
[0041] 16)對(duì)于系統(tǒng)調(diào)用(如創(chuàng)建任務(wù)、信號(hào)量、時(shí)鐘定時(shí)器等),因?yàn)锳ADL模型中沒有 顯式表達(dá),需在AADL模型中進(jìn)行定義。
[0042] 關(guān)于步驟2)中AADL元模型到C語言的轉(zhuǎn)換規(guī)則制定代碼自動(dòng)生成模板的說明如 下:
[0043] 代碼自動(dòng)生成模板是代碼轉(zhuǎn)換規(guī)則的載體,模板是由靜態(tài)文本和占位符組成的文 件,靜態(tài)文本是直接輸出到代碼文件中的文本,占位符是用模型中的信息替換后輸出到代 碼文件中的文本。占位符中的模型信息通過模型解析獲取。
[0044] 代碼生成模板使用Xtend語言編寫,Xtend語言是一種基于Java靜態(tài)模板語言, 通過編譯成Java語言然后運(yùn)行在Java虛擬機(jī)上執(zhí)行。
[0045] 模板形式如下:
[0046] switch語句不例:
[0047] def toText(Node n){ switch n{ Contents: n,text A:' " <a herf=〃<<n?href>>〃><<n.applyContents>></a>"' default:1 " ?<n.tagName>? <<n.applyContents>> </?n,tagName?> } }
[0048] IF和FOR語句示例:
[0049] def someHTML(List<Paragraph> paragraphs)11T <html> <body> <<FOR p: paragraphs>> ?IF p.headLine ! = null>> <hl>?p.headline?</hl> <<ENDIF>> <p>
[0050] <<p,text>> </p> ?ENDFOR? </body> </html> IFF
[0051] 使用Xtend語言的模板表達(dá)式和一組封裝的文件字符操作函數(shù)以及Xtend擴(kuò)展 函數(shù)編輯實(shí)現(xiàn)。Xtend模板表達(dá)式允許可讀的字符串連接,模板內(nèi)容由三重單引號(hào)包圍 …在模板中使用法語引號(hào)"《》"來進(jìn)行處理插入的表達(dá)式。
[0052] 模板表達(dá)式支持《IF…》…《END IF》的判斷語句,《FOR…》…《ENDF0R》的循環(huán) 語句以及可以向下轉(zhuǎn)型的switch語句處理實(shí)例模型。同時(shí),Xtend支持?jǐn)U展方法,可以在 不改變變量方法的前提下改變變量。模板可以靈活的在方法中交替出現(xiàn),既可以作為方法 體,也可以作為方法的語句。
[0053] 為了便于生成代碼過程中模板操作更加靈活,可封裝一些常用的文件操作和字符 處理方法。
[0054] 關(guān)于步驟3)中的模板引擎的說明如下:
[0055] 模板引擎依據(jù)代碼轉(zhuǎn)換規(guī)則,將代碼模板中的占位符用模型中的信息替換,輸出 到代碼文件中。
[0056] 關(guān)于步驟4)中的模板解析的說明如下:
[0057]AADL標(biāo)準(zhǔn)提供了AADL的文本、XML、圖形表示規(guī)范,為便于操作,本方法對(duì)XML文 件進(jìn)行解析。
[0058] EMF(EclipseModelingFramework)對(duì)AADL語言標(biāo)準(zhǔn)進(jìn)行了精確描述(即Ecore 模型),通過Ecore模型自動(dòng)生成一套封裝了AADL所有信息的Java數(shù)據(jù)對(duì)象,將AADL模型 轉(zhuǎn)換成高效的、正確的和易于定制的Java代碼。
[0059] 使用EMF封裝的AADL元模型數(shù)據(jù)結(jié)構(gòu)來封裝模型信息,將提取的模型信息保存到 此數(shù)據(jù)結(jié)構(gòu)中。數(shù)據(jù)結(jié)構(gòu)以系統(tǒng)實(shí)現(xiàn)為根節(jié)點(diǎn),組件為核心節(jié)點(diǎn),特征屬性等為葉節(jié)點(diǎn)呈樹 狀結(jié)構(gòu)。
[0060] 上面對(duì)本發(fā)明的實(shí)施方式做了詳細(xì)說明。但是本發(fā)明并不限于上述實(shí)施方式,在 所屬技術(shù)領(lǐng)域普通技術(shù)人員所具備的知識(shí)范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做 出各種變化。
【主權(quán)項(xiàng)】
1. 一種AADL到C語言的代碼自動(dòng)生成方法,其特征在于,包括以下步驟: 1) 根據(jù)AADL元模型的語義、目標(biāo)運(yùn)行環(huán)境的語義和C語言語法語義定義AADL元模型 到C語言的轉(zhuǎn)換規(guī)則; 2) 根據(jù)AADL模型能夠獲取的所使用的元模型及其語義、步驟1)得到的AADL元模型到 C語言的轉(zhuǎn)換規(guī)則制定代碼自動(dòng)生成模板; 3) 根據(jù)步驟2)得到的代碼自動(dòng)生成模板編寫模板轉(zhuǎn)換引擎; 4) 輸入AADL模型后,自動(dòng)對(duì)輸入的AADL模型解析,提取AADL元模型信息,按照步驟 2)中的代碼自動(dòng)生成模板,通過步驟3)得到的模板轉(zhuǎn)換引擎將AADL元模型信息生成C語 目代碼。2. 根據(jù)權(quán)利要求1所述的一種AADL到C語言的代碼自動(dòng)生成方法,其特征在于,步驟 1)中AADL元模型到C語言的轉(zhuǎn)換規(guī)則包括: IDAADL數(shù)據(jù)類型BaseJype生成C語言程序中的*.h頭文件; 12) 系統(tǒng)構(gòu)件不對(duì)應(yīng)具體的可執(zhí)行代碼,僅將系統(tǒng)構(gòu)件的功能接口轉(zhuǎn)換為函數(shù)的輸入 參數(shù)和輸出參數(shù),且將所定義的數(shù)據(jù)構(gòu)件轉(zhuǎn)換為C語言程序中的變量定義,系統(tǒng)構(gòu)件的名 稱作命名空間使用; 13) 線程構(gòu)件、線程組構(gòu)件以及子程序構(gòu)件對(duì)應(yīng)具體的可執(zhí)行代碼,線程構(gòu)件、線程組 構(gòu)件以及子程序構(gòu)件均轉(zhuǎn)換為C語言程序中的函數(shù)定義;線程構(gòu)件的功能接口轉(zhuǎn)換為函數(shù) 的輸入?yún)?shù)和輸出參數(shù),線程組構(gòu)件的功能接口轉(zhuǎn)換為函數(shù)的輸入?yún)?shù)和輸出參數(shù),子程 序構(gòu)件的功能接口轉(zhuǎn)換為函數(shù)的輸入?yún)?shù)和輸出參數(shù),子程序構(gòu)件定義中的數(shù)據(jù)構(gòu)件轉(zhuǎn)換 為局部變量定義; 14) 處理器構(gòu)件中定義調(diào)度算法,調(diào)度算法轉(zhuǎn)換為C語言程序中的函數(shù)定義; 15) 進(jìn)程構(gòu)件轉(zhuǎn)換為C語言程序中的主函數(shù),進(jìn)程構(gòu)件所包含的子構(gòu)件之間的連接關(guān) 系轉(zhuǎn)換為源端函數(shù)和目標(biāo)端函數(shù),并將進(jìn)程構(gòu)件所包含的子構(gòu)件之間的連接名稱轉(zhuǎn)換為變 量定義,用于源端函數(shù)和目標(biāo)端函數(shù)之間的數(shù)據(jù)傳遞; 16) 對(duì)于系統(tǒng)調(diào)用,需在AADL模型中進(jìn)行定義。
【專利摘要】本發(fā)明涉及一種AADL到C語言的代碼自動(dòng)生成方法,其包括以下步驟:1)根據(jù)AADL元模型的語義、目標(biāo)運(yùn)行環(huán)境的語義和C語言語法語義定義AADL元模型到C語言的轉(zhuǎn)換規(guī)則;2)根據(jù)AADL模型能夠獲取的所使用的元模型及其語義、AADL元模型到C語言的轉(zhuǎn)換規(guī)則制定代碼自動(dòng)生成模板;3)根據(jù)代碼自動(dòng)生成模板編寫模板轉(zhuǎn)換引擎;4)輸入AADL模型后,自動(dòng)對(duì)輸入的AADL模型解析,提取AADL元模型信息,按照代碼自動(dòng)生成模板,通過模板轉(zhuǎn)換引擎將AADL元模型信息生成C語言代碼。本發(fā)明具有以下有益效果:1定義了AADL模型到C語言的轉(zhuǎn)換規(guī)則,有效解決AADL與C語言語義映射;2通過模板引擎提高代碼轉(zhuǎn)換效率。
【IPC分類】G06F9/44
【公開號(hào)】CN104932905
【申請(qǐng)?zhí)枴緾N201510413384
【發(fā)明人】劉姝, 王曉晗
【申請(qǐng)人】北京神舟航天軟件技術(shù)有限公司
【公開日】2015年9月23日
【申請(qǐng)日】2015年7月14日
當(dāng)前第2頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1