PHP虛擬機
虛擬機也是計算機,參考物理機的設計,設計虛擬機時,首先應該考慮三個要素:指令,數(shù)據(jù)存儲,函數(shù)棧幀;
指令 (推薦學習:PHP視頻教程)
指令由操作碼和操作數(shù)組成;操作碼指明本指令的操作類型,操作數(shù)指明操作數(shù)本身或者操作數(shù)的地址;
數(shù)據(jù)存儲
PHP虛擬機支持多種數(shù)據(jù)類型:整型、浮點型、字符串、數(shù)組,對象等;
函數(shù)棧幀
PHP虛擬機實現(xiàn)了與物理機類似的函數(shù)棧幀結構;
使用 _zend_vm_stack表示棧結構;多個棧之間使用prev字段形成單向鏈表;top和end指向棧低和棧頂,分別為zval類型的指針;
總結
PHP虛擬機也是計算機,有三點是我們需要重點關注的:指令集(包含指令處理函數(shù))、數(shù)據(jù)存儲(zval)、函數(shù)棧幀;
此時虛擬機已可以接受指令并執(zhí)行指令代碼;
但是,PHP虛擬機是專用執(zhí)行PHP代碼的,PHP代碼如何能轉換為PHP虛擬機可以識別的指令呢——編譯;
PHP虛擬機同時提供了編譯器,可以將PHP代碼轉換為其可以識別的指令集合;
理論上你可以自定義任何語言,只要實現(xiàn)編譯器,能夠將你自己的語言轉換為PHP可以識別的指令代碼,就能被PHP虛擬機執(zhí)行;
聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com