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

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

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

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

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

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

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

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

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

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

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

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

“我認(rèn)為這項研究最有意義的成就是我們對開發(fā)人員如何手動執(zhí)行配置的調(diào)查,”Horton說。“參與者的回復(fù)不僅證實這在很多情況下是一個難題,而且還幫助我們對可能使配置變得困難的事情進行分類。這非常有用,因為它為我們提供了一個具體的未來研究項目清單“。


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

精彩推薦

圖文推薦

點擊排行

2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

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