PHP
HHVM

PHP処理系の一覧

More than 3 years have passed since last update.

PHPの処理系について調べてみたところ、想像以上にたくさんあることがわかりました。マイナーなPHP処理系に興味を持った人のために、一覧形式で紹介します。また、他の処理系をご存じの方のタレコミをお待ちしております。


公式処理系


PHP

実装言語はC。Windowsを含む全てのプラットフォームに対応しており、実行可能バイナリの形でビルドできる(CLI・CGI・ビルトインサーバ)。また、ApacheモジュールやFastCGIを受け付けるデーモン(PHP-FPM)などの形でも動作する。

http://php.net/


その他の処理系(PHPコードがそのまま動くもの)


HHVM

Facebook製のPHP実行環境。実装言語はC++。JITコンパイルによる高速化が特徴。現時点ではx64 Linux環境がメインターゲットで、MacではJITコンパイラが動かない模様。FastCGIを受け付けるWebアプリケーションサーバとして動作する。また、コマンドラインからPHPプログラムを実行することもできる。

http://hhvm.com/


Quercus

JVM上で動作するPHP実行環境。もちろんJavaで書かれている。開発元はresinで有名なCaucho Technology社で、長期間メンテナンスされている。互換性も一定以上のようで、商用環境でも採用事例がある模様。

http://quercus.caucho.com/


Phalanger

.NET環境で動くPHPコンパイラ+ランタイム。C#で書かれており、PHPソースコードから.NETアセンブリを出力する。本家PHPより高速に動作するだけでなく、PHPをVisualStudioで開発したり.NETの資産を利用したりする狙いもあるようで、かなり夢が広がる。開発者がDEVSENSE社を起業して有償サポートを提供しているが、このところ開発が停滞しているように見える。

http://www.php-compiler.net/


KPHP

HHVMより高速に動作するというPHPからC++へのコンバータ。C/C++で書かれている。開発元はロシア最大のSNSを運営するВКонтакте社。情報が少なすぎるのが難点か。

https://github.com/vk-com/kphp-kdb


HippyVM

実装言語はPython。PyPyを利用してJITコンパイルを行う。コードによってはHHVMより高速に動作する。現時点ではx64 Linux上でしか動作せず、PHP本家との互換性も低い。開発元のBaroque Software社はPyPy開発者を含む少数精鋭の会社のようで、このプロジェクトに力を割く気はあまり無さそうに見える。

http://hippyvm.com/


JPHP

Javaで書かれたPHP実行環境。PHPソースコードを実行時にJavaバイトコードにコンパイルする。PHP本家との互換性はそこまで高くないが、他の処理系と比べても高速なのが特徴である。ロシア人の開発者一人で開発しているようで、プロジェクトとしては先行きが怪しいと言わざるを得ないだろう。

https://github.com/jphp-compiler/jphp


ePHP

Erlangで書かれたPHP処理系。パッと見で互換性も低そうだけど、Erlangというだけでロマンがあって良い。誰か試した人がいたら感想をください。

https://github.com/altenwald/ephp


その他の処理系(PHPコードの修正が必要なもの)


Hack

FaceBookが開発したPHPによく似た言語で、HHVM上で動作する。基本はPHPなのだが、厳密な型やジェネリクスが導入されたりしている。型を厳密に指定すればするほどJITコンパイルで性能が稼げるということなのだろう。元のPHPソースコードがマトモなら移植は簡単そう。

http://hacklang.org/


Zephir

PHPに似ているようでそれほど似ていない言語。Zephirで書いたソースコードを元に、PHPエクステンションのソースコード(C言語)を出力する。重い処理をZephirで書いてエクステンションを組み込めばPHPから呼び出せる。既存PHPソースコードからの移植はやや面倒そうな印象。

http://zephir-lang.com/


PHP QB

PHPの一部の関数をネイティブコードとして実行するようなPHPエクステンション。関数のアノテーション部に引数や返り値の型を書き、PHPのサブセットのような言語で記述することで、その関数がネイティブコードとして実行される。そもそも重い画像処理を高速化するような意図のようで、汎用性は低そう。

http://php-qb.net/


Recki-CT

PHP製のPHPコンパイラ。PHPソースコードをPHP-Parserで構文解析し、PHPのlibjit実装であるJit-Fuを内部的に呼び出し、元のPHP関数に対応するJit-Fu関数を動的に構築する。呼び出す関数のソースコードはそのまま利用できるが、呼び出し元のソースコードを書き換えるような使い方になる。

https://github.com/google/recki-ct


既に停止しているプロジェクト


HipHop

Facebook製のPHPソースコードコンバータ。PHPソースコードをC++コードにコンバートする。HHVMにリプレースされた。


phc

C++で書かれたPHPコンパイラ。実行バイナリおよびPHPエクステンションのCソースコードを出力できる。最終リリースは2011年の0.3.0.1。

ASTを作るのにmaketeaを利用している。実行バイナリは自前では作れないと思うが、どうやってるのかは調査中。

http://www.phpcompiler.org/


"Classic" Roadsend PHP

実装言語はCとScheme。INRIAで開発されたScheme処理系Biglooを使って実行バイナリを出力する。商用に利用したりphpBBが動いたりしていたらしいので、一定の完成度だと思われる。

http://www.roadsend.com/


Roadsend PHP Raven

Roadsend PHPの作者がLLVMベースのPHPインタプリタ・JITコンパイラを実装しようとしたもの。実装言語はC++。HipHopのリリースを見て開発を中止した模様。

https://github.com/weyrick/roadsend-php-raven


PHP-to-Scala Migration Helper

PHPからScalaへのコンバータ。開発は2010年で止まっている模様。

https://code.google.com/p/php-to-scala-migration-helper/


PHPPHP

PHPで書かれたPHP処理系。PHP-Parserで構文解析してインタプリタ実行する。速度も互換性も実用レベルではないが、実装としては興味深い。

https://github.com/ircmaxell/PHPPHP


Pipp

Parrot上のPHP実装。2009年で開発が止まっている。

https://github.com/bschmalhofer/pipp/wiki


P8

IBMのWeb開発環境・実行環境であるWebSphere sMashが内蔵していた独自実装のPHP実行環境。Java製。sMashの無償コミュニティ版であるProject Zeroがドメインごと死んでおり状況不明。そもそも単体で取り出せたのかどうかも不明。