运行原理是什么意思,程序运行的基本原理

聚客2022-05-31  31

.php如何运行(php运行原理)

一、php7执行原理概述

我们知道的高级编程语言有两种:一种是编译语言,一种是解释语言,比如C和go语言,都是编译语言。在应用程序执行之前,程序代码被翻译成汇编语言,然后根据软硬件环境编译成目标文件。而解释性语言是在程序运行时翻译成机器语言,解释一次,效率比较低。

在php7中,首先对源代码进行形态学分析,将代码分成若干个字符串单元。分割后的字符串称为token,独立的token无法表达语义。它需要被解析并转换成抽象语法树(AST)。之后,抽象语法树被转换成机器指令执行,在php中变成操作码。比如公共echo对应的操作码指令是ZEND_ECHO。

(1)令牌

令牌php代码被切割成一个有意义的标识符。通过token_get_all()函数,将token的值转换成一个二维数组。每个成员数组的第一个值是token对应的枚举值,第二个值是token对应的字符串内容,第三个值是代码对应的行号。

(2)AST

令牌是单个“词块”,需要通过规则串联起来。串联后的产品是php7新增的AST,实现了php编译器和解释器的解耦,有效提高了可维护性。

(3)操作码

AST扮演着从源代码到中间代码的临时存储介质的角色,需要转换成操作码才能被引擎执行。opcode是单个指令,opcodes是操作码的集合形式,操作码是php执行中的中间代码,类似于java字节码。生成操作码后,由虚拟机执行。

我们知道,php工程优化中有一个常见的开放“open opcache”。它指的是操作码缓存。通过省略从源代码到操作码的阶段,引擎直接执行缓存的操作码来提高性能。

转载请注明原文地址:https://juke.outofmemory.cn/read/216636.html

最新回复(0)