PCP: C++ Preprocessor構想

高木です。おはようございます。

先日もPHPでC++の前処理を行う話題を取り上げました。
この構想はかなり前からあって、最初はもう7年前のこの記事からスタートしたと思います。

当時はいろいろな変わった実験を行っていて、PHPを前処理に使うのもそのひとつでした。
ただ、半分以上ジョークのようなものだったので、本格的に整備することはしないままになっていました。

その後、PCPというツールを完成させるとか、プロトタイプを実際に使うとかいうことではなく、PHPをCやC++の前処理に使うという手法は実務でも行ってきました。
その経験も踏まえて、そろそろ形にしてもいいかなと思うようになってきたのです。

当初は簡単に使えるようにということで、単一の翻訳単位のみを扱い、PHPによる前処理 → Cコンパイル → リンクまでを一気にやってしまうツールを考えていました。
これは、Visual C++では普通に使えるオートリンク(#pragma comment(lib, “ライブラリ名”))を使って自動的にライブラリをリンクさせる)をGCCとかでは使えなかったため、同様のことをPCPにやらせようと考えたことも理由です。

実際には、単一の翻訳単位しか扱えないのは制約が大きすぎます。
また、前処理からコンパイルまで一気にやってしまうより、分離できるようにした方が何かと便利です。

この7年間に、C++はC++11を経てC++14が登場し、今年にはC++17が制定されます。
PHPのバージョンも上がり、現在の最新版は7.1.4です。
こうした処理系の進化も、構想にさまざまな影響を与えます。

ここまで暖めてきた構想は、そろそろ何らかの形にすべきですね。

今後はPCPを何とかして形にしていきたいと考えています。
もし一緒にやってみたいという方がおられましたらお声かけください。
現状、無報酬での参加になりますが、どこかの誰かが作った便利なものを使うだけの立場ではなく、たまには便利なものを作る「どこかの誰か」になるのも悪くありませんよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です