Interpreter interpreter = new Interpreter();
interpreter.eval("cachedScript = cacheScript('script.bsh', 'someScriptCode')");
for (int i = 0; i < 10; i++) {
interpreter.eval("cachedScript.invoke(" + i + ")");
}
interpreter = null;
void cacheScript(String scriptName, String scriptCode) {
CompiledScript compiledScript = compile(scriptCode);
cache.put(scriptName, compiledScript);
}
Object invoke(String scriptName, Object... args) {
CompiledScript compiledScript = cache.get(scriptName);
return compiledScript.execute(args);
}