java脚本引擎的设计原理浅析
本人在阿里巴巴长期担任和负责规则引擎、流程引擎相关的技术开发,另外还负责开发和维护开源项目:
https://github.com/alibaba/QLExpress
QLExpress是一个脚本引擎工具,类似Groovy,JRuby等,是为了解决当时电商规则动态编译、表达式高精度计算、复杂布尔运算、自定义函数和操作符号、语法树生成等需求而设计的。QLExpress项目开源自2012年,截至目前已经迭代了60多个版本,(在阿里的专有开源社区 index - Taocode )后在社区和集团内部却意外获得非常好的反响。
然而,我要很不客气的讲,在众多优秀的脚本引擎工具list中,QLExpress还很不完美。本篇结合自己的工作和技术研究,列举其中一些比较有意思的。
一、分类标准
1、编译型 vs 解析性
如果能够产生一个独立的class文件则属