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

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

一種基于圖結(jié)構(gòu)的Java代碼存取方法

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

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


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

【相似文獻(xiàn)】

中國(guó)期刊全文數(shù)據(jù)庫(kù) 前10條

1 ;書(shū)摘[J];程序員;2002年03期

2 楊浪;張濤川;;代碼復(fù)用中的方法研究與應(yīng)用[J];電腦知識(shí)與技術(shù);2009年12期

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

4 簡(jiǎn)勇;;團(tuán)隊(duì)開(kāi)發(fā)中的代碼復(fù)用淺談[J];常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào);2007年01期

5 陳林博;江建慧;張丹青;;利用返回地址保護(hù)機(jī)制防御代碼復(fù)用類(lèi)攻擊[J];計(jì)算機(jī)科學(xué);2013年09期

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

7 李天盟;劉鳳芹;;TML語(yǔ)言簡(jiǎn)介[J];軟件;2013年11期

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

9 李葆華,霍有亮;適用于面向?qū)ο蠓缎偷拇a復(fù)用技術(shù)[J];西北大學(xué)學(xué)報(bào)(自然科學(xué)版);2000年01期

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

中國(guó)博士學(xué)位論文全文數(shù)據(jù)庫(kù) 前1條

1 陳平;代碼復(fù)用攻擊與防御技術(shù)研究[D];南京大學(xué);2012年

中國(guó)碩士學(xué)位論文全文數(shù)據(jù)庫(kù) 前7條

1 于浩;Android平臺(tái)JNI代碼單元測(cè)試方法研究[D];西南交通大學(xué);2015年

2 莊軼;繞開(kāi)細(xì)粒度地址隨機(jī)化的實(shí)時(shí)代碼復(fù)用攻擊框架[D];南京大學(xué);2014年

3 朱曉倩;一種基于圖結(jié)構(gòu)的Java代碼存取方法[D];南京大學(xué);2016年

4 劉超;基于動(dòng)態(tài)二進(jìn)制翻譯框架的代碼復(fù)用攻擊檢測(cè)與防御[D];湖南大學(xué);2012年

5 李建忠;重復(fù)代碼檢測(cè)技術(shù)的研究[D];汕頭大學(xué);2005年

6 邱慧風(fēng);基于關(guān)系復(fù)用的代碼構(gòu)建自動(dòng)化的研究[D];南昌大學(xué);2012年

7 周波;用代碼緩存復(fù)用技術(shù)提升Android即時(shí)編譯器效率[D];復(fù)旦大學(xué);2012年


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



本文編號(hào):431411

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

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


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

版權(quán)申明:資料由用戶(hù)97749***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com