わーい \(^o^)/ PL/0を JS で書いたよー!

最近、JavaScriptで小さな処理系を書くのが流行っているらしい。
45歳を過ぎた私もやってみたいと思い、昔とった杵柄で、PL/0の処理系をJavaScriptで書いてみた。こちらをどうぞ。

amachangみたいに4時間というわけにはいかなくて、動き出すには6時間くらい(何日かに小分けにしたので)かかったと思う。

PL/0については、Wikipediaの解説が詳しい。

この実装の特徴としては、

  • 教科書的な降下型パーサ(1トークン先読み)
  • 簡単なPコードインタプリタでの実行(この部分だけ以前Cで書いたものを流用・移植した)
  • 上記のごとくあまり特徴はない。素直にPL/0をJavaScriptで実装した
  • まだ、手抜きが多い。単項マイナスもまだ。実装は容易です。

思ったこと

もうPascalでは書けないと思いました(^^; デバッガもないCabezonで、よく8000行も書いたなぁー

Firebugを初めて開発で(つまり脆弱性検査以外で^^; )使いました。今更ですが、コレ便利ですね。これがなかったら書けなかったような気がする。書いているうちに構造をコロコロ変えましたが、Firebugのお掛けで楽が出来ました。
PL/0だとあまり遊べませんが、なにかの参考になれば幸いです(_ _) 正しいPL/0の遊び方としては、elseを追加するとか、手続きの引数を追加するとか、関数を追加するなどして楽しんでください。
JavaScriptによるソースは、Public Domainとします。