天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 軟件論文 >

面向類型推導(dǎo)的Python類型標(biāo)注分析

發(fā)布時間:2021-10-08 22:36
  作為動態(tài)語言的代表之一,Python因其代碼簡潔、開發(fā)迅速、擁有豐富的第三方庫,在工業(yè)界大受歡迎。然而,由于缺少靜態(tài)類型信息,許多軟件工程活動(如程序理解、軟件調(diào)試、靜態(tài)缺陷檢測等)無法有效地在Python程序中開展。為此,Python社區(qū)提出了靜態(tài)類型標(biāo)注提案,即允許開發(fā)者以標(biāo)注形式表明程序?qū)嶓w的類型。類型標(biāo)注不強制規(guī)定Python程序?qū)嶓w的類型,不作為代碼的一部分被解釋執(zhí)行。類型標(biāo)注可以被類型推導(dǎo)等其他分析方法和工具解析利用,進而提高分析精度。然而,類型標(biāo)注能夠在多大程度上幫助類型推導(dǎo),以及在有限時間和資源條件下開發(fā)者該如何進行類型標(biāo)注,尚未有相關(guān)工作展開研究。本文研究面向類型推導(dǎo)的Python類型標(biāo)注,從類型標(biāo)注的有效性分析和類型標(biāo)注點推薦兩個方面展開。主要工作包括:·對現(xiàn)有類型推導(dǎo)引擎進行了擴展,設(shè)計實現(xiàn)了一個支持類型標(biāo)注的類型推導(dǎo)工具。該工具既支持開源標(biāo)注集TypeShed作為外部標(biāo)注的直接集成,也支持項目本身的內(nèi)部標(biāo)注。在集成了類型標(biāo)注后,該工具可以有效地改善原有的類型推導(dǎo)結(jié)果。并借助一個開源類型標(biāo)注集TypeShed,對外部類型標(biāo)注在改善類型推導(dǎo)結(jié)果方面的有效性進行了實驗... 

【文章來源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校

【文章頁數(shù)】:70 頁

【學(xué)位級別】:碩士

【部分圖文】:

面向類型推導(dǎo)的Python類型標(biāo)注分析


圖3-1:系統(tǒng)框架圖??

柱狀圖,項目類型,結(jié)果對比


對戶斤選取的11個Python項目進行實驗分析,對比僅使用PySonar2和基于?f??TypeShed類型標(biāo)注輔助兩種類型推導(dǎo)過程的結(jié)果。如圖3-5以柱狀圖的形式給?f??出了實驗結(jié)果,柱狀圖表示能夠推導(dǎo)出類型信息的程序?qū)嶓w數(shù)量,該敎量包含??了新增的類型信息和改善的類型推導(dǎo)信息。由圖可以看出,在所有項目上,基??于TypeShed類型標(biāo)注的推導(dǎo)結(jié)果都更好(柱狀圖更高),即能為更多_程序?qū)??體推導(dǎo)出類型信息。??表3-2給出了更加詳細(xì)的實驗結(jié)果。在該表中,第二列為僅PySonar2能推??導(dǎo)出類型信息的程序?qū)嶓w數(shù),第三列為添加類型標(biāo)注后能推導(dǎo)出類型信息的??程序?qū)嶓w數(shù)量,第四和第五列分別為新增類型信息的程序?qū)嶓w數(shù)量和改善了類??型推導(dǎo)信息的程序?qū)嶓w數(shù)量,最后一列為類型信息改變的程序?qū)嶓w總數(shù)。其??中

框架圖,分析實驗,框架圖


到此算法是否可以被用于交互式使用場景中。其次,評估方法給出的排序結(jié)??果,考察是否標(biāo)注越靠前的變對類型推導(dǎo)結(jié)果的増益越大。最后,評估標(biāo)注??數(shù)丨it對類型推導(dǎo)結(jié)果的影響,探究最高效率地進行類型標(biāo)注。圖4-4給出了本??章實驗的框架圖。仍然使用第三章采用的Python項目作為實驗對象,但去掉了??zulip項目,因為在實驗過程中發(fā)現(xiàn),zulip帶有較多無法處理的Python版本特??性,如print語句等。因此,本章使用10個Python開源項目作為實驗對象。??4.4研究問題??類型標(biāo)注可以增加類型推導(dǎo)引擎可獲取到的類型信息,對某一個變V〔進行??標(biāo)注,其效果不僅僅限制在這個被標(biāo)注變量或者程序節(jié)點上,而且會通過數(shù)據(jù)??流的傳遞影響其他變量或者程序節(jié)點。本章通過數(shù)據(jù)流分析,量化這些變量之??間的依賴關(guān)系,提出了一種類型標(biāo)注推薦方法TARank,從而得到變量的標(biāo)注??價值排名。為了驗證該方法的效率和有效性

【參考文獻】:
期刊論文
[1]A study on the changes of dynamic feature code when fixing bugs: towards the benefits and costs of Python dynamic features[J]. Zhifei CHEN,Wanwangying MA,Wei LIN,Lin CHEN,Yanhui LI,Baowen XU.  Science China(Information Sciences). 2018(01)
[2]TPython:一種擴充的Python語言[J]. 余超,周天琳,周曉宇,陳林,徐寶文.  計算機與數(shù)字工程. 2009(05)

碩士論文
[1]Python動態(tài)特性對軟件維護的影響研究[D]. 王蓓蓓.南京大學(xué) 2016



本文編號:3425100

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3425100.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶52bb9***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com