わーい \(^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とします。