中科院軟件所在 Python 程序的構(gòu)建依賴分析方面取得進(jìn)展:幫助開發(fā)人員提高代碼復(fù)用效率
據(jù)中國科學(xué)院網(wǎng)站,近日,中國科學(xué)院軟件研究所軟件工程技術(shù)研究開發(fā)中心在 Python 程序構(gòu)建中的依賴分析推斷方面取得研究進(jìn)展,提出知識(shí)驅(qū)動(dòng)的 Python 程序依賴推斷方法及工具, 幫助開發(fā)人員提高代碼復(fù)用效率,減少依賴缺失和依賴版本錯(cuò)誤導(dǎo)致的 Python 程序構(gòu)建和運(yùn)行錯(cuò)誤 ,為提升開發(fā)運(yùn)維一體化中的應(yīng)用構(gòu)建自動(dòng)化能力起到支撐作用。
據(jù)介紹,Python 語言廣泛應(yīng)用于科學(xué)計(jì)算等,開發(fā)者常常通過代碼復(fù)用提高開發(fā)效率。但 Python 程序運(yùn)行環(huán)境復(fù)雜,依賴于 Python 包、系統(tǒng)庫和特定版本的 Python 解釋器。缺少程序依賴或者依賴版本不兼容,會(huì)導(dǎo)致程序構(gòu)建失敗和運(yùn)行錯(cuò)誤。
針對(duì)該問題,研究提出一種知識(shí)驅(qū)動(dòng)的 Python 程序依賴推斷方法,包括知識(shí)圖譜構(gòu)建和程序依賴推斷兩個(gè)階段。在知識(shí)圖譜構(gòu)建階段,該方法收集大量多源異構(gòu)數(shù)據(jù),進(jìn)行知識(shí)的抽取和融合,構(gòu)建 Python 領(lǐng)域知識(shí)圖譜。在程序依賴推斷階段,該方法基于領(lǐng)域知識(shí)圖譜,通過程序分析和約束求解方法推斷目標(biāo) Python 程序的多層次依賴。
基于上述方法,該研究開發(fā)了 PyEGo:知識(shí)驅(qū)動(dòng)的 Python 程序依賴推斷工具。實(shí)驗(yàn)結(jié)果顯示,PyEGo 工具的依賴推斷成功率是已有方法的 1.5—4.5 倍,極大提升了程序構(gòu)建的正確率和執(zhí)行效率。
▲ Python 程序依賴分析方法示意圖