QIQエクステンションがやっていることについて。 PHPというかZend Engineでは、コンパイラとエクゼキュータが関数ポインタになっており、それぞれファイルの内容から実行コードを生成するzend_comiple_file、文字列から実行コードを生成するzend_compile_string、実行コードに対応するハンドラを呼び出すzend_executeが定義されています。また、それらのデフォルト実装としてcompile_file()、compile_string()、execute()があります。 言語としては良いか悪いかは別にして、堅くも柔らかくもない独自のポジションにあるPHPですが、コアのZend Engineはコンパイラやエグゼキュータが差し換えられたり、実行時のフックが追加できたりと、実は拡張性に富んでいるのです。でもマルチスレッドと演算子オーバーローディングだけは勘弁な!
![QIQの設計と実装 - 讃容日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/f37631703c37e0ead9f426e2eb1ca29b5eff661a/height=288;version=1;width=512/http%3A%2F%2Fart7.photozou.jp%2Fpub%2F820%2F109820%2Fphoto%2F7468411.png)