编程语言
首页 > 编程语言> > PHP-机器码和操作码有什么区别?

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