PHP编译到运行
2021-02-28 15:40:55 0 举报
PHP 从编译到运行的过程和原理
作者其他创作
大纲/内容
zend_op 类似于汇编中的一条指令zend_op_array 指令集 里面包括zend_op的地址zend_execute_datazend_vm_stack
操作系统
ZEND_AST_ASSIGN
zend_vm_execute.h 但是他是用 zend_vm_gen.php 配合zend_vm_execute.skl模版文件生成的 自举??zend_execute 是虚拟机入口
ZEND_AST_STMT_LIST
$a =1;
在php_execute_script 入口
实时编译
机器码
类似于机器码 但是cpu不能运行zend_vm_set_op_handler
PHP源码(.php)
opcodes
c源码(.c)
C语言
zend 执行引擎
ZEND_AST_ZVAL(a)
1.通过open_file_for_sanning解析.PHP文件里的内容 2.词法分析 zendparse 入口 使用re2c 依据 有穷状态机. p language_sacnner_globals3.语法分析 zendlex 为 zend虚拟机 词法分析入口通过 巴科斯范式 组装成AST
ZEND_AST_VAR
虚拟机(zend执行引擎)
PHP
编译器
ZEND_AST_ZVAL (1)
opcode 相关结构
汇编语言(.s)
zend引擎
一次性的过程
汇编器
通过sapi层
收藏
收藏
0 条评论
下一页