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