Japanese Programming Language "Nadesiko3" with PHP
npm install nadesiko3php日本語プログラミング言語「なでしこ」をPHPで動かすプロジェクト。
サーバーでの利用を想定しています。
- 「なでしこ3」のWEBサイト
- なでしこ3PHPに関する詳しい説明
- 開発「なでしこ3」のリポジトリ
- 利用サンプル
使い方を確認するには、利用サンプル を確認すると良いでしょう。
日本語プログラミング言語「なでしこ」をPHP上で動かすためのプロジェクトです。格安のレンタルサーバーではスクリプト言語としてPHPが採用されていることが多いようです。そこで、なでしこ3PHPを使えば、そうした格安サーバーでもなでしこのプログラムを動かせます。
参考までに、2022年8月時点での格安レンタルサーバーの価格です。いずれも月々のお小遣いで契約できる価格(大抵、キャンペーンがあるのでもっと安い)です。
| 提供者 | 価格 | URL |
|-------|-----|---------------------|
| ロリポップ | 月132円(初期費用:1650円) | https://lolipop.jp/ |
| さくらのレンタルサーバー | 1年1571円(月換算131円) | https://rs.sakura.ad.jp/ |
| Xserver | 1年分一括1100円(月換算92円) | https://www.xserver.ne.jp/ |
| ConoHa WING | 1時間2.2円(月1320円) | https://www.conoha.jp/wing/ |
なでしこ3PHPの仕組みですが、なでしこ3のプログラムをPHPのプログラムに変換して実行します。
もともと、オリジナルの「なでしこ3」では、なでしこのプログラムを、抽象木構文(AST)に変換して、それを元にしてJavaScriptを出力しています。
そこで、このプロジェクトでは抽象木構文(AST)からPHPのプログラムを出力します。
- なでしこ3 → AST → JavaScript (なでしこ3オリジナル)
- なでしこ3 → AST → PHP (なでしこ3PHP)
なでしこ3エンジンのコアは、Node.jsで開発されています。
そのため、実行にはPHP7以上とNode.jsが必要です。
- (1) 本リポジトリに含まれる、win32-start.nakoとphp.iniを同じフォルダに保存します。
- (2) なでしこv1をダウンロードし、なでしこエディタ(nakopad.exe)でwin32-start.nakoを開いて実行してください。
- (3) ボタンが複数表示されるので、上から順にボタンをクリックしていくと、セットアップできます。
- (4) 本リポジトリのwin32-edit.nakoを使うと、なでしこ3PHPの専用エディタが起動します。
- なでしこv1で作られたエディタなので、Shift_JIS外の文字コード(絵文字を含む)を扱えませんが、手軽になでしこ3PHPのコードを実行できます。
- 手順をまとめたマニュアル(PDF)もあります。ご覧ください。
npmを使ってインストールする場合:
``sh`
npm -g install nadesiko3php
リポジトリから取得する場合:
`sh`
git clone https://github.com/kujirahand/nadesiko3php.git
npm install
リポジトリから取得した場合は、npm binのディレクトリにパスを通してください。
コマンドラインで以下のようなコマンドを実行すると「(プログラム).php」というファイル(およびなでしこ3ランタイムが入ったsrcフォルダ)が作成されます。
`sh`
phpnako -c (プログラム).nako3
あるいは作業しているフォルダに対して監視を行って、「.nako3」ファイルが更新されたら自動的にコンパイルするように指定できます。
`sh`
cd (作業対象のパス)
phpnako --watch
なおPHPのサーバーモードを使えば、なでしこPHPとPHPだけで開発が可能です。以下のコマンドでPHPのサーバーが起動します。その後、ブラウザで「http://localhost:8888」へアクセスすると実行結果を確認できます。
`sh`PHPのローカルサーバーを利用する場合
php -S localhost:8888 -c php.ini
生成したプログラム(*.php)+本リポジトリのsrcフォルダ(なでしこ3ランタイム)をWebサーバーに配置すると実行できます。
なお、普通にコマンドラインでPHPを使いたい場合は、以下のように記述してプログラムを即時実行できます。Node.js版のcnako3でも同じように実行できますが、PHP版も意外と便利かも。
`sh`普通にプログラムを即時実行
phpnako (プログラム).nako3
`sh`ワンライナーでコマンドラインでプログラムを指定して実行
phpnako -e "1+2×3を表示。"
なでしこ3の以下のプラグイン命令が使えます。
- plugin_system
- plugin_node
- plugin_php
- (1) プラグインを作ります。plugin_php.phpが参考になります。
- (2) PHPプログラムから自動的に関数定義をJSONでエクスポートします。cd src && php convert_php2json.php`を実行します。