亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

修復(fù)補(bǔ)丁生成方法、存儲介質(zhì)及電子裝置與流程

文檔序號:40380161發(fā)布日期:2024-12-20 12:02閱讀:4來源:國知局
修復(fù)補(bǔ)丁生成方法、存儲介質(zhì)及電子裝置與流程

本發(fā)明實(shí)施例涉及計(jì)算機(jī),具體而言,涉及一種修復(fù)補(bǔ)丁生成方法、存儲介質(zhì)及電子裝置。


背景技術(shù):

1、目前,基于深度學(xué)習(xí)的語法制導(dǎo)的程序缺陷修復(fù)方法,僅能保證生成的修復(fù)補(bǔ)丁符合語法規(guī)則,但深度學(xué)習(xí)模型中的神經(jīng)網(wǎng)絡(luò)無法感知到程序的類型規(guī)則,容易生成大量的類型不正確補(bǔ)丁,盡管這些補(bǔ)丁最終可以被編譯器過濾掉,但在編譯大型工程時(shí),過濾這些類型不正確補(bǔ)丁需要耗費(fèi)大量的時(shí)間,缺陷修復(fù)系統(tǒng)的效率較低;而使用搜索算法來確定概率較高的語法規(guī)則路徑,神經(jīng)網(wǎng)絡(luò)還可能未類型不正確的語法規(guī)則賦予較高概率,如此,可能將正確補(bǔ)丁排除在候選補(bǔ)丁之外,導(dǎo)致無法修復(fù)缺陷。

2、如何抽象代碼的類型、神經(jīng)網(wǎng)絡(luò)如何表示并學(xué)習(xí)類型規(guī)則是有待解決的技術(shù)問題。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明實(shí)施例提供了一種修復(fù)補(bǔ)丁生成方法、存儲介質(zhì)及電子裝置,以至少解決相關(guān)技術(shù)中已有的深度學(xué)習(xí)缺陷代碼修復(fù)方法缺少學(xué)習(xí)類型信息能力的問題。

2、根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種修復(fù)補(bǔ)丁生成方法,包括:將含有缺陷代碼的程序代碼構(gòu)造成第一抽象語法樹,通過類型流圖構(gòu)造器將所述第一抽象語法樹轉(zhuǎn)化為類型流圖,其中,所述第一抽象語法樹中攜帶類型信息;遍歷所述類型流圖獲得節(jié)點(diǎn)序列、屬性序列以及關(guān)系矩陣,將所述節(jié)點(diǎn)序列、所述屬性序列、所述關(guān)系矩陣輸入類型流圖編碼器,得到特征向量;將所述特征向量以及語法規(guī)則詞表輸入語法制導(dǎo)生成器,得到第二抽象語法樹,并對所述第二抽象語法樹進(jìn)行代碼實(shí)例化,以生成修復(fù)補(bǔ)丁,其中,所述第二抽象語法樹中攜帶所述類型信息。

3、根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)中存儲有計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被設(shè)置為運(yùn)行時(shí)執(zhí)行上述任一項(xiàng)方法實(shí)施例中的步驟。

4、根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種電子裝置,包括存儲器和處理器,所述存儲器中存儲有計(jì)算機(jī)程序,所述處理器被設(shè)置為運(yùn)行所述計(jì)算機(jī)程序以執(zhí)行上述任一項(xiàng)方法實(shí)施例中的步驟。

5、通過本發(fā)明上述實(shí)施例,將缺陷代碼構(gòu)造成可攜帶類型信息的第一抽象語法樹,實(shí)現(xiàn)了對代碼類型進(jìn)行抽象;而由第一抽象語法樹轉(zhuǎn)化而來的類型流圖中,可將程序代碼中的語法規(guī)則與類型規(guī)則進(jìn)行有機(jī)融合,進(jìn)而,基于類型流圖得到的特征向量與語法規(guī)則詞表輸入語法制導(dǎo)生成器而得到的第二抽象語法樹將攜帶類型信息,而由第二抽象語法樹得到的修復(fù)補(bǔ)丁代碼便會被賦予類型約束。因此,可以解決相關(guān)技術(shù)中已有的深度學(xué)習(xí)缺陷代碼修復(fù)方法缺少學(xué)習(xí)類型信息能力的問題,達(dá)到擴(kuò)展已有的深度學(xué)習(xí)缺陷代碼修復(fù)方法的能力的效果。



技術(shù)特征:

1.一種修復(fù)補(bǔ)丁生成方法,其特征在于,包括:

2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將含有缺陷代碼的程序代碼構(gòu)造成第一抽象語法樹之前,所述方法還包括:

3.根據(jù)權(quán)利要求2所述的方法,其特征在于,其中,所述第一抽象語法樹中的葉子節(jié)點(diǎn)由抽象所述程序代碼中的常量、變量、操作符而得到;

4.根據(jù)權(quán)利要求3所述的方法,其特征在于,其中,所述類型信息包括以下類型:通用類型、字符串類型、數(shù)值類型、布爾類型和空類型;

5.根據(jù)權(quán)利要求4所述的方法,其特征在于,其中,

6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述程序代碼或所述程序源碼語料中的操作符的類型由其操作數(shù)類型決定,包括:

7.根據(jù)權(quán)利要求4所述的方法,其特征在于,其中,

8.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過類型流圖構(gòu)造器將所述第一抽象語法樹轉(zhuǎn)化為類型流圖,包括:

9.根據(jù)權(quán)利要求8所述的方法,其特征在于,其中,

10.根據(jù)權(quán)利要求8所述的方法,其特征在于,遍歷所述類型流圖獲得節(jié)點(diǎn)序列,包括:

11.根據(jù)權(quán)利要求10所述的方法,其特征在于,遍歷所述類型流圖獲得屬性序列,包括:

12.根據(jù)權(quán)利要求11所述的方法,其特征在于,其中,所述抽象語法樹節(jié)點(diǎn)包括以下屬性:類型屬性、可復(fù)制性;所述變量節(jié)點(diǎn)包括以下屬性:類型屬性、可訪問性。

13.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述節(jié)點(diǎn)序列、所述屬性序列、所述關(guān)系矩陣輸入類型流圖編碼器,得到一個(gè)特征向量,包括:

14.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中,所述特征向量的值為浮點(diǎn)數(shù)。

15.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述特征向量以及語法規(guī)則詞表輸入語法制導(dǎo)生成器,得到第二抽象語法樹,包括:

16.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲介質(zhì)中存儲有計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述權(quán)利要求1至15任一項(xiàng)中所述的方法的步驟。

17.一種電子裝置,包括存儲器、處理器以及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)所述權(quán)利要求1至15任一項(xiàng)中所述的方法的步驟。


技術(shù)總結(jié)
本發(fā)明實(shí)施例提供了一種修復(fù)補(bǔ)丁生成方法、存儲介質(zhì)及電子裝置。該方法包括:將含有缺陷代碼的程序代碼構(gòu)造成第一抽象語法樹,通過類型流圖構(gòu)造器將所述第一抽象語法樹轉(zhuǎn)化為類型流圖,其中,第一抽象語法樹中攜帶類型信息;遍歷類型流圖獲得節(jié)點(diǎn)序列、屬性序列以及關(guān)系矩陣,將節(jié)點(diǎn)序列、屬性序列、關(guān)系矩陣輸入類型流圖編碼器,得到特征向量;將特征向量以及語法規(guī)則詞表輸入語法制導(dǎo)生成器,得到第二抽象語法樹,并對第二抽象語法樹進(jìn)行代碼實(shí)例化,以生成修復(fù)補(bǔ)丁,其中,所述第二抽象語法樹中攜帶所述類型信息。通過本發(fā)明實(shí)施例,解決了相關(guān)技術(shù)中已有的深度學(xué)習(xí)缺陷代碼修復(fù)方法缺少學(xué)習(xí)類型信息能力的問題。

技術(shù)研發(fā)人員:彭星海,劉東,朱琪豪,曹繼承,程圣宇,熊英飛,肖元安
受保護(hù)的技術(shù)使用者:中興通訊股份有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2024/12/19
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1