(郭肇安, 民國95年6月)
在傳統Java程式的環境下,程式員若需執行Java程式,都必須將原始碼編譯為位元組碼,再交由Java虛擬機解譯執行。編譯後的位元組碼只是模擬原始碼的一種虛擬機器語言,與原始碼之間並沒有任何先天的關連性。
本論文提出對Java語言的直譯機制,透過此機制我們不需將原始碼編譯為位元組碼,而是將原始碼轉成語法樹結構。透過樹狀節點所配置的虛擬函數,以遞迴呼叫直接執行原始碼的語意。
由於本直譯機制是採用遞迴呼叫的方式來完成,在遇到return敘述、break敘述與continue敘述時,僅能跳離單一層級的遞迴呼叫,無法跳離多層級的遞迴呼叫。本論文採用try/catch技術來突破因遞迴呼叫導致return敘述、break敘述與continue敘述無法脫離深層遞迴的問題。
在進行再造工程時,若採用Java原始碼轉為語法樹結構,可利用語法樹的樹狀運動來完成再造工程。
關鍵詞:Java、語法樹、直譯器。