LoginSignup
111
114

More than 5 years have passed since last update.

PHP処理系の一覧

Last updated at Posted at 2015-03-22

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

公式処理系

PHP

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

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

HHVM

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

Quercus

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

Phalanger

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

KPHP

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

HippyVM

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

JPHP

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

ePHP

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

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

Hack

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

Zephir

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

PHP QB

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

Recki-CT

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

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

HipHop

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

phc

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

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

"Classic" Roadsend PHP

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

Roadsend PHP Raven

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

PHP-to-Scala Migration Helper

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

PHPPHP

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

Pipp

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

P8

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

111
114
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
111
114