我正在寻找一种脚本语言:
- 一种可嵌入 Java 的脚本语言
- 实际上我的意思是不会作为本机代码执行,而是被解释的东西
- 安全(用户将上传他们的脚本,然后在服务器上执行)
- 无法访问某些“沙盒”之外的任何内容,无法访问线程、I/O 等。
- 只是流控制+算法/数据结构(可能是一些预定义的“类”,比如集合)+与显式提供的API交互
- 可以限制每个脚本的执行时间(n 秒或 n 条指令)
- 如果语言被解释,这是可能的。例如:将每条指令替换为“检查我是否应该执行下一条指令并执行或退出”
- 具有简单易读的语法
最终目标是能够运行不受信任的代码,这些代码应该只能使用提供的 API,而不会破坏任何东西(比如进入无限循环/消耗太多资源/访问除了提供的 API 之外的任何东西)
有一些我可以使用的现有语言吗?