JavaScriptでNode.JS/ブラウザ上で動くArc処理系を作った。aologスマートフォン用の表示で見るaologこの広告は、90日以上更新していないブログに表示しています。2014-05-14JavaScriptでNode.JS/ブラウザ上で動くArc処理系を作った。作った去年の夏ぐらいに、NodeJS/ブラウザ上で動くArc言語*1処理系「ArcJS」を作りました。全体として2500行ぐらいでStackVMまで実装してあるので、処理系を作りたい人は参考になるかもしれません。http://smihica.github.io/arc-js/既に実際に仕事で部分的に使ってみていて、結構使えているので紹介します。(仕事では、ArcJS上を使い、ブラウザ上でDSLを走らせ、DSL->Pythonコードを生成するのに使っています)ArcJS特徴としては以下のようになっています。逐次実行方式ではなく、JavaScriptでStackVMを作って動かしているので高速。*2コンパイラのセルフホスティングを実現している。めぼしい機能は一通り実現されている。本家のArcにないArcJS独自の機能として、symbol-syntaxのユーザー定義ネームスペースなどを使う事が出来ます。以下にNodeJS動かしてみる際の簡単なチュートリアルを書きます。*3インストールnpmからインストールできます。arc-jsこれでarcjsとarcjscというコマンドが用意されます。--version0.1.2では早速やってみましょう。arcjsと打つと以下のようにREPLが起動しますarc>ちょっとREPLに色々打ち込んで試してみます。n=0>>Taggedはオブジェクト指向的な事をするのに使えます。リストのパターンマッチも使えます。