[發明專利]一種高級編程語言間代碼自動轉換方法在審
| 申請號: | 202011617567.5 | 申請日: | 2020-12-30 |
| 公開(公告)號: | CN112732264A | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 劉毅;李家勛;李旭;肖彬 | 申請(專利權)人: | 中國船舶重工集團公司第七0九研究所 |
| 主分類號: | G06F8/40 | 分類號: | G06F8/40;G06F8/30 |
| 代理公司: | 武漢河山金堂專利事務所(普通合伙) 42212 | 代理人: | 胡清堂 |
| 地址: | 430205 湖北省武漢市*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 高級 編程 語言 代碼 自動 轉換 方法 | ||
本發明公開了一種高級編程語言間代碼自動轉換方法,包括如下步驟:S1、搜集各種編程語言大量的源代碼,作為神經模型訓練的語料庫;S2、采用自然語言翻譯中使用的跨語言的seq2seq模型進行訓練,該模型采用transformer架構。本發明采用人工智能技術,將自然語言機器翻譯中的神經模型借鑒到編程語言轉換中,經過模型訓練,實現高級編程語言間代碼自動轉換的目的,可以廣泛應用于計算機編程語言領域。
技術領域
本發明涉及計算機編程語言和人工智能領域,特別是涉及一種高級編程語言間代碼自動轉換方法。
背景技術
將高級編程語言寫成的源代碼轉自動換成另一種語言(如將C++轉換成JAVA),能夠提高代碼的復用性、減少軟件開發的工作量、縮短項目周期,具有重要的現實意義。目前主要采用源到源編譯器技術實現該功能,它通常依賴于手動編寫的重寫規則,并應用于源代碼抽象語法樹。但是,源到源編譯器存在一些缺陷,如轉換結果通常缺乏可讀性,無法遵循目標編程語言的規范,需要程序員進行手動修改才能準確運行。整個轉換過程不僅耗時,還需要程序員能夠同時掌握源語言和目標語言的專業知識,因此使用該方法進行代碼轉換項目的工作量很大,實際應用較困難。
發明內容
本發明的目的是為了克服上述背景技術的不足,提供一種高級編程語言間代碼自動轉換方法,使其針對目前高級編程語言間代碼自動轉換問題沒有好的解決辦法、自動化程度低的問題,采用人工智能技術,將自然語言機器翻譯中的神經模型借鑒到編程語言轉換中,經過模型訓練,實現高級編程語言間代碼自動轉換的目的。
本發明提供的一種高級編程語言間代碼自動轉換方法,包括如下步驟:S1、搜集各種編程語言大量的源代碼,作為神經模型訓練的語料庫;S2、采用自然語言翻譯中使用的跨語言的seq2seq模型進行訓練,該模型采用transformer架構。
在上述技術方案中,所述步驟S1中,編程語言包括C++和JAVA。
在上述技術方案中,所述步驟S2的具體步驟如下:S21、預訓練編碼器和解碼器,產生跨語言的句子表征;S22、語言建模,訓練同語種翻譯,利用去噪自編碼,訓練解碼器生成有效的序列;S23、利用回譯訓練跨語種翻譯。
在上述技術方案中,所述步驟S21的具體步驟如下:S211、采用XLM來分別預訓練編碼和解碼器,把各種編程語言語料庫放在一起,每次batch選擇一種語言;S212、使用MLM模型和TLM模型進行訓練和交互。
在上述技術方案中,所述步驟S22的具體步驟如下:S221、給輸入加上干擾,然后把它傳給機器翻譯模型;S222、解碼器重新把正確的代碼恢復,即自己翻譯自己。
在上述技術方案中,所述步驟S23的具體步驟如下:S231、利用步驟S22產生的模型進行兩次翻譯,從A語言翻譯到B語言,再從B語言到A語言,構建有監督的數據集;S232、將有監督的數據集當做信號回傳給翻譯模型進行訓練。
在上述技術方案中,還包括步驟S3、使用測試集進行對比測試,驗證模型訓練后自動轉換不同編程語言間代碼的轉換對齊質量。
在上述技術方案中,所述步驟S3的具體過程為:測試使用三個評估度量指標:BLEU值、參考匹配和計算準確率。
在上述技術方案中,所述步驟S3中,所述BLEU值用于評估生成函數的質量;參考匹配用于評估轉換結果完美匹配真值參考的比例;計算準確率用于評估當輸入相同時,假設函數是否生成與參考相同的輸出。
本發明高級編程語言間代碼自動轉換方法,具有以下有益效果:
1)僅需單語源代碼即可實現編程語言轉換,無需任何源語言或目標語言的專業知識;
2)能夠成功掌握每種語言的特定復雜模式,并將其遷移至其他高級語言;
3)代碼轉換效率和質量大幅超過利用規則的源到源編譯器方法;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國船舶重工集團公司第七0九研究所,未經中國船舶重工集團公司第七0九研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011617567.5/2.html,轉載請聲明來源鉆瓜專利網。





