§ 瀏覽學位論文書目資料
  
系統識別號 U0002-3001201514205200
DOI 10.6846/TKU.2015.01082
論文名稱(中文) 語法樹系統翻修過程中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頁
口試委員 指導教授 - 廖賀田
委員 - 張昭憲(090557@mail.tku.edu.tw)
委員 - 高明達
關鍵字(中) 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.
論文全文使用權限
校內
紙本論文於授權書繳交後5年公開
同意電子論文全文授權校園內公開
校內電子論文於授權書繳交後5年公開
校外
同意授權
校外電子論文於授權書繳交後5年公開

如有問題,歡迎洽詢!
圖書館數位資訊組 (02)2621-5656 轉 2487 或 來信