您的位置: 首頁(yè) >互聯(lián)網(wǎng) >

研究人員在GitHub上編譯了一個(gè)可執(zhí)行Python代碼片段的新數(shù)據(jù)庫(kù)

2019-06-11 17:35:50 編輯: 來(lái)源:
導(dǎo)讀 北卡羅來(lái)納州立大學(xué)的一組研究人員最近對(duì)GitHub上共享的Python代碼片段的可執(zhí)行狀態(tài)進(jìn)行了實(shí)證分析。他們的研究預(yù)先發(fā)布在arXiv上,還提供

北卡羅來(lái)納州立大學(xué)的一組研究人員最近對(duì)GitHub上共享的Python代碼片段的可執(zhí)行狀態(tài)進(jìn)行了實(shí)證分析。他們的研究預(yù)先發(fā)布在arXiv上,還提供了Gistable,這是一個(gè)新的GitHub gist系統(tǒng)可執(zhí)行Python代碼片段數(shù)據(jù)庫(kù),可以在軟件工程領(lǐng)域?qū)崿F(xiàn)可重復(fù)的研究。

每天,全球的軟件開(kāi)發(fā)人員在線創(chuàng)建和共享代碼,以演示和概述新的編程概念。GitHub是最大的在線平臺(tái)之一,開(kāi)發(fā)人員可以在其上共享他們的代碼片段并協(xié)作開(kāi)發(fā)軟件。目前,它包含超過(guò)300,000個(gè)Python片段和超過(guò)450萬(wàn)個(gè)各種編程語(yǔ)言的要點(diǎn)。

雖然在線發(fā)布的代碼片段非常有用,但有時(shí)它們不能直接由其他人執(zhí)行。這可能是由于代碼中的解析錯(cuò)誤或在包含未滿足的依賴項(xiàng)的環(huán)境中執(zhí)行代碼段的問(wèn)題。

為了更好地了解GitHub的gist系統(tǒng)上托管的代碼片段實(shí)際上是可執(zhí)行的,北卡羅來(lái)納州立大學(xué)的研究人員對(duì)該平臺(tái)上托管的公共Python腳本的可執(zhí)行性進(jìn)行了全面評(píng)估。他們的研究旨在確定代碼片段執(zhí)行的常見(jiàn)問(wèn)題,這可為進(jìn)一步研究自動(dòng)化軟件配置管理提供有價(jià)值的見(jiàn)解。

在他們的研究中,研究人員還提出了Gistable,一個(gè)基于GitHub的gist系統(tǒng)構(gòu)建的數(shù)據(jù)庫(kù)和可擴(kuò)展框架。Gistable包含10,259個(gè)Python代碼片段,其中大約5,000個(gè)帶有Dockerfile,用于配置和執(zhí)行它們而不會(huì)導(dǎo)致導(dǎo)入錯(cuò)誤。

“我們?cè)贕istable上的工作是作為一個(gè)涉及應(yīng)用程序環(huán)境自動(dòng)配置的大型項(xiàng)目的一部分而推動(dòng)的,”執(zhí)行該研究的研究人員Eric Horton告訴Tech Xplore。“鑒于代碼庫(kù),例如在Gistable中研究的代碼片段,我們希望找到一個(gè)可以為他們構(gòu)建足夠執(zhí)行環(huán)境的流程,而無(wú)需開(kāi)發(fā)人員的輸入。為了做到這一點(diǎn),我們首先必須退一步回答幾個(gè)問(wèn)題。首先,這是一個(gè)常見(jiàn)的用例嗎?我們需要為現(xiàn)有應(yīng)用程序需要某種非平凡配置的頻率建立基線。其次,當(dāng)不可執(zhí)行時(shí),需要什么類(lèi)型的配置才能執(zhí)行?“

在他們的研究中,研究人員發(fā)現(xiàn),75.6%的分析Python要點(diǎn)需要大量配置來(lái)克服諸如缺少依賴性,配置文件,依賴特定操作系統(tǒng)或其他環(huán)境配置挑戰(zhàn)等問(wèn)題。此外,在嘗試解決配置錯(cuò)誤時(shí),開(kāi)發(fā)人員對(duì)資源名稱所做的假設(shè)在不到一半的時(shí)間內(nèi)被發(fā)現(xiàn)是正確的。

“我們發(fā)現(xiàn)大約30%的樣本屬于'難以配置'類(lèi)別,最常見(jiàn)的配置難度是依賴于外部庫(kù),”Horton解釋說(shuō)。“我們?cè)诓痪玫膶?lái)的研究將集中在尋找和安裝這些庫(kù)的技術(shù)上。之后,我們希望解決作為Gistable的一部分發(fā)現(xiàn)的其他常見(jiàn)配置困難。”

總體而言,配置不充分的環(huán)境是阻止Python代碼片段可執(zhí)行的主要因素。在某些情況下,可以自動(dòng)恢復(fù)正確的應(yīng)用程序環(huán)境配置,而其他配置則需要進(jìn)一步的干預(yù)。未來(lái),研究人員計(jì)劃研究策略,以始終如一地執(zhí)行有效的環(huán)境配置。

“我認(rèn)為這項(xiàng)研究最有意義的成就是我們對(duì)開(kāi)發(fā)人員如何手動(dòng)執(zhí)行配置的調(diào)查,”Horton說(shuō)。“參與者的回復(fù)不僅證實(shí)這在很多情況下是一個(gè)難題,而且還幫助我們對(duì)可能使配置變得困難的事情進(jìn)行分類(lèi)。這非常有用,因?yàn)樗鼮槲覀兲峁┝艘粋€(gè)具體的未來(lái)研究項(xiàng)目清單“。


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ   備案號(hào):

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。

郵箱:toplearningteam#gmail.com (請(qǐng)將#換成@)