PHP-机器码和操作码有什么区别?
作者:互联网
这个问题主要与PHP有关,因为在PHP上下文中主要提到了IMHO操作码.根据这个description,这是php代码到opcode的转换过程:
php文字->扫描/解析->结果=令牌->编译>结果=操作码
这里有几个问题:
1)操作码仅仅是机器代码的一部分,机器代码是否由操作码组成?
2)考虑到Wamp服务器的上下文,哪个PHP模块负责?该模块是将PHP代码转换为令牌的PHP解释程序,还是将令牌转换为在硬件(处理器)上执行的操作码的编译器?
解决方法:
The question is mostly related to PHP because IMHO opcode is mostly mentioned in PHP context.
实际上,Java因其字节/操作码而更加流行
1) Is opcode just a portion of machine code, does machine code consist of opcodes?
是的,但是此操作码与机器有关. Java或PHP字节码中有趣的是,它与计算机无关,并且在特定于平台的虚拟机中运行.
2) Thinking in the context of Wamp server, what PHP module is responsible for?
没有模块,它是核心的一部分.
Lexer => Tokenizer => Compiler
Is that module just PHP interpreter who transforms PHP code into tokens or is it also a compiler who compiles tokens into opcode that is executed on the hardware (processor)?
不完全是.生成的字节码与机器无关(称为“ Zend-opcode”),并且不能直接在硬件上运行.最后一步是将该字节码转换为机器相关的操作码.
标签:machine-code,vm-implementation,opcode,assembly,php 来源: https://codeday.me/bug/20191101/1981905.html