1. 程式人生 > >java虛擬機器位元組碼執行引擎之解釋執行

java虛擬機器位元組碼執行引擎之解釋執行

java語言中,Javac編譯器完成了程式程式碼經過詞法分析,語法分析到抽象語法樹,再遍歷語法樹生成線性的位元組碼指令流的過程.這一部分動作是在java虛擬機器外部完成的,而直譯器是在虛擬機器內部的,Java程式的編譯是半獨立的實現.

直譯器負責對Javac編譯器輸出的指令流進行解釋執行.java中指令流基本上是一種基於棧的指令集架構,指令流中的指令大部分都是零地址指令,依賴運算元棧進行工作.

直譯器通過區域性變量表,操作棧和程式計數器協作完成指令流的解釋執行.