なでしこ3PHPについて *

なでしこ3PHPで作ったBBS
なでしこ3PHPで作ったBBS

なぜPHP? *

なでしこ3は、基本的にブラウザ上で動くプログラムを作ることができます。なでしこ3のプログラムは、JavaScriptに変換されることでブラウザで動きます。JavaScriptに変換されることを利用して、サーバーサイドJavaScriptのNode.js等を使えば、サーバーでもなでしこ3を動かすことができます。

しかし、残念なことに、月100円+αで使えるレンタルサーバーの多くは、Node.jsを動かすことができません!そうしたレンタルサーバーの多くは、PHPを使ってプログラムを動かします。そこで、なでしこ3のプログラムがPHPに変換されるなら、格安レンタルサーバーでも、なでしこを動かすことができるというのが、本プロジェクトです。

『いつでも、どこでも、サーバーでも動く「なでしこ」』を合い言葉に開発されているのが、なでしこ3PHPです。

動作原理 *

なでしこ3PHPの仕組みですが、なでしこ3のプログラムをPHPのプログラムに変換します。

もともと、なでしこ3では、なでしこのプログラムを、抽象木構文(AST)に変換し、それを元にしてJavaScriptを出力しています。そこで、このプロジェクトでは抽象木構文(AST)からPHPのプログラムを出力します。

なお、PHPとJavaScriptは非常によく似ています。出力するコードをJSからPHPに書き換えるのも、それほど大変ではありませんでした。そのため、実質1日の作業で対応できました。ただし、なでしこの標準関数はかなり量があるので、それをPHPに移植するのに数日かかりましたが。

  • なでしこ3 → AST → JavaScript (なでしこ3オリジナル)
  • なでしこ3 → AST → PHP (なでしこ3PHP)

この仕組みを利用すれば、他のプログラミング言語を出力するのも簡単です。

使い方は? *

現状、なでしこ3PHPを動かすのに、Node.jsを使います。そのため、PCにNode.jsをインストールします。そして、phpnakoというコマンドを使って、なでしこ3のプログラムをPHPに変換できます。変換されたPHPをサーバーにアップすれば、サーバーでプログラムが動きます。

PHPを生成するまでの手順 *

  • Node.jsをインストールしておきます。
  • コマンドライン(ターミナル)上で「npm install -g nadesiko3php」を実行します。
  • なでしこ3のプログラム「index.nako3」を作成します。
  • コマンドラインで「phpnako -c index.nako3」を実行します。
  • すると「index.php」とランタイム(src)が出力されます。

参照 *