亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于功能的程序表示研究

        2018-04-24 07:58:45陳功
        現(xiàn)代計(jì)算機(jī) 2018年8期
        關(guān)鍵詞:前置條件三元組后置

        陳功

        (四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)

        0 引言

        隨著軟件技術(shù)的迅速發(fā)展,軟件倉庫的規(guī)模變得越來越龐大,軟件倉庫中大量的軟件工件為軟件開發(fā)人員從中挖掘出有用的信息,并應(yīng)用于軟件工程活動提供了可能。軟件倉庫中的源程序就是軟件工程的重要研究對象之一。為了有效地挖掘出程序中隱含的信息,關(guān)鍵在于找到一種合適的程序的中間表示方法。

        為了解決軟件工程中的實(shí)際問題,國內(nèi)外研究者們對于程序的表示方法也進(jìn)行了許多嘗試。2006年Koschke[1]在研究中使用基于抽象語法樹的方法來進(jìn)行代碼克隆檢測。2013年Wu[2]等人采用基于程序依賴圖的方法來分析程序中的克隆。2015年White[3]等人將循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用于程序語言中,獲取token的詞向量表示,并應(yīng)用于代碼推薦系統(tǒng)中。

        深度學(xué)習(xí)[4]作為當(dāng)前的研究熱點(diǎn)之一,在自然語言處理、語音識別以及圖像處理等領(lǐng)域都取得了突破性的進(jìn)展。近年來,軟件工程領(lǐng)域的研究者們也開始嘗試將深度學(xué)習(xí)應(yīng)用于軟件工件中[5-6]。本文利用深度學(xué)習(xí)自動提取特征的特點(diǎn),提出了一種基于功能的程序表示方法,得到可以反映程序特征的矩陣表示。

        1 算法思想

        我們的核心問題是將程序在一個固定維度的實(shí)數(shù)值空間表示出來,進(jìn)而才可以將其作為典型的有監(jiān)督學(xué)習(xí)算法的輸入。盡管程序可能包含了很多特征,如代碼風(fēng)格、時空間復(fù)雜度等,在這里我們將首要關(guān)注程序最基本的方面——功能。給定一個程序A,以及它的前置條件P,我們希望能夠通過學(xué)習(xí)A的特征從而預(yù)測當(dāng)P成立時,運(yùn)行A得到的結(jié)果,即程序A的后置條件Q。一般地,我們將P和Q表示成一個實(shí)值向量,該向量包含了程序在某個特定時刻的狀態(tài)(即程序中變量的值),這里的(P,A,Q)被稱為霍爾三元組。我們提出以霍爾三元組集合作為深度網(wǎng)絡(luò)的輸入來學(xué)習(xí)程序的特征,采用的主要方法是同時找到程序的狀態(tài)和程序在特征空間的對應(yīng)的點(diǎn),在這個空間上,程序可以視作是程序的前置條件到后置條件的一個線性映射。

        更具體地說,給定一個三元組(P,A,Q),如果fP和fQ分別是前置條件P和后置條件Q的m維的特征表示,那么它們的關(guān)系可以通過等式1聯(lián)系起來:

        于是,我們得到了一個m維的矩陣MA作為程序A的特征表示,我們希望通過學(xué)習(xí)得到的P,Q到特征空間f的映射以及fP到fQ的線性映射MA具備較好的泛化能力,即對于給定的程序A以及前置條件P,可以預(yù)測其后置條件Q。

        2 網(wǎng)絡(luò)結(jié)構(gòu)

        本文方法的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

        圖1

        我們的網(wǎng)絡(luò)總體上可以分為四層,輸入層、輸出層以及兩個隱含層,輸入層到第一個隱含層對應(yīng)圖中的編碼器(Encoder),第二個隱含層到輸出層對應(yīng)圖中的解碼器(Decoder),分別完成了程序的前置條件P和后置條件Q到特征空間f的映射,隱含層之間的權(quán)重系數(shù)就是程序特征的矩陣表示。對于給定的程序A,我們多次記錄程序中變量的值以及運(yùn)行之后的值,得到大量的三元組(P,A,Q),以此作為數(shù)據(jù)集來訓(xùn)練我們的模型。

        3 模型訓(xùn)練

        假設(shè)提取到的程序的前置條件P和后置條件Q均是d維的向量,利用自編碼器思想,我們建立一個從前置條件P到m維的特征表示fP的非線性映射,這種映射被稱為編碼器。如傳統(tǒng)的自編碼網(wǎng)絡(luò)一樣,我們使用如下的非線性特征映射:

        式中的We∈Rm×d,be∈Rm,Φ是一種非線性函數(shù)。之后,同傳統(tǒng)的自編碼器做法一樣,我們可利用fP重構(gòu)出原始的輸入P:

        式中的Wd∈Rd×m,bd∈Rd,ψ是一種非線性函數(shù)。到這一步,我們可以利用等式(1)得到后置條件Q在特征空間的表示fQ,進(jìn)而重構(gòu)出由模型得到的后置條件Q:

        為了訓(xùn)練模型中的參數(shù),我們建立這樣一個損失函數(shù)L()

        θ:

        該損失函數(shù)由三個部分組成,其中l(wèi)pred表示了在給定前置條件的情況,我們預(yù)測出程序的后置條件的準(zhǔn)確程度,lauto反映了我們的自編碼器將輸入P編碼再解碼后重構(gòu)得到的P?與原始輸入P之間的誤差,R是正則項(xiàng),λ是正則化參數(shù)。我們的訓(xùn)練目標(biāo)就是使得取得最小值。

        4 結(jié)語

        本文介紹了一種基于功能的程序的表示方法。該方法從程序的功能出發(fā),通過收集運(yùn)行程序得到的霍爾三元組(P,A,Q)作為深度網(wǎng)絡(luò)的輸入,經(jīng)過訓(xùn)練同時得到程序的前置條件和后置條件在新特征空間的表示,使得程序的執(zhí)行可以視作一個線性的映射過程。同時我們還獲得了程序的矩陣表示,該矩陣可以應(yīng)用于很多的軟件工程任務(wù)中,如代碼克隆檢測、代碼自動評分、測試用例自動生成等。該方法同其他方法相比最大的優(yōu)勢在于利用深度網(wǎng)絡(luò)自動提取程序的特征。在下一步的研究工作中,我們將從實(shí)際的軟件工程任務(wù)出發(fā),來驗(yàn)證該方法的有效性。

        參考文獻(xiàn):

        [1]Koschke R,Falke R,Frenzel P.Clone Detection Using Abstract Syntax Suffix Trees[C].Reverse Engineering,2006.Wcre'06.Working Conference on.IEEE,2006:253-262.

        [2]吳軍華,王佳利.基于依賴圖的程序克隆分析及近似解求解方法[J].南京工業(yè)大學(xué)學(xué)報(自科版),2013,35(5):52-56.

        [3]White M,Vendome C,Linares M,Poshyvanyk D.Toward Deep Learning Software Repositories.MSR'15.

        [4]Bengio Y,Courville A,Vincent P.Unsupervised Feature Learning and Deep Learning:A Review and New Perspectives[J],2012.

        [5]Hindle A,Barr E T,Su Z,et al.On the Naturalness of Software[J].Communications of the Acm,2016,59(5):122-131.

        [6]Allamanis M,Sutton C.Mining Source Code Repositories at Massive Scale Using Language Modeling[J],2013:207-216.

        猜你喜歡
        前置條件三元組后置
        基于語義增強(qiáng)雙編碼器的方面情感三元組提取
        軟件工程(2024年12期)2024-12-28 00:00:00
        基于帶噪聲數(shù)據(jù)集的強(qiáng)魯棒性隱含三元組質(zhì)檢算法*
        房屋建筑和市政基礎(chǔ)設(shè)施工程施工招標(biāo)投標(biāo)管理辦法研究
        寫真地理(2020年21期)2020-09-06 14:12:26
        非正交五軸聯(lián)動數(shù)控機(jī)床后置處理算法開發(fā)
        人工智能技術(shù)構(gòu)筑智能政府的前置條件研究
        關(guān)于余撓三元組的periodic-模
        論“自動投案”的司法適用
        沉淀后置生物處理組合工藝的工程應(yīng)用
        Review of Research on the Prevention of HPV Infection and Cervical Cancer
        后置式自動發(fā)卡機(jī)系統(tǒng)應(yīng)用
        无码精品a∨在线观看| 白白色最新福利视频二| 日韩亚洲精品中文字幕在线观看| 欧美一区二区三区久久综| 午夜AV地址发布| 中文字幕亚洲综合久久| 白白色发布在线观看视频| 亚洲av首页在线| 国产亚洲av手机在线观看| 亚洲欧洲美洲无码精品va| 国产日产亚洲系列首页| 亚洲精品第一国产综合精品| 久久人人爽人人爽人人av东京热| 丰满人妻一区二区乱码中文电影网| 午夜少妇高潮在线观看视频| 久久伊人少妇熟女大香线蕉| 在线永久看片免费的视频| 精品丝袜国产在线播放| 日本av天堂一区二区三区| 久久人妻少妇嫩草av无码专区| 国产欧美日产久久| 一区二区亚洲 av免费| 国产黄污网站在线观看| 国产黄在线观看免费观看不卡 | 亚洲精品久久7777777| 无遮挡亲胸捏胸免费视频 | 亚洲人成精品久久久久| 亚洲综合无码一区二区三区| 亚洲免费观看一区二区三区| 国产一级二级三级在线观看av| 欧美亚洲色综久久精品国产| 亚洲AⅤ永久无码精品AA| 国产日本精品一区二区| 色偷偷888欧美精品久久久 | 永久免费人禽av在线观看 | 久久亚洲av成人无码电影a片| 亚洲性无码av在线| 亚洲乱码中文字幕综合69堂| 日韩亚洲精品中文字幕在线观看| 亚洲av日韩av综合| 久久se精品一区二区国产|