Phalanger

提供: MonoBook
2012年3月30日 (金) 15:26時点における111.191.233.0 (トーク)による版
ナビゲーションに移動 検索に移動

Phalangerとは、PHPのソースコードをMonoおよび.NET Framework向けのコンパイラである。 また、PhalangerにはVisual Studio Shellをベースとした無償のPHP統合開発環境(IDE)も含まれる。

CLR版とDLR版

Phalangerプロジェクトでは、PHPソースコードを事前にコンパイルを行う共通言語ランタイムCLR)向けコンパイラと、実行時にコンパイルを行う動的言語ランタイム DLR)向けコンパイラの両方を提供している。

CLR版はC#などと同様に事前にコンパイルし、実行ファイルなどを生成する方式となっている。 Phalangerは、[[PHPで書かれたアプリケーションのセキュリティ向上とパフォーマンス向上、および完全な64bit対応を主目的として開発が進められており、CLR版はPHP向けソースコード品質検証ツールとしての意味合いも強い。また、CLR版を用いてPHPソースコードをCILバイトコードに変換しておけば、プロプライエタリなアプリケーション向けの簡易的なソースコード難読化ソフトとしても使える。

DLR版は純正PHPと同様の使い勝手を実現したものであり、使い勝手はインタプリタに近く、クラスや関数の初回利用時に動的に逐次コンパイルが行われ実行される。なお、コンパイル結果物はキャッシュされ、クラスや関数を再度使用する際にはコンパイルは行われずにキャッシュを用いるため、多くの場面において非常に高速に動作する。

なお、Phalangerプロジェクトでは、PHPアプリケーションのセキュリティ向上のためにも、Webアプリケーションの開発中はDLR版で手軽に、本番運用前にはCLR版で事前に完全にコンパイルが通り、警告なども完全に出ない状態にするのが望ましいとしている。

互換性

Phalangerは多くのPHPアプリケーションを無改造で動かすことができる。 公式サイトでは動作例として、WordPressやMediaWiki、phpMyAdmin、phpBBなどが紹介されている。

パフォーマンス

Phalangerは純正のPHPよりも多くの場面で高速に動作する。

Phalangerはパフォーマンスに重点をおいて開発されており、.NET Framework(.NET仮想マシン)を用いる最大の理由も、コンパイル時にプラットフォーム非依存の最適化、実行時にプラットフォーム依存の最適化を行うなど、あらゆる時点でPHPプログラムを極限まで最適化するためである。汎用のコンパイラ・フレームワークとしての利用が第一目的であり、.NET Frameworkを用いる多くの言語で大きな特徴として取り上げられることの多い「異なるプログラミング言語間での連携」は二の次のような扱いとなっている。

歴史

Phalangerはチェコ共和国のプラハ・カレル大学で始まったオープンソース・プロジェクトである。

2008年に開催されたGoogle Summer of Codeにおいて、Mono開発チームがSilverlight互換を目指すMoonlightプロジェクトのデモンストレーションのひとつとして「Silverlightの中で動くPHP」を発表し、Phalangerは一躍注目されることとなった。

2009年にはPhalanger開発チームを中心にDevsense社が設立され商用サポート業務も行われている。またFacebook上に開設された公式グループ(掲示板のようなもの)では活発な議論が繰り広げられている[1]

インストール


関連項目

  • F# - F#の中の人が興味を示しPhalangerプロジェクトに参加している。
  • IronPython
  • IronRuby

参考文献

外部リンク