[發明專利]一種高級編程語言間代碼自動轉換方法在審
| 申請號: | 202011617567.5 | 申請日: | 2020-12-30 |
| 公開(公告)號: | CN112732264A | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 劉毅;李家勛;李旭;肖彬 | 申請(專利權)人: | 中國船舶重工集團公司第七0九研究所 |
| 主分類號: | G06F8/40 | 分類號: | G06F8/40;G06F8/30 |
| 代理公司: | 武漢河山金堂專利事務所(普通合伙) 42212 | 代理人: | 胡清堂 |
| 地址: | 430205 湖北省武漢市*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 高級 編程 語言 代碼 自動 轉換 方法 | ||
1.一種高級編程語言間代碼自動轉換方法,其特征在于:包括如下步驟:
S1、搜集各種編程語言大量的源代碼,作為神經模型訓練的語料庫;
S2、采用自然語言翻譯中使用的跨語言的seq2seq模型進行訓練,該模型采用transformer架構。
2.根據權利要求1所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S1中,編程語言包括C++和JAVA。
3.根據權利要求2所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S2的具體步驟如下:
S21、預訓練編碼器和解碼器,產生跨語言的句子表征;
S22、語言建模,訓練同語種翻譯,利用去噪自編碼,訓練解碼器生成有效的序列;
S23、利用回譯訓練跨語種翻譯。
4.根據權利要求3所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S21的具體步驟如下:
S211、采用XLM來分別預訓練編碼和解碼器,把各種編程語言語料庫放在一起,每次batch選擇一種語言;
S212、使用MLM模型和TLM模型進行訓練和交互。
5.根據權利要求4所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S22的具體步驟如下:
S221、給輸入加上干擾,然后把它傳給機器翻譯模型;
S222、解碼器重新把正確的代碼恢復,即自己翻譯自己。
6.根據權利要求5所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S23的具體步驟如下:
S231、利用步驟S22產生的模型進行兩次翻譯,從A語言翻譯到B語言,再從B語言到A語言,構建有監督的數據集;
S232、將有監督的數據集當做信號回傳給翻譯模型進行訓練。
7.根據權利要求6所述的高級編程語言間代碼自動轉換方法,其特征在于:還包括步驟S3、使用測試集進行對比測試,驗證模型訓練后自動轉換不同編程語言間代碼的轉換對齊質量。
8.根據權利要求7所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S3的具體過程為:測試使用三個評估度量指標:BLEU值、參考匹配和計算準確率。
9.根據權利要求7所述的高級編程語言間代碼自動轉換方法,其特征在于:所述步驟S3中,所述BLEU值用于評估生成函數的質量;參考匹配用于評估轉換結果完美匹配真值參考的比例;計算準確率用于評估當輸入相同時,假設函數是否生成與參考相同的輸出。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國船舶重工集團公司第七0九研究所,未經中國船舶重工集團公司第七0九研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011617567.5/1.html,轉載請聲明來源鉆瓜專利網。





