[發(fā)明專利]一種軟件源碼語言翻譯系統(tǒng)及方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410376235.0 | 申請(qǐng)日: | 2014-08-03 |
| 公開(公告)號(hào): | CN104391730B | 公開(公告)日: | 2017-07-11 |
| 發(fā)明(設(shè)計(jì))人: | 楊朝暉;馬滿材;李洋;鄧高超;周波;李善平;孫建伶 | 申請(qǐng)(專利權(quán))人: | 浙江網(wǎng)新恒天軟件有限公司 |
| 主分類號(hào): | G06F9/45 | 分類號(hào): | G06F9/45;G06F9/44;G06F17/30 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司33200 | 代理人: | 邱啟旺 |
| 地址: | 310012 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 軟件 源碼 語言 翻譯 系統(tǒng) 方法 | ||
1.一種軟件源碼語言翻譯系統(tǒng),其特征在于,包括:
程序?qū)ο竽P凸芾砟K:用于管理作為翻譯中間產(chǎn)物的程序?qū)ο竽P停瑢?duì)程序?qū)ο竽P偷墓芾戆P偷膭?chuàng)建、存儲(chǔ)、查詢和修改;其中,所述程序?qū)ο竽P桶ㄕZ法樹和符號(hào)信息表;對(duì)語法樹的管理包括創(chuàng)建語法樹節(jié)點(diǎn),設(shè)置語法樹節(jié)點(diǎn)屬性,讀取語法樹節(jié)點(diǎn)屬性,設(shè)置語法樹節(jié)點(diǎn)間父子關(guān)系,根據(jù)語法樹節(jié)點(diǎn)間父子關(guān)系遍歷語法樹節(jié)點(diǎn);對(duì)符號(hào)信息表的管理包括創(chuàng)建基本符號(hào)信息表,創(chuàng)建符號(hào)對(duì)象,刪除符號(hào)對(duì)象,設(shè)置符號(hào)對(duì)象屬性,按符號(hào)名稱查詢基本符號(hào)信息表,設(shè)置基本符號(hào)信息表級(jí)聯(lián)關(guān)系,按符號(hào)名稱查詢級(jí)聯(lián)的符號(hào)信息表,設(shè)置符號(hào)對(duì)象與語法樹節(jié)點(diǎn)的定義關(guān)聯(lián)和引用關(guān)聯(lián);
轉(zhuǎn)換規(guī)則庫:用于管理源碼解析規(guī)則,模型轉(zhuǎn)換規(guī)則和代碼生成規(guī)則;其中源碼解析規(guī)則,包括程序語法規(guī)則和符號(hào)定義規(guī)則;所述程序語法規(guī)則以EBNF范式的形式描述程序語言中合法的語法單元和層次關(guān)系;所述符號(hào)定義規(guī)則描述語法樹節(jié)點(diǎn)與符號(hào)對(duì)象的對(duì)應(yīng)關(guān)系;模型轉(zhuǎn)換規(guī)則為<第一模式部,條件部,動(dòng)作部>三元組形式;其中第一模式部描述該規(guī)則所能轉(zhuǎn)換的語法樹節(jié)點(diǎn)類型和子樹結(jié)構(gòu);條件部描述滿足模式的語法樹子樹中各節(jié)點(diǎn)屬性需要進(jìn)一步滿足的條件;動(dòng)作部描述模式及條件均滿足時(shí),相應(yīng)生成的新語法樹子樹,以及對(duì)應(yīng)填入符號(hào)信息表中的符號(hào)對(duì)象;代碼生成規(guī)則為<第二模式部,目標(biāo)模板部>的二元組形式;其中第二模式部用于描述指定結(jié)構(gòu)的語法子樹,當(dāng)模式匹配時(shí)提取模式中指定位置的變量;目標(biāo)模板部描述相應(yīng)生成的文本的目標(biāo)代碼模板,在模式部匹配語法子樹時(shí)提取的變量用于填充模板中的占位符;轉(zhuǎn)換規(guī)則庫對(duì)規(guī)則的管理包括規(guī)則的創(chuàng)建、刪除、查看、編輯、導(dǎo)入和導(dǎo)出;
源碼解析模塊:分別與轉(zhuǎn)換規(guī)則庫和程序?qū)ο竽P凸芾砟K相連,用于從轉(zhuǎn)換規(guī)則庫取得定制的源碼解析規(guī)則并予以執(zhí)行,逐個(gè)解析程序源碼,通過調(diào)用程序?qū)ο竽P凸芾砟K創(chuàng)建和保存等價(jià)的結(jié)構(gòu)化的程序?qū)ο竽P停凰鼋馕龀绦蛟创a,包括使用詞法解析程序?qū)⒃创a切分為詞法單元,使用語法解析程序分析詞法單元序列表達(dá)的語法結(jié)構(gòu),組織反映語法結(jié)構(gòu)的語法樹,以及遍歷語法樹,從中提取其中的符號(hào)定義和引用信息;
程序?qū)ο竽P娃D(zhuǎn)換引擎:分別與轉(zhuǎn)換規(guī)則庫和程序?qū)ο竽P凸芾砟K相連,用于從轉(zhuǎn)換規(guī)則庫取得定制的模型轉(zhuǎn)換規(guī)則并予以執(zhí)行,對(duì)程序?qū)ο竽P蛯?shí)施轉(zhuǎn)換;所述程序?qū)ο竽P偷霓D(zhuǎn)換包括語法樹的轉(zhuǎn)換和符號(hào)信息表的轉(zhuǎn)換;所述語法樹的轉(zhuǎn)換是指改變語法樹的結(jié)構(gòu)和屬性的操作,包括修改語法樹節(jié)點(diǎn)屬性,修改語法樹節(jié)點(diǎn)間父子關(guān)系,創(chuàng)建和插入新的語法樹節(jié)點(diǎn),刪除語法樹節(jié)點(diǎn);所述符號(hào)信息表的轉(zhuǎn)換是指改變符號(hào)信息表所記錄的符號(hào)信息的操作,包括修改符號(hào)對(duì)象屬性,創(chuàng)建和插入新的符號(hào)對(duì)象,刪除符號(hào)對(duì)象,修改符號(hào)信息表級(jí)聯(lián)關(guān)系;
目標(biāo)語言生成模塊:分別與轉(zhuǎn)換規(guī)則庫和程序?qū)ο竽P凸芾砟K相連,從轉(zhuǎn)換規(guī)則庫取得定制的代碼生成規(guī)則并予以執(zhí)行,生成目標(biāo)語言源代碼;該模塊包含目標(biāo)代碼模板引擎和源代碼-目標(biāo)代碼關(guān)聯(lián)模塊;其中,所述目標(biāo)代碼模板引擎根據(jù)代碼生成規(guī)則,從程序?qū)ο竽P偷恼Z法樹節(jié)點(diǎn)中提取屬性信息,包括讀取語法樹節(jié)點(diǎn)本身屬性,以及查詢語法樹節(jié)點(diǎn)相關(guān)聯(lián)的符號(hào)對(duì)象屬性;所提取屬性信息用于填充指定的代碼模板,生成該語法樹節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)代碼;在執(zhí)行代碼生成規(guī)則的同時(shí),源代碼-目標(biāo)代碼關(guān)聯(lián)模塊記錄語法樹節(jié)點(diǎn)對(duì)應(yīng)的源代碼以及生成的目標(biāo)代碼,用于對(duì)比查看翻譯前后的代碼,使用戶可以審查源碼翻譯的有效性。
2.根據(jù)權(quán)利要求1所述一種軟件源碼語言翻譯系統(tǒng),其特征在于,所述程序?qū)ο竽P凸芾砟K還包括對(duì)語法樹和符號(hào)信息表的持久存儲(chǔ)功能,其中,語法樹存儲(chǔ)為文本文件,符號(hào)信息表存儲(chǔ)為關(guān)系數(shù)據(jù)庫表。
3.應(yīng)用權(quán)利要求1所述軟件源碼語言翻譯系統(tǒng)的軟件源碼語言翻譯方法,其特征在于,包括以下步驟:
(1)通過轉(zhuǎn)換規(guī)則庫,用戶定制源碼解析模塊所需的源碼解析規(guī)則、程序?qū)ο竽P娃D(zhuǎn)換引擎所需的模型轉(zhuǎn)換規(guī)則和目標(biāo)語言生成模塊所需的代碼生成規(guī)則;
(2)通過程序?qū)ο竽P凸芾砟K對(duì)程序?qū)ο竽P蛯?shí)施初始化,并建立翻譯過程中必要的目標(biāo)系統(tǒng)的符號(hào)信息表;
(3)通過源碼解析模塊,執(zhí)行從步驟1獲得的源碼解析規(guī)則,逐個(gè)解析程序源碼,為每份程序源碼在程序?qū)ο竽P凸芾砟K中創(chuàng)建和保存等價(jià)的結(jié)構(gòu)化的程序?qū)ο竽P停痪唧w包括根據(jù)程序語法規(guī)則,組織生成語法樹,以及根據(jù)符號(hào)定義規(guī)則,填充符號(hào)信息表;
(4)通過程序?qū)ο竽P凸芾砟K對(duì)步驟3得到的語法樹和符號(hào)信息表進(jìn)行存儲(chǔ)和索引;
(5)通過程序?qū)ο竽P娃D(zhuǎn)換引擎,執(zhí)行步驟1得到的模型轉(zhuǎn)換規(guī)則,對(duì)程序模型實(shí)施轉(zhuǎn)換;在每一份程序源碼的程序?qū)ο竽P蜕希绦驅(qū)ο竽P娃D(zhuǎn)換引擎從其中的語法樹根節(jié)點(diǎn)開始執(zhí)行模型轉(zhuǎn)換規(guī)則,選擇符合根節(jié)點(diǎn)類型的規(guī)則對(duì)該節(jié)點(diǎn)實(shí)施轉(zhuǎn)換,并觸發(fā)對(duì)子節(jié)點(diǎn)的轉(zhuǎn)換;對(duì)子節(jié)點(diǎn)的轉(zhuǎn)換過程與根節(jié)點(diǎn)相同,依次遞歸,完成整個(gè)語法樹全部節(jié)點(diǎn)的遍歷和轉(zhuǎn)換;當(dāng)轉(zhuǎn)換一個(gè)語法樹節(jié)點(diǎn)時(shí),同時(shí)取得與語法樹節(jié)點(diǎn)關(guān)聯(lián)的符號(hào)對(duì)象,實(shí)施相關(guān)聯(lián)的符號(hào)信息轉(zhuǎn)換;最終得到轉(zhuǎn)換后的程序?qū)ο竽P停ǜ碌恼Z法樹和符號(hào)信息表;
(6)通過程序?qū)ο竽P凸芾砟K對(duì)步驟5得到的更新的語法樹和符號(hào)信息表進(jìn)行存儲(chǔ)和索引;
(7)通過目標(biāo)語言生成模塊,執(zhí)行步驟1得到的代碼生成規(guī)則,按照自底向上的次序,將語法樹中子節(jié)點(diǎn)所生成的目標(biāo)代碼用于填充父節(jié)點(diǎn)的代碼模板,處理至語法樹根節(jié)點(diǎn)時(shí),生成一份完整的目標(biāo)語言源代碼,保存于指定的代碼文件;
(8)用戶利用目標(biāo)語言生成模塊記錄的源代碼-目標(biāo)代碼關(guān)聯(lián)信息,對(duì)比查看翻譯前后的程序代碼,當(dāng)發(fā)現(xiàn)使用的規(guī)則存在問題,則轉(zhuǎn)到步驟1,修改轉(zhuǎn)換規(guī)則庫中的相關(guān)規(guī)則,重新執(zhí)行轉(zhuǎn)換過程,直至不再需要修改規(guī)則。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙江網(wǎng)新恒天軟件有限公司,未經(jīng)浙江網(wǎng)新恒天軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410376235.0/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法
- 坐席資源碼的分配方法和分配系統(tǒng)
- 一種服務(wù)器軟件源碼開發(fā)管理方法
- 基于源碼庫上傳容器鏡像至鏡像倉庫的方法及系統(tǒng)
- 一種漏洞檢測(cè)方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)
- 商品的溯源碼關(guān)聯(lián)方法及裝置
- 一種基于數(shù)據(jù)可執(zhí)行特征的網(wǎng)頁后門檢測(cè)方法與系統(tǒng)
- 文件打包方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 源碼轉(zhuǎn)換方法、裝置、計(jì)算機(jī)設(shè)備及可讀存儲(chǔ)介質(zhì)
- 一種多人模式下修改源碼文件的方法、系統(tǒng)及介質(zhì)
- 一種牲畜胴體表皮溯源碼噴印方法、噴碼機(jī)、溯源碼和服務(wù)器
- 自動(dòng)檢測(cè)文件中搭配錯(cuò)誤的系統(tǒng)和方法
- 網(wǎng)絡(luò)連接裝置及網(wǎng)絡(luò)連接裝置的語言環(huán)境設(shè)定方法
- 一種口語評(píng)測(cè)方法及裝置
- 一種語言設(shè)置方法及移動(dòng)終端
- 一種語言文本加載方法和裝置
- 一種語言交流人工智能系統(tǒng)及其語言處理方法
- 語言序列標(biāo)注方法、裝置存儲(chǔ)介質(zhì)及計(jì)算機(jī)設(shè)備
- 一種基于語言包實(shí)現(xiàn)繼電保護(hù)裝置多語言版本方法及裝置
- 一種應(yīng)用軟件的多語言核對(duì)方法及系統(tǒng)
- 多語言字幕顯示方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)





