Home  >  Article  >  Backend Development  >  PHP是解释型语言还是编译型语言

PHP是解释型语言还是编译型语言

WBOY
WBOYOriginal
2016-06-06 20:49:193118browse

PHP是解释型语言吗?使用APC之后呢?

回复内容:

PHP是解释型语言吗?使用APC之后呢?

现在语言的发展,一门语言是否是解释型已经不那么容易分辨了。

你说PHP是解释型语言,Facebook很早就开发过hiphop编译器,将PHP编译成C++再编译成二进制。

你说Python是解释型语言,Cython是用python语法进行开发最后编译成二进制。

你说用解释器就是解释型语言,依赖于JVM的一大票语言要跟你急了。

解释型语言可以使用某种编译器,但它依旧解释型语言。语言解释器同样需要使用编译原理。判断一种语言是编译器还是解释器,需要看该语言是否需要一个虚拟机(解释器)才可以运行。

通常,解释型语言使用前被编译为字节码,虚拟机动态执行字节码。为了提高性能,虚拟机执行代码时,可以利用 JIT 技术来动态的把字节码翻译成机器码。

因为字节码它不可能脱离虚拟机运行,因此它依旧是解释型语言。简而言之,编译型语言的编译(编译到机器码)发生在运行之前,解释型语言的编译发生在每一次运行时。


有些语言同时编译型解释型语言。可以在调试时使用解释器,调试后使用编译器。最著名的例子是 Lisp。有人曾在 Parrot 虚拟机上实现了 C 语言解释器,支持 C99 标准。

PHP是解释型语言,将PHP代码解释为opcode之后再交由Zend引擎执行。

使用APC只是缓存了opcode,减少了PHP解释为opcode这一步骤的时间而已。

解释型的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn