The Zend Engine is a
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
and
runtime environment
In computer programming, a runtime system or runtime environment is a sub-system that exists in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile time ...
for the
PHP scripting language and consists of the Zend Virtual Machine, which is composed of the Zend Compiler and the Zend Executor, that compiles and executes the PHP code. It was originally developed by
Andi Gutmans and
Zeev Suraski while they were students at the
Technion – Israel Institute of Technology
The Technion – Israel Institute of Technology is a public university, public research university located in Haifa, Israel. Established in 1912 by Jews under the dominion of the Ottoman Empire, the Technion is the oldest university in the coun ...
. They later founded a company called
Zend Technologies
Zend, formerly Zend Technologies, is a Minneapolis, Minnesota-based software company. The company's products, which include Zend Studio, assist software developers with developing, deploying, and managing PHP-based web applications.
The company w ...
in
Ramat Gan
Ramat Gan (, ) is a city in the Tel Aviv District of Israel, located east of the municipality of Tel Aviv, and is part of the Gush Dan, Gush Dan metropolitan area. It is home to a Diamond Exchange District (one of the world's major diamond exch ...
,
Israel
Israel, officially the State of Israel, is a country in West Asia. It Borders of Israel, shares borders with Lebanon to the north, Syria to the north-east, Jordan to the east, Egypt to the south-west, and the Mediterranean Sea to the west. Isr ...
. The name Zend is a combination of their forenames, Zeev and Andi.
The first version of the Zend Engine appeared in 1999 in PHP version 4. It was written in
C as a highly optimized modular back-end, which for the first time could be used in applications outside of PHP. The Zend Engine provides memory and resource management, and other standard services for the PHP language. Its performance, reliability and
extensibility
Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be t ...
played a significant role in PHP's increasing popularity.
This was followed by ''Zend Engine 2'' at the heart of
PHP 5.
This was followed by ''Zend Engine 3'', originally codenamed ''phpng'', which was developed for
PHP 7 and significantly improves performance.
The newest version is ''Zend Engine 4'', which was developed for
PHP 8.
The source code for the Zend Engine has been freely available under the
Zend Engine License (although some parts are under the
PHP License
The ''PHP License'' is the open-source license under which the PHP scripting language is released. The PHP License is designed to encourage widespread adoption of the source code. Redistribution is permitted in source or binary form with or ...
) since 1999, as part of the official releases from php.net, as well as the official
git
Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Design goals of Git include speed, data integrity, and suppor ...
repository or the
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
mirror. Various volunteers contribute to the PHP/Zend Engine codebase.
Architecture
Zend Engine is used internally by PHP as a compiler and runtime engine.
PHP Scripts are loaded into memory and compiled into Zend
opcodes.
These opcodes are executed and the HTML generated is sent to the client.
To implement a Web script interpreter requires three parts:
# The interpreter part analyzes the input code, translates it, and executes it.
# The functionality part implements the functionality of the language (its functions, etc.).
# The interface part talks to the Web server, etc.
Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3.
Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions.
See also
*
References
External links
*
*
Official git repository*
{{PHP
1999 software
C (programming language) software
PHP
PHP software