PHP知識梳理--Zend編譯過程.md

php是解析型高級語言,對于zend引擎來說,php就是一個普通的C程序。也是通過C語言main執(zhí)行,如何將PHP的程序解析為zend可執(zhí)行的的C代碼,就是zend的php編譯過程。
簡單來說,zend對PHP的程序代碼的編譯分三步
1,通過代碼詞法分析(re2c)和語義分析(Bison) 將php代碼編輯為抽象語法樹(AST)
2, 將抽象語法樹 編譯為 opcode數(shù)組 (zend_op_array)

  • opcode其實就是zend定義的一個C的的結(jié)構(gòu)性(struct) opcode中定義 變量的類型 存儲和對應(yīng)語句 執(zhí)行方式 結(jié)果等
  • pass_two 編譯階段很關(guān)鍵的一個操作就是確定了各個 變量、中間值、臨時值、返回值、字面量 的 內(nèi)存編號 ,
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容