本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種代碼生成方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著現(xiàn)代工業(yè)系統(tǒng)復(fù)雜度的增加,modelica模型的規(guī)模也逐漸增大。這些大規(guī)模模型中可能包含了十萬(wàn)、百萬(wàn)甚至更大規(guī)模的變量和方程。modelica模型的仿真通常需要將其轉(zhuǎn)化為可執(zhí)行代碼,例如,c語(yǔ)言代碼。然而,代碼生成技術(shù)在處理modelica模型時(shí),往往直接將模型邏輯轉(zhuǎn)換為單個(gè)c函數(shù),存放在單個(gè)c文件中。在面對(duì)大規(guī)模的modelica模型時(shí),往往會(huì)使得生成的c文件及c函數(shù)所包含的代碼量很多。這種代碼量過(guò)于龐大的c代碼單元,不僅編譯效率比較低,而且可能超過(guò)主流c編譯器的最大代碼處理能力。
2、現(xiàn)有技術(shù)中,主要是通過(guò)人工方式將modelica模型拆分成多個(gè)子系統(tǒng),對(duì)每個(gè)子系統(tǒng)分別生成代碼進(jìn)行編譯,最后將其組合起來(lái)進(jìn)行仿真處理。但是,基于人工方式進(jìn)行上述處理,不僅造成了大量的人力成本,處理效率比較低,而且依靠人工經(jīng)驗(yàn)進(jìn)行處理,可能存在拆分不合適不準(zhǔn)確的問(wèn)題,不利于后續(xù)modelica模型的維護(hù)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種代碼生成方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),實(shí)現(xiàn)了對(duì)目標(biāo)模型的合理化拆分和代碼生成處理,提高了代碼編譯效率,方便了后續(xù)對(duì)目標(biāo)模型的維護(hù)。
2、根據(jù)本發(fā)明的一方面,提供了一種代碼生成方法,應(yīng)用于modelica模型,該方法包括:
3、獲取目標(biāo)模型對(duì)應(yīng)的待處理變量信息,其中,待處理變量信息中包括:多個(gè)待處理變量和與每個(gè)待處理變量相對(duì)應(yīng)的變量關(guān)聯(lián)信息;
4、依據(jù)變量關(guān)聯(lián)信息中待處理變量的變量類(lèi)型,對(duì)待處理變量信息進(jìn)行劃分處理,得到與變量類(lèi)型相對(duì)應(yīng)的至少一個(gè)待使用變量信息;
5、對(duì)至少一個(gè)待使用變量信息進(jìn)行代碼生成處理,以在函數(shù)代碼行數(shù)滿(mǎn)足第一預(yù)設(shè)條件時(shí),得到目標(biāo)模型對(duì)應(yīng)的多個(gè)輸出函數(shù);
6、將多個(gè)輸出函數(shù)寫(xiě)入待處理文件中,以在文件代碼行數(shù)滿(mǎn)足第二預(yù)設(shè)條件時(shí),得到目標(biāo)模型對(duì)應(yīng)的目標(biāo)代碼文件,其中,待處理文件為按照預(yù)設(shè)文件生成規(guī)則生成的,用于存儲(chǔ)輸出函數(shù)的文件。
7、根據(jù)本發(fā)明的另一方面,提供了一種代碼生成裝置,應(yīng)用于modelica模型,該裝置包括:
8、變量信息獲取模塊,用于獲取目標(biāo)模型對(duì)應(yīng)的待處理變量信息,其中,待處理變量信息中包括:多個(gè)待處理變量和與每個(gè)待處理變量相對(duì)應(yīng)的變量關(guān)聯(lián)信息;
9、待使用變量信息確定模塊,用于依據(jù)變量關(guān)聯(lián)信息中待處理變量的變量類(lèi)型,對(duì)待處理變量信息進(jìn)行劃分處理,得到與變量類(lèi)型相對(duì)應(yīng)的至少一個(gè)待使用變量信息;
10、代碼生成模塊,用于對(duì)至少一個(gè)待使用變量信息進(jìn)行代碼生成處理,以在函數(shù)代碼行數(shù)滿(mǎn)足第一預(yù)設(shè)條件時(shí),得到目標(biāo)模型對(duì)應(yīng)的多個(gè)輸出函數(shù);
11、目標(biāo)代碼文件確定模塊,用于將多個(gè)輸出函數(shù)寫(xiě)入待處理文件中,以在文件代碼行數(shù)滿(mǎn)足第二預(yù)設(shè)條件時(shí),得到目標(biāo)模型對(duì)應(yīng)的目標(biāo)代碼文件,其中,待處理文件為按照預(yù)設(shè)文件生成規(guī)則生成的,用于存儲(chǔ)輸出函數(shù)的文件。
12、根據(jù)本發(fā)明的另一方面,提供了一種電子設(shè)備,該電子設(shè)備包括:
13、至少一個(gè)處理器;以及
14、與至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
15、存儲(chǔ)器存儲(chǔ)有可被至少一個(gè)處理器執(zhí)行的計(jì)算機(jī)程序,計(jì)算機(jī)程序被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器能夠執(zhí)行本發(fā)明任一實(shí)施例的代碼生成方法。
16、根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明任一實(shí)施例的代碼生成方法。
17、根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,該計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如本發(fā)明任一實(shí)施例的代碼生成方法。
18、本發(fā)明實(shí)施例的技術(shù)方案,應(yīng)用于modelica模型,通過(guò)獲取目標(biāo)模型的待處理變量信息,其中,待處理變量信息中包括多個(gè)待處理變量以及每個(gè)待處理變量的變量關(guān)聯(lián)信息。依據(jù)變量關(guān)聯(lián)信息中待處理變量的變量類(lèi)型,對(duì)待處理變量信息進(jìn)行劃分處理,得到與變量類(lèi)型對(duì)應(yīng)的至少一個(gè)待使用變量信息。通過(guò)對(duì)目標(biāo)模型對(duì)應(yīng)的至少一個(gè)待使用變量信息進(jìn)行代碼生成處理,以在函數(shù)代碼行數(shù)滿(mǎn)足第一預(yù)設(shè)條件的情況下,得到目標(biāo)模型對(duì)應(yīng)的多個(gè)輸出函數(shù)。將多個(gè)輸出函數(shù)寫(xiě)入待處理文件中,以在文件代碼行數(shù)滿(mǎn)足第二預(yù)設(shè)條件的情況下,得到目標(biāo)模型對(duì)應(yīng)的目標(biāo)代碼文件?;诖?,實(shí)現(xiàn)了在滿(mǎn)足第一預(yù)設(shè)條件時(shí),將目標(biāo)模型對(duì)應(yīng)的待處理變量信息生成多個(gè)輸出函數(shù),并在滿(mǎn)足第二預(yù)設(shè)條件時(shí),將多個(gè)輸出函數(shù)寫(xiě)入目標(biāo)代碼文件中,解決了由于目標(biāo)模型生成的單個(gè)文件包含的代碼量過(guò)大、單個(gè)函數(shù)的代碼量過(guò)大導(dǎo)致的編譯效率較低以及后續(xù)模型維護(hù)困難的問(wèn)題,實(shí)現(xiàn)了對(duì)目標(biāo)模型的合理化拆分和代碼生成處理,提高了代碼編譯效率,方便了后續(xù)對(duì)目標(biāo)模型的維護(hù)。
19、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本發(fā)明的實(shí)施例的關(guān)鍵或重要特征,也不用于限制本發(fā)明的范圍。本發(fā)明的其它特征將通過(guò)以下的說(shuō)明書(shū)而變得容易理解。
1.一種代碼生成方法,其特征在于,應(yīng)用于modelica模型,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述至少一個(gè)待使用變量信息進(jìn)行代碼生成處理,以在函數(shù)代碼行數(shù)滿(mǎn)足第一預(yù)設(shè)條件時(shí),得到所述目標(biāo)模型對(duì)應(yīng)的多個(gè)輸出函數(shù),包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對(duì)所述待處理函數(shù)進(jìn)行拆分處理,得到多個(gè)輸出函數(shù),包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述對(duì)所述待處理函數(shù)進(jìn)行拆分處理時(shí),所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述多個(gè)輸出函數(shù)寫(xiě)入待處理文件中,以在文件代碼行數(shù)滿(mǎn)足第二預(yù)設(shè)條件時(shí),得到所述目標(biāo)模型對(duì)應(yīng)的目標(biāo)代碼文件,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述在所述目標(biāo)模型對(duì)應(yīng)的多個(gè)輸出函數(shù)寫(xiě)入完成,且所述文件代碼行數(shù)未達(dá)到預(yù)設(shè)文件代碼行數(shù)時(shí),得到目標(biāo)代碼文件,包括:
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括:
8.一種代碼生成裝置,其特征在于,應(yīng)用于modelica模型,包括:
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-7中任一項(xiàng)所述的代碼生成方法。