陳俊良臺灣大學:資訊工程學研究所李政寰Lee, Cheng-HuanCheng-HuanLee2010-05-182018-07-052010-05-182018-07-052008U0001-2307200816171200http://ntur.lib.ntu.edu.tw//handle/246246/183653Java語言發展至今隨著增加對各種新功能的支援,也產生了許多相關的問題。而修改編譯器並增加編譯階段資料的處理為一種常見解決問題的方法。然而Java編譯器雖然開放原始碼,但其原始碼本身並不提供增加編譯階段資料處理的API,因此相關的研究者必須先花費一段時間對Java編譯器的架構進行研究,再開始發展針對其問題的解法。因此本論文試著提出一個API架構,讓相關的研究者能縮短研究Java編譯器所花費的時間,並能以此API為基礎發展其更進一步的解法。中文摘要 iBSTRACT iii謝 v錄 vii表目錄 ix格目錄 xi. 簡介 1.1. 研究動機 1.2. 相關研究 3.3. 論文架構 3. 背景知識 5.1. javac基本架構及編譯流程 5.2. javac的中間碼 6.2.1. 中間碼概觀 6.2.2. 類別宣告所對應之中間碼結構 7.2.3. 函式主體 (method body) 對應之中間碼結構 8.2.4. 述句(Statement)與表示式(Expression) 9.3. 設計模式:Visitor 11.4. javac中的Visitor – TreeScanner 14.5. 本章小結 14. 問題與策略 15.1. 宣告類操作 15.2. 宣告類操作之策略 16.3. 述句類操作 17.4. 述句類操作之策略 21.5. 本章小結 24. 實作 25.1. 宣告類操作 25.1.1. 成員變數之增修 25.1.2. 成員函式的增修 27.2. 述句類操作 29.2.1. 類別Track 29.2.2. 類別TrackStack 30.2.3. 函式stateFromString( )、stateFromFile( )、variableDecl( ) 31.2.4. 函式insert( )、remove( ) 32.3. 使用實例 36.3.1. 宣告類操作使用實例 38.3.2. 述句類操作使用實例 40.3.3. 錯誤提示 43.4. 本章小結與補充說明 44. 結論 45.1. 結論 45.2. 未來工作 45考文獻 47錄A.基本 tree node 解說 49錄B.Framework API 65application/pdf2468184 bytesapplication/pdfen-US編譯器中間碼JavaCompilerIntermediate Representation一個增補Java編譯器中間碼的機制A Mechanism to Enhance Intermediate Representation of Java Compilerthesishttp://ntur.lib.ntu.edu.tw/bitstream/246246/183653/1/ntu-97-R95922118-1.pdf