[PHP] PHP的脚本执行

PHP的脚本执行:
PHP的脚本执行还是会经过编译环节, 只不过它们一般会在运行的时候实时进行编译
1.启动PHP及Zend引擎, 加载注册的扩展模块
2.读取脚本文件,Zend引擎对脚本文件进行词法分析,语法分析。
3.编译成opcode执行
4.如果安装opcode缓存扩展(如APC, xcache, eAccelerator等),可能直接从缓存中读取opcode执行

脚本的编译执行:
1.读取脚本,通过lex按照词法规则切分一个一个的标记(token)。
2.使用bison生成语法分析器。
3.Zend引擎将代码编译为opcode
4.PHP是构建在Zend虚拟机(Zend VM)之上的。PHP的opcode就是Zend虚拟机中的指令。

编程语言的编译器(compiler)或解释器(interpreter)一般包括两大部分:
1.读取源程序,并处理语言结构。
2.处理语言结构并生成目标程序。

词法分析器:
Lex(词法分析生成器:A Lexical Analyzer Generator)。
Yacc(Yet Another Compiler-Compiler)

1.安装lex,apt-get install flex
2.lex的词法规则文件
定义段
%%
规则段
%%
用户代码段

posted @ 2018-01-20 16:12  唯一客服系统开发笔记  阅读(390)  评论(0编辑  收藏  举报