Pnuts

Pnutsは、スクリプト言語とその処理系で、現在はJavaVM上で動作するスクリプト言語です。

前から気になっていたのでevalでスクリプトを実行する簡単なもので弄ってみました。

package jp.co.abby.pnutssample;

import pnuts.lang.Context;
import pnuts.lang.Package;
import pnuts.lang.Pnuts;

public class PnutsEvalTest {
    public static void main(String[] args) {
        Context context = new Context();
        Package pkg = context.getCurrentPackage();
        String script1 = "result = 10 + 20";
        Pnuts.eval(script1, context);
        Integer result = (Integer)pkg.get("result".intern());
        System.out.println("script=" + script1 + "\nresult=" + result);
    }
}

実行結果

script1=result = 10 + 20
result=30

次に、スクリプトの中の変数arg1とarg2に値を設定してみました

public class PnutsEvalTest {
    public static void main(String[] args) {
        Context context = new Context();
        Package pkg = context.getCurrentPackage();
        String script2 = "result = arg1 + arg2";
        pkg.setConstant("arg1", new Integer(10));
        pkg.setConstant("arg2", new Integer(20));
        Pnuts.eval(script2, context);
        Integer result = (Integer)pkg.get("result".intern());
        System.out.println("script2=" + script2 + "\nresult=" + result);
    }
}

実行結果

script2=result = arg1 + arg2
result=30

正しく設定されていますね。
Pnutsは依存するjarファイルも1つだけですし、非常に簡単に試すことが出来ると思います。

時間のあるときにWebアプリケーション用の機能も触ってみようと思います。