2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、為了吸引更多開發(fā)者或是支持不同的平臺,開源項目組織或商業(yè)公司傾向于采用多種語言實現(xiàn)他們的項目。研究表明,大約有33%的開源項目存在多種語言版本。在這些多語言項目中,開發(fā)者需要維護不同版本間的一致性。他們需要在不同版本上實現(xiàn)相同的功能或是修復同一個缺陷,這會產(chǎn)生大量功能相似的代碼,這樣的代碼片段被稱為跨語言的代碼克隆。
  代碼克隆增加了軟件開發(fā)和維護的成本。例如,當某個克隆片段被修改,與之相關的代碼克隆都可能需要同樣的修改。然而,

2、在多語言項目中避免克隆代碼是非常困難的。因此,跨語言的代碼克隆檢測是多語言軟件項目維護中的重要部分。
  但是,現(xiàn)有的工具大多只能檢測同一種語言的克隆,無法有效檢測如Java和C#之間存在的跨語言克隆。傳統(tǒng)的代碼檢測工具如DECKARD、CCFinder、CP-Miner等,只能夠檢測在同一種語言上存在的代碼克隆,而C2D2這樣的跨語言代碼克隆工具,由于他們的工具基于.NET的通用中間語言(CIL),僅能提供基于CIL語言間的跨語

3、言克隆檢測,無法檢測無中間語言的跨語言克隆代碼。
  代碼變更相似性指的是在代碼的歷史變更中,存在的實現(xiàn)相同功能或是修復相似缺陷的代碼變更片段。在多語言項目中,存在大量針對同一任務的相似代碼變更,這些代碼變更片段反映了開發(fā)者維護多語言項目的變更一致性,而這樣的一致性也產(chǎn)生了大量跨語言的代碼克隆。因此,跨語言的代碼克隆可以通過檢測代碼變更的相似性得到。全文檢索技術是一種將文檔中所有文本與搜索項匹配的文字資料檢索技術,通常用于純文本文

4、件的信息檢索,而在開源項目的代碼片段中,通過去除關鍵字、停用詞和轉換API接口等一系列方法,能夠將代碼片段中有意義的變量和方法命名作為全文檢索的輸入,從而實現(xiàn)代碼片段的搜索與匹配。本文結合代碼變更相似性和全文檢索技術,提出了一套新的檢測不同平臺間跨語言克隆代碼的方法。該方法通過分析項目歷史變更中存在的變更相似代碼,比較變更片段的相似程度,利用全文檢索技術進行代碼匹配,較好地解決了現(xiàn)有克隆檢測技術無法實現(xiàn)的跨語言代碼問題,因此能夠有效檢測

5、出不同平臺的跨語言代碼克隆。本文基于Elasticsearch搜索引擎實現(xiàn)了一個跨語言克隆檢測系統(tǒng)——DiffMatcher。本文在開源項目ANTLR和FpML上進行了實驗評估,實驗表明DiffMatcher能夠有效檢測出Java和C#項目中存在的部分代碼克隆,達到了預期工作目標。
  本文的貢獻主要有以下幾點:
  1)分析了現(xiàn)有的代碼克隆檢測工具的優(yōu)點和不足,提出了傳統(tǒng)克隆檢測工具在檢測跨語言克隆代碼時的問題。
 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論