淡江大學覺生紀念圖書館 (TKU Library)
進階搜尋


下載電子全文限經由淡江IP使用) 
系統識別號 U0002-3001201514205200
中文論文名稱 語法樹系統翻修過程中null指標的處理
英文論文名稱 Null Pointer Handling in Reimplementing a Syntax Tree System
校院名稱 淡江大學
系所名稱(中) 資訊管理學系碩士班
系所名稱(英) Department of Information Management
學年度 103
學期 1
出版年 104
研究生中文姓名 花于雱
研究生英文姓名 Yu-Pang Hua
學號 601630022
學位類別 碩士
語文別 中文
口試日期 2015-01-10
論文頁數 37頁
口試委員 指導教授-廖賀田
委員-張昭憲
委員-高明達
中文關鍵字 Java  null pointer  語法樹 
英文關鍵字 Java  null pointer  Syntax Tree 
學科別分類
中文摘要 為支援軟體混亂器[2],我們以先前Java直譯器[1]中的語法樹系統為雛型,做進一步的重整及開發。新版的語法樹類別包含有關聯欄位,形成雙向鏈結的關係,它們必須即時性地確保雙向關係的一致性。
null在程式語言中是不可或缺的一環,但它卻使除錯變得困難。當規模龐大的程式發生null指標例外時,很難立即追蹤到造成錯誤的所在。
為了解決這問題,本論文提出一套對null指標的處理方式。依程式的使用狀況,以illegal type或none type取代原本使用null的地方。減少除錯的成本並使專案得以在更穩定的環境下開發。
英文摘要 To support software obfuscator [2], we applied the syntax tree system as the model for further development and refactory system we had developed in the Java interpreter [1]. The new version of syntax tree system’s class contains relation fields with two-way link between these. A relation field must ensure that those relationships are consistent in real time.
Null is extensively used in programming languages. However, it makes debug becomes difficult. When the large-scale programs exploded the null pointer exception, it is rather difficult to immediately know how that occurred.
To solve this problem, in this paper, we propose a methodology on null pointer handling. According to code’s statue, illegal type or none type is used to replace the original use of null's place. The cost of debugging and the program to be developed in the stability environment was reduced.
論文目次 目錄
=========================================
1. 緒論 1
1.1 研究動機與目的 1
1.2 相關研究 1
1.3 論文概觀 2
2. 背景知識 4
2.1 物件導向技術 4
3. 語法樹的概述 5
3.1 語法樹系統的簡介 5
3.2 語法樹的結構:包含關係 6
3.3 繼承關係與覆寫關係 8
3.4 USE-DEF關係 9
3.5 語法樹的建造與變換 9
4. 前置概念 12
4.1 null指標的分類 12
4.1.1 none 13
4.1.2 illegal 13
4.2 除錯的麻煩 15
5. null指標的處理 16
5.1 null objects in a class 16
5.2 繼承關係下的null objects 19
5.3 指標列(lists of pointers) 23
6. 實例展示 27
6.1 實例一:IfStmtUnit實作改良案例 27
6.2 實例二:Doubly Linked List的改良 31
7. 結論與後續發展 36
參考文獻 37

圖目錄
=========================================
圖3.1 語法樹主要系統套件圖 5
圖3.2 PrjTN的包含關係示意圖 7
圖3.3 語法樹建造與轉換的過程圖 10
圖4.1 指標狀態的定義 12
圖6.1 ifStmtTN的語法樹結構 27
圖6.2 IfStmtUnit執行結果 30
圖6.3 DLinkList的基本情況 31
圖6.4 新增雙向鏈結節點 32
圖6.5 遺漏新增關係的雙向鏈結串列結果示意圖 35

表目錄
=========================================
表 5.1各狀態的比較函數輸出的結果 19
參考文獻 參考文獻
[1] 周敬斐, 郭肇安, 廖賀田*,〈Java的語法樹直譯器 (A Syntax-Tree-Based Interpreter for Java) 〉,資訊管理展望,第10卷,第1期,頁 111-135, Jun. 2008.
[2] Heh-Tyan Liaw, and Shih-Chieh Wei, “Obfuscation for object-oriented programs: dismantling instance methods”, Software-Practice and Experience, Apr. 2013.
[3]Hoare T., Null references: the billion dollar mistake, http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake, 2009
[4] The Nice programming language, http://nice.sourceforge.net/, 2006.
[5] Groovy, http://groovy.codehaus.org/, 2007.
[6] C. Flanagan, K. Rustan M. Leino, and M. Lillibridge, “Extended Static Checking for Java”, Programming Language Design and Implementation (PLDI),June 2002.
[7] Ken Arnold, James Gosling, David Holmes, “The Java Programming Language, Fourth Edition”, Addison Wesley, 2005.
[8]Martin Fowler, “Refactoring - Improving the Design of Existing Code”, Addison-Wesley, 2003.
[9] Joshua Kerievsky, “Refactoring To Patterns”, Addison-Wesley, 2005.
[10] Grady Booch, “Object-Oriented Analysis and Design with Applications , third edition”, Addison-Wesley 2007.
[11] Oracle.com, Java Platform, Standard Edition 6(Java SE 6), http://www.oracle.com/technetwork/java/javase/downloads/jre6downloads-1902815.html, 2006.
[12] Heh-Tyan Liaw, “Practice and Experience on Reimplementing an Obfuscator”, submitted to publish, Oct., 2014.
論文使用權限
  • 同意紙本無償授權給館內讀者為學術之目的重製使用,於2020-02-04公開。
  • 同意授權瀏覽/列印電子全文服務,於2020-02-04起公開。


  • 若您有任何疑問,請與我們聯絡!
    圖書館: 請來電 (02)2621-5656 轉 2486 或 來信