nadesiko3php

Japanese Programming Language "Nadesiko3" with PHP

Usage no npm install needed!

<script type="module">
  import nadesiko3php from 'https://cdn.skypack.dev/nadesiko3php';
</script>

README

なでしこ3PHP - nadesiko3php

日本語プログラミング言語「なでしこ」をPHPで動かすプロジェクト。 サーバーでの利用を想定しています。

これは何?

日本語プログラミング言語「なでしこ」をPHP上で動かすためのプロジェクトです。格安のレンタルサーバーではスクリプト言語としてPHPが採用されていることが多いようです。そこで、なでしこ3PHPを使えば、そうした格安サーバーでもなでしこのプログラムを動かせます。

動作原理

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

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

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

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

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

実行に必要なツール

なでしこ3エンジンコアは、Node.jsで開発されています。 そのため、PHP7以上とNode.jsを最初にインストールしておいてください。

なでしこ3PHPのインストール方法

npmを使ってインストールする場合:

$ npm -g install nadesiko3php

リポジトリから取得する場合:

$ git clone https://github.com/kujirahand/nadesiko3php.git
$ npm install

リポジトリから取得した場合は、npm binのディレクトリにパスを通してください。

使い方

コマンドラインで以下のようなコマンドを実行すると「(プログラム).php」というファイル(およびなでしこ3ランタイムが入ったsrcフォルダ)が作成されます。

$ phpnako -c (プログラム).nako3

サーバーで動かす場合

生成したプログラム(*.php)+本リポジトリのsrcフォルダ(なでしこ3ランタイム)をWebサーバーに配置すると実行できます。

コマンドラインで即時実行もできます

なお、普通にコマンドラインでPHPを使いたい場合は、以下のように記述してプログラムを即時実行できます。Node.js版のcnako3でも同じように実行できますが、PHP版も意外と便利かも。

# 普通にプログラムを即時実行
$ phpnako (プログラム).nako3

# ワンライナーでコマンドラインでプログラムを指定して実行
$ phpnako -e "1+2×3を表示。"