[發(fā)明專利]基于RINSIM仿真平臺的C語言編譯方法及裝置在審
| 申請?zhí)枺?/td> | 202111036453.6 | 申請日: | 2021-09-06 |
| 公開(公告)號: | CN113946338A | 公開(公告)日: | 2022-01-18 |
| 發(fā)明(設(shè)計(jì))人: | 侯雪燕;劉偉;張大志;景應(yīng)剛 | 申請(專利權(quán))人: | 中核武漢核電運(yùn)行技術(shù)股份有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 核工業(yè)專利中心 11007 | 代理人: | 王朋 |
| 地址: | 430223 湖北省武漢*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 rinsim 仿真 平臺 語言 編譯 方法 裝置 | ||
1.一種基于RINSIM仿真平臺的C語言編譯方法,其特征在于,所述方法包括:
在檢測到待編譯的源程序包括變量時(shí),根據(jù)該變量生成符合所述RINSIM仿真平臺的編譯規(guī)則的變量信息,并將該變量信息添加至變量數(shù)據(jù)庫;
在檢測所述源程序包括符合所述編譯規(guī)則的函數(shù)時(shí),將該函數(shù)的函數(shù)信息添加至模塊數(shù)據(jù)庫;
根據(jù)檢測到的多個(gè)具有相同名稱特征的多態(tài)子函數(shù),生成符合所述編譯規(guī)則的模糊多態(tài)函數(shù),將該多個(gè)具有相同名稱特征的多態(tài)子函數(shù)中的一個(gè)多態(tài)子函數(shù)替換為該模糊多態(tài)函數(shù),并將該模塊多態(tài)函數(shù)的函數(shù)信息添加至模塊數(shù)據(jù)庫,該模糊多態(tài)函數(shù)能夠?qū)崿F(xiàn)該多個(gè)具有相同名稱特征的多態(tài)子函數(shù)的全部功能;
對所述源程序進(jìn)行編譯預(yù)處理的過程中,針對所述源程序,根據(jù)所述變量數(shù)據(jù)庫和所述模塊數(shù)據(jù)庫生成頭文件,所述頭文件定義了所述源程序中各變量符合所述編譯規(guī)則的實(shí)際位置信息,忽略所述源程序中的多態(tài)子函數(shù),并定義了函數(shù)符合所述編譯規(guī)則的格式;
根據(jù)所述頭文件,對所述源程序進(jìn)行編譯,生成目標(biāo)程序。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,針對所述源程序,根據(jù)所述變量數(shù)據(jù)庫和所述模塊數(shù)據(jù)庫生成頭文件,包括:
在檢測到所述源程序中的語句包含全局變量區(qū)及變量的情況下,在該段語句前標(biāo)注第一類標(biāo)識;
對所述源程序進(jìn)行逐行掃描,若檢測到所述源程序的語句包含第一類標(biāo)識,則截取該語句對應(yīng)的變量名,并根據(jù)所述變量數(shù)據(jù)庫,確定該變量的變量信息;
根據(jù)該變量的變量信息,確定該變量的實(shí)際位置信息;
根據(jù)每個(gè)變量的實(shí)際位置信息,在頭文件中定義每個(gè)變量的實(shí)際位置。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)該變量的變量信息,確定該變量的實(shí)際位置信息,包括:
在截取到的變量為數(shù)組變量的情況下,根據(jù)該變量的下標(biāo)及起始位置,確定該變量的實(shí)際位置信息;
在截取到的變量為復(fù)雜變量的情況下,根據(jù)該變量的字段偏移及父節(jié)點(diǎn)位置信息,確定該變量的實(shí)際位置信息。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)每個(gè)變量的實(shí)際位置信息,在頭文件中定義每個(gè)變量的實(shí)際位置,包括:
根據(jù)每個(gè)變量的實(shí)際位置信息,生成內(nèi)存列表和第一符號鏈表,所述內(nèi)存列表包括所述源程序的各變量對應(yīng)的實(shí)際位置信息,所述第一符號鏈表包括所述源程序的各變量名;
遍歷所述內(nèi)存列表,在頭文件中按C語言格式生成每個(gè)被引用內(nèi)存的用extern char修飾的定義,并定義靜態(tài)指針變量指向該被引用內(nèi)存區(qū);
遍歷所述第一符號鏈表,在檢測到全局變量時(shí),在頭文件中生成用#define修飾的C語言宏定義,將該全局變量與該全局變量的實(shí)際位置信息綁定。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,針對所述源程序,根據(jù)所述變量數(shù)據(jù)庫和所述模塊數(shù)據(jù)庫生成頭文件,還包括:
在檢測到所述源程序中的語句包含主函數(shù)的情況下,在該段語句前標(biāo)注第二類標(biāo)識,在檢測到所述源程序中的語句包含多態(tài)函數(shù)的情況下,在該段語句前標(biāo)注第三類標(biāo)識;
對所述源程序進(jìn)行逐行掃描,進(jìn)行以下操作:
若檢測到所述源程序的語句包含第二類標(biāo)識,則截取該語句的主函數(shù)名,在所述模塊數(shù)據(jù)庫中包含截取到的主函數(shù)名時(shí),將該主函數(shù)名添加到第二符號鏈表中;
若檢測到所述源程序的語句包含第三類標(biāo)識,則截取該語句的多態(tài)子函數(shù)名,在所述模塊數(shù)據(jù)庫中包含截取到的多態(tài)子函數(shù)名時(shí),將該多態(tài)子函數(shù)名添加到第二符號鏈表和多態(tài)列表中;
結(jié)束對所述源程序的逐行掃描,生成第二符號鏈表和多態(tài)列表,所述第二符號鏈表包括所述源程序的各函數(shù),所述多態(tài)列表包括所述源程序的各多態(tài)子函數(shù);
遍歷所述第二符號鏈表,在檢測到子函數(shù)時(shí),判斷該子函數(shù)是否存在于所述多態(tài)列表,若該該子函數(shù)存在于所述多態(tài)列表中,則在頭文件中定義忽略該子函數(shù),若該子函數(shù)不存在于所述多態(tài)列表中,則在頭文件的宏定義中將該子函數(shù)名修改為符合所述編譯規(guī)則的格式。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中核武漢核電運(yùn)行技術(shù)股份有限公司,未經(jīng)中核武漢核電運(yùn)行技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111036453.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





