这个问题主要与php相关,因为imho操作码主要在php上下文中提到。根据这个description,这里有一个php代码到操作码的转换过程:
php文本->扫描/解析->结果=令牌->编译>结果=操作码
这里有几个问题:
1)操作码是否只是机器码的一部分,机器码是否由操作码组成?
2)在WAMP服务器的上下文中思考,哪个PHP模块负责?该模块只是将php代码转换为令牌的php解释器,还是将令牌编译为在硬件(处理器)上执行的操作码的编译器?
最佳答案
这个问题主要与php相关,因为imho操作码主要在php上下文中提到。
事实上,Java的字节/操作码更受欢迎。
1)操作码是否只是机器码的一部分,机器码是否由操作码组成?
是的,但是这个操作码依赖于机器。Java或PHP字节码的有趣之处在于它与机器无关,并在特定于平台的虚拟机中运行。
2)在WAMP服务器的上下文中思考,哪个PHP模块负责?
没有模块,它是核心的一部分。
Lexer => Tokenizer => Compiler
该模块只是将php代码转换为令牌的php解释器,还是将令牌编译为在硬件(处理器)上执行的操作码的编译器?
不完全是。生成的字节码与机器无关(称为“zend操作码”),不能直接在硬件上运行。最后一步是将这个字节码转换成与机器相关的操作码。