これはまた面白い…。 PHPはWebの世界において最も普及しているサーバサイドプログラミング言語ではないでしょうか。巨大なところとしてはFacebookでメイン言語として使われているというのが知られています。そんなPHPを旧来の世界でも使いたいと思った人たちがいました。 それまでC言語を使ってCGIを書いて動かしていた組み込み系の中でもPHPを使って書ければ良いのに…そんな願いを叶えるために作られたのがPH7 Engineです。

PH7 Engineの使い方

PH7 EngineではPHPのコードをそのまま実行するのではなく、ヒアドキュメントしてソースコード中に定義する形になっています。

#define PHP_PROG "< ?php "\
"echo 'Welcome guest'.PHP_EOL;"\
"echo 'Current system time is: '.date('Y-m-d H:i:s').PHP_EOL;"\
"echo 'and you are running '.php_uname();"\
"?>"

そしてこれをコンパイルし、実行バイナリとして出力します。

コンパイル。ウォーニングが幾つも出ます。

コンパイルが終われば実行できます。

$ ./ph7_test 
Welcome guest
Current system time is: 2014-02-20 12:06:59
and you are running Darwin 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 macbook-pro.local x86_64

関数の実行もできます。

機能としては下記が挙げられています。

  • 関数、メソッドのオーバーライド
  • コンマ式の採用
  • 厳密な文字列比較
  • 強力なオブジェクト指向
  • 64bit対応
  • UTF-8サポート
  • ANSI Cではスレッドセーフ
  • ネーム空間をサポートしたXMLパーサ、CSVリーダー/ライター、UTF-8エンコード/デコード、Zipアーカイブ抽出、JSONエンコード/デコード

PHPの全ての機能を満たす訳ではありませんが、簡易的なWebアプリケーションであればコンパイルすることでかなり高速に動作するものと思われます。PHPをC++にする技術としてFacebookのHipHop for PHPが知られていますが、それとはまた違う面白い試みです。

PH7 EngineはSymisc Public Licenseのオープンソース・ソフトウェア(GPL互換とのこと)です。

symisc/PH7 PH7 Engine