成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不再重復(fù)造輪子,AI 給你推薦更好的代碼,還沒bug

新聞 前端
程序員的的代碼大部分都不是如同寫書法那般一揮而就,而需要反復(fù)地?fù)竍ug,摳到懷疑人生。

 [[342790]]

程序員的的代碼大部分都不是如同寫書法那般一揮而就,而需要反復(fù)地?fù)竍ug,摳到懷疑人生。

[[342791]]

劍橋大學(xué)法官商學(xué)院發(fā)表的一項(xiàng)研究顯示,程序員將50.1%的工作時(shí)間用于編程,而將一半的時(shí)間用于debug。估計(jì)每年的debug總費(fèi)用為3120億美元。

現(xiàn)代軟件系統(tǒng)越來(lái)越復(fù)雜,很多時(shí)候一個(gè)小小的錯(cuò)誤就可能讓系統(tǒng)崩潰,帶來(lái)巨大損失。所以不僅是程序員,企業(yè)也在為debug付出巨大代價(jià)。但現(xiàn)在,AI帶來(lái)了福音。

英特爾、麻省理工學(xué)院、佐治亞理工學(xué)院的研究人員合作開發(fā)了自動(dòng)化代碼相似性檢測(cè)系統(tǒng)MISIM,該系統(tǒng)可以判斷兩段代碼的相似性,即便這兩段代碼使用的是不同的結(jié)構(gòu)和算法,也可以依據(jù)它們是否執(zhí)行相似的任務(wù)、是否有相似的代碼特征加以判斷。

代碼相似性檢測(cè)可以應(yīng)用在代碼推薦、自動(dòng)修復(fù)bug中。在代碼推薦的應(yīng)用過程有點(diǎn)像輸入法的詞推薦,由于MISIM可以對(duì)不完整的代碼片段進(jìn)行評(píng)估,當(dāng)它檢測(cè)到不完整的、有bug的代碼時(shí),就會(huì)從其它地方選出功能一樣的、沒有bug的代碼,來(lái)替換原來(lái)的代碼。

并且,MISIM 還會(huì)將代碼轉(zhuǎn)換為統(tǒng)一的形式,確定代碼功能,從而在不受編寫方式的影響下進(jìn)行代碼片段的對(duì)比。由于MISIM不受編程語(yǔ)言限制,它還可以用于代碼語(yǔ)言轉(zhuǎn)換。

在45,780個(gè)程序的實(shí)驗(yàn)評(píng)估中,MISIM識(shí)別C和C ++程序中的代碼,這些程序是由學(xué)生編寫的,旨在解決104個(gè)編碼問題。如果一對(duì)程序都解決了相同的問題,則它們?cè)跀?shù)據(jù)集中被標(biāo)記為相似。MISIM的表現(xiàn)始終好于三個(gè)當(dāng)前最先進(jìn)系統(tǒng),最高達(dá)到40.6倍。

自動(dòng)代碼生成一直是一個(gè)研究熱點(diǎn),產(chǎn)業(yè)界和學(xué)術(shù)界都在此方向上努力著。OpenAI的GPT-3語(yǔ)言模型甚至可以根據(jù)自然語(yǔ)言描述生成網(wǎng)頁(yè)布局的代碼。而代碼相似性檢測(cè)則可以復(fù)用已有代碼,使質(zhì)量高的代碼得到更有效的利用。

輸入“創(chuàng)建一個(gè)長(zhǎng)得像西瓜的按鈕”,GPT-3就生成了上圖中綠皮紅瓢的原型按鈕。或者輸入“welcome to my newsletter的大號(hào)字體”,GPT-3就生成了上圖中的紅色大號(hào)字體。

當(dāng)然,代碼相似性檢測(cè)也可以用于代碼查重。所以,計(jì)算機(jī)系的同學(xué)們,注意自己寫作業(yè)!雖然現(xiàn)在已有非AI的代碼查重系統(tǒng),但誰(shuí)知道AI什么時(shí)候會(huì)后來(lái)居上呢?

1. MISIM架構(gòu)

 

MISIM架構(gòu)概覽

MISIM由兩個(gè)核心組件組成。首先,MISIM具有新型的上下文感知語(yǔ)義結(jié)構(gòu)(CASS),該結(jié)構(gòu)通過捕獲描述代碼上下文的信息,使用機(jī)器學(xué)習(xí)算法來(lái)確定給定源代碼的目的(例如,代碼是一個(gè)函數(shù)調(diào)用、一個(gè)操作等)。其次,MISIM還具有基于神經(jīng)網(wǎng)絡(luò)的代碼相似性評(píng)估算法,該算法可通過各種神經(jīng)網(wǎng)絡(luò)架構(gòu)來(lái)實(shí)現(xiàn)。

一旦構(gòu)建了CASS,就將其向量化并用作神經(jīng)網(wǎng)絡(luò)的輸入,神經(jīng)網(wǎng)絡(luò)會(huì)生成特征向量。生成特征向量后,就可以進(jìn)行代碼相似度評(píng)估(例如,向量點(diǎn)積、余弦相似度等)。

對(duì)于MISIM的相似性評(píng)估算法,研究人員研究了三種神經(jīng)網(wǎng)絡(luò)方法:GNN、RNN和BoF神經(jīng)網(wǎng)絡(luò)。其中,使用GNN的 MISM 總體表現(xiàn)最好,能夠以超過75%的準(zhǔn)確率識(shí)別出兩個(gè)程序的相似程度。

將代碼的結(jié)構(gòu)與CASS集成在一起后,算法就會(huì)根據(jù)代碼要執(zhí)行的工作計(jì)算相似性分?jǐn)?shù)。即使兩段代碼表面上不同,如果執(zhí)行相同的功能,模型就會(huì)將它們?cè)u(píng)估為相似。

CASS可以配置特定的上下文,從而能夠捕獲描述代碼的更高級(jí)別信息。而且CASS可以在不使用編譯器的情況下對(duì)代碼進(jìn)行評(píng)級(jí)(編譯器將人類可讀的源代碼轉(zhuǎn)換為計(jì)算機(jī)可執(zhí)行的機(jī)器代碼),甚至可以對(duì)不完整的代碼片段進(jìn)行評(píng)估。

MISIM-GNN的架構(gòu)如下圖所示。對(duì)于這種方法,輸入代碼的CASS表征被轉(zhuǎn)換為圖。然后,將圖中的每個(gè)節(jié)點(diǎn)嵌入一個(gè)可訓(xùn)練的向量,作為該節(jié)點(diǎn)的初始狀態(tài)。接下來(lái),使用GNN迭代更新每個(gè)節(jié)點(diǎn)的狀態(tài)。最后,應(yīng)用全局讀取函數(shù)從節(jié)點(diǎn)的最終狀態(tài)提取整個(gè)圖的向量表征。

MISIM-GNN 架構(gòu)

 2 . 不再重復(fù)造輪子

研究人員仍然在擴(kuò)展MISIM的特征集,目的是創(chuàng)建一個(gè)代碼推薦引擎,它能夠識(shí)別算法背后的意圖,并提供語(yǔ)義上相似但性能有所提高的候選代碼。系統(tǒng)可以指示程序員使用庫(kù)函數(shù),而不用再重復(fù)造輪子。

像MISIM這樣的以AI為動(dòng)力的代碼建議和審查工具有望大幅削減開發(fā)成本,同時(shí)使編碼人員能夠?qū)W⒂诟邉?chuàng)造性、減少重復(fù)性的任務(wù)。

英特爾實(shí)驗(yàn)室首席科學(xué)家兼機(jī)器編程研究總監(jiān)Justin Gottschlich表示:“如果該系統(tǒng)能取得成功,我們的最終目標(biāo)之一就是實(shí)現(xiàn)全民編程。”

或許有一天,代碼相似性檢測(cè)可以擴(kuò)展到自然語(yǔ)言中,到時(shí)候要實(shí)現(xiàn)全民編程,就不再是難事。

3. 相關(guān)論文

不再重復(fù)造輪子,AI 給你推薦更好的代碼,還沒bug

論文地址:https://arxiv.org/pdf/2006.05265.pdf

不再重復(fù)造輪子,AI 給你推薦更好的代碼,還沒bug

代碼相似檢測(cè)系統(tǒng)的準(zhǔn)確率比較,結(jié)果是運(yùn)行3次的平均值和相對(duì)于平均值的最小/最大值。

不再重復(fù)造輪子,AI 給你推薦更好的代碼,還沒bug

code2vec、NCC、Aroma、MISIM在POJ-104測(cè)試集上的準(zhǔn)確率結(jié)果。條形高度表示運(yùn)行3次測(cè)量值的平均值,誤差條由測(cè)量值的最小值和最大值確定。

 

 

責(zé)任編輯:張燕妮 來(lái)源: 雷鋒網(wǎng)
相關(guān)推薦

2021-08-03 10:43:17

AI 數(shù)據(jù)人工智能

2023-09-21 11:03:31

開發(fā)輪子工具

2022-05-13 09:16:49

Python代碼

2024-09-30 05:38:48

2020-09-08 08:45:39

jupyter插件代碼

2015-08-06 10:14:15

造輪子facebook

2023-02-06 17:27:48

2021-03-15 07:57:02

SpringBoot 腳手架系統(tǒng)

2022-12-07 10:34:45

AST前端編譯

2024-07-01 08:01:45

API網(wǎng)關(guān)接口

2019-02-26 15:34:27

AI 數(shù)據(jù)人工智能

2024-05-30 07:07:00

Virtual虛擬 DOM前端

2022-05-27 08:40:27

java工具

2022-06-28 10:58:21

工具Java

2022-04-27 20:02:22

Dubbo注冊(cè)中心開發(fā)

2022-02-07 09:05:00

GitHub功能AI

2019-01-02 07:50:02

程序員技能代碼

2025-06-26 01:25:00

2021-01-11 11:36:23

鴻蒙HarmonyOSApp開發(fā)

2024-05-14 08:11:56

ReactuseState造輪子
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 色综合久久天天综合网 | 亚洲精品1区2区3区 91免费看片 | 精品国产乱码久久久久久图片 | 亚洲免费视频一区 | 插插宗合网 | 国产精品一区二区免费看 | 国产在线观看一区二区三区 | 黄视频网址 | 97精品国产一区二区三区 | 欧美日韩不卡合集视频 | 久久精品中文字幕 | 91在线视频精品 | 精品网 | 亚洲国产欧美一区 | 免费黄色录像片 | 日韩欧美中文字幕在线视频 | 欧美性精品 | 国产一区二区三区四区五区3d | 91精品久久久久久久久久入口 | 日本成人中文字幕 | 久久国产精品偷 | a免费观看 | 国产精品久久国产精品 | 国产高清免费在线 | 91久久北条麻妃一区二区三区 | 日本不卡一区 | 国产99视频精品免费播放照片 | 四虎最新 | 欧美在线a | 亚洲精品九九 | 在线国产视频 | 国产精品爱久久久久久久 | 成人免费在线播放视频 | 成人在线视频看看 | 成人免费在线视频 | 五月网婷婷 | 国产成人免费 | 久久久精品综合 | www.中文字幕 | 亚洲国产欧美在线人成 | 精品自拍视频在线观看 |