KQ on PHP

祭りレポートを書く前に@nvsoftsさんプログラミング言語KQPHP版を作ったので紹介してみようと思う。(→GitHub

KQ自体がBrainf*ckの方言なので、オリジナルの移植ではなくて以前に作ったBF処理系の焼き直し。ただしトークンをすげ替えただけでなくて、中身もちょっと整理している。

<?php
namespace KQ;

class Driver
{
    const DOOR_WILL_CLOSE = 'ダァシエリイェス';
    //snip.

とか、

$kq = new KQ\Driver();
echo $kq->doorWillClose(/*snip.*/);

とか、しょうもないネタを仕込んではいるけど、中身は方言をオリジナルBrainf*ckに変換、さらに実行コードに変換、簡易VMで実行と、BF処理系としての完成度はそれなりに高いと自負している。

ひとつ反省点を挙げるとすれば、方言とBFの変換部とBFコアは別クラスにすべきだった。あとは気が向いたら連続する+-をまとめる最適化を施してみたいが、たぶんずっとしない。