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

當前位置:主頁 > 科技論文 > 軟件論文 >

一種基于圖結構的Java代碼存取方法

發(fā)布時間:2017-06-08 05:03

  本文關鍵詞:一種基于圖結構的Java代碼存取方法,由筆耕文化傳播整理發(fā)布。


【摘要】:隨著互聯網的普及與流行,以及“開放共享”觀念的深入人心,越來越多的人愿意在互聯網上分享他們的代碼。目前,互聯網上的開源代碼量正以指數規(guī)模增長,如果這些代碼能被很好地利用,軟件工程的很多領域將會因此受益。然而,目前主流的代碼庫都是以文本方式存放代碼,忽略了代碼的內部結構,查找代碼的方式也僅僅局限于關鍵字搜索,這不足以使用戶充分理解這些代碼。代碼查詢是幫助理解代碼的一種有效方法。代碼查詢技術通常包括三個步驟:信息抽取、查詢、以及結果顯示。本文提出了一種新的代碼存儲方法,這種方法以圖為基本結構,存儲于圖數據庫Neo4j中,并適用于目前非常主流的Java語言程序。本文主要關注于代碼查詢的信息抽取步驟,同時本文也涉及部分與查詢和結果顯示相關的內容。本文方法保證了足夠細的代碼存儲粒度,結合Neo4j提供的查詢語言Cypher,用戶可以方便地設計并實現查詢算法。本文的主要貢獻如下:本文設計了一種針對Java語言程序的基本存儲模式。這個存儲模式以語法樹為基礎;為類型、方法、變量引入全局唯一的鍵節(jié)點,解決了同名問題;合并冗余圖節(jié)點,縮小了圖數據的規(guī)模。同時,本文還提出了一種增量式的擴展存儲模式的方法,并實現了幾種常用的擴展:調用、范化實現、關聯。本文提供了一系列原型工具來支持對Java代碼的存儲和查詢。本文實現了代碼存儲插件。它支持自動化的Java代碼向基本存儲模式的轉換。同時,這個工具還支持對基本存儲模式的相關擴展。本文還實現了數據庫查詢及顯示插件。查詢插件的主要功能是提供Cypher語言的編輯環(huán)境。顯示插件的主要功能是支持圖形化的查詢結果顯示。本文對九個大規(guī)模開源Java工程進行了實驗,并評估了Neo4j數據庫的代碼存儲能力、以及代碼轉換為基本存儲模式后需要的存儲空間。本文還給出了幾個實際查詢的示例來說明本文工作的廣泛應用場景,包括度量指標的計算、目標類型的查找、以及工程中的循環(huán)調用情況。
【關鍵詞】:Neo4j 代碼存儲 代碼查詢 開源 Java
【學位授予單位】:南京大學
【學位級別】:碩士
【學位授予年份】:2016
【分類號】:TP312.2
【目錄】:
  • 摘要4-6
  • Abstract6-14
  • 第一章 緒論14-20
  • 1.1 研究背景與動機14-15
  • 1.2 本文工作15-17
  • 1.3 論文結構安排17-20
  • 第二章 背景與相關工作20-32
  • 2.1 代碼查詢技術20-24
  • 2.1.1 信息抽取20-22
  • 2.1.2 查詢22-24
  • 2.2 Neo4j數據庫24-27
  • 2.2.1 圖數據24-26
  • 2.2.2 Cypher26-27
  • 2.3 Eclipse插件與Eclipse JDT27-30
  • 2.3.1 Eclipse插件27-28
  • 2.3.2 Eclipse JDT28-30
  • 2.4 本章小節(jié)30-32
  • 第三章 基本存儲模式與存儲模式擴展32-46
  • 3.1 基本存儲模式32-40
  • 3.1.1 語法樹33-35
  • 3.1.2 鍵值的引入35-37
  • 3.1.3 圖節(jié)點的合并37-40
  • 3.2 存儲模式擴展40-45
  • 3.2.1 調用關系41-42
  • 3.2.2 范化實現關聯42-45
  • 3.3 本章小節(jié)45-46
  • 第四章 Java代碼存取方法的實現46-58
  • 4.1 語法樹向基本存儲模式的轉換46-52
  • 4.1.1 語法樹遍歷框架46-47
  • 4.1.2 圖節(jié)點存儲47-50
  • 4.1.3 工程存儲50-52
  • 4.2 查詢語句實現的存儲模式擴展52-54
  • 4.3 查詢語言54-56
  • 4.4 本章小結56-58
  • 第五章 工具平臺與實驗評估58-70
  • 5.1 工具平臺58-59
  • 5.2 工具演示59-62
  • 5.2.1 代碼存儲插件59-61
  • 5.2.2 代碼查詢和結果顯示插件61-62
  • 5.3 實驗評估62-69
  • 5.3.1 實驗對象62-63
  • 5.3.2 Neo4j數據庫的存儲能力評估63-66
  • 5.3.3 存儲空間消耗評估66-69
  • 5.4 本章總結69-70
  • 第六章 實例應用70-76
  • 6.1 度量指標計算70-72
  • 6.1.1 繼承深度計算70-71
  • 6.1.2 直接子類數計算71-72
  • 6.2 實例2:所有只有static final屬性的類或接口72-73
  • 6.3 實例3:循環(huán)調用73-75
  • 6.4 本章小節(jié)75-76
  • 第七章 總結與展望76-78
  • 7.1 總結76
  • 7.2 展望76-78
  • 參考文獻78-84
  • 附錄84-92
  • 攻讀碩士學位期間的科研成果92-94
  • 致謝94-95

【相似文獻】

中國期刊全文數據庫 前10條

1 ;書摘[J];程序員;2002年03期

2 楊浪;張濤川;;代碼復用中的方法研究與應用[J];電腦知識與技術;2009年12期

3 魏峰;李銀鎖;;C#調用非托管代碼[J];電腦編程技巧與維護;2013年04期

4 簡勇;;團隊開發(fā)中的代碼復用淺談[J];常州信息職業(yè)技術學院學報;2007年01期

5 陳林博;江建慧;張丹青;;利用返回地址保護機制防御代碼復用類攻擊[J];計算機科學;2013年09期

6 郭穎;陳峰宏;周明輝;;大規(guī)模代碼克隆的檢測方法[J];計算機科學與探索;2014年04期

7 李天盟;劉鳳芹;;TML語言簡介[J];軟件;2013年11期

8 張藍博;張善從;陳蔚薇;;嵌入式系統(tǒng)中的代碼動態(tài)鏈接模型[J];計算機工程與設計;2008年16期

9 李葆華,霍有亮;適用于面向對象范型的代碼復用技術[J];西北大學學報(自然科學版);2000年01期

10 何淼;崔松健;;一種基于隨機文件的C#與非托管C代碼交互模式[J];信息化研究;2011年02期

中國博士學位論文全文數據庫 前1條

1 陳平;代碼復用攻擊與防御技術研究[D];南京大學;2012年

中國碩士學位論文全文數據庫 前7條

1 于浩;Android平臺JNI代碼單元測試方法研究[D];西南交通大學;2015年

2 莊軼;繞開細粒度地址隨機化的實時代碼復用攻擊框架[D];南京大學;2014年

3 朱曉倩;一種基于圖結構的Java代碼存取方法[D];南京大學;2016年

4 劉超;基于動態(tài)二進制翻譯框架的代碼復用攻擊檢測與防御[D];湖南大學;2012年

5 李建忠;重復代碼檢測技術的研究[D];汕頭大學;2005年

6 邱慧風;基于關系復用的代碼構建自動化的研究[D];南昌大學;2012年

7 周波;用代碼緩存復用技術提升Android即時編譯器效率[D];復旦大學;2012年


  本文關鍵詞:一種基于圖結構的Java代碼存取方法,,由筆耕文化傳播整理發(fā)布。



本文編號:431411

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

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


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

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