Jactl 是一种功能强大的脚本语言,适用于基于 Java 的应用程序,其语法是从 Java 和 Groovy 借用的位的组合,并添加了一些 Perl 以实现良好的效果。
这是一种用于嵌入实时 Java 应用程序(例如游戏引擎、数据库引擎、支付引擎等)的脚本语言。
- 永远不会阻塞事件循环线程
- 基于 Java/Groovy 的语法(带有一点 Perl)
- 支持在失败后在其他地方恢复/恢复检查点执行状态
- 开源(Apache 许可证 2.0)
- 安全的
- 易于通过脚本使用的应用程序特定功能进行扩展
- 编译为字节码
Jactl 旨在集成到 Java 应用程序中,为客户/用户提供一种安全、锁定的方式来定制应用程序行为。
它特别适合事件循环/反应式应用程序,因为它基于连续性的内置挂起/恢复机制确保它永远不会阻塞正在运行的执行线程。
这是一些简单的 Jactl 代码:
int fib(int x) { |
由于在 Jactl 中分号是可选的,输入是可选的,return对于函数的最后一个表达式是可选的,并且双引号字符串允许嵌入表达式,所以前面的示例也可以这样写:
def fib(x) { x <= 2 ? 1 : fib(x-1) + fib(x-2) } |
这是一个更高级的示例,它将输入作为行进行流式传输,搜索 Markdown 标题并生成目录:
// Sanitise text to make suitable for a link |