系統識別號 | 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. |
論文全文使用權限 |
如有問題,歡迎洽詢!
圖書館數位資訊組 (02)2621-5656 轉 2487 或 來信