Aviator(表达式执行引擎)发布1.0.1
Aviator是一个表达式执行引擎,最近由于工作上的原因,又将这个东西扩充了一下,加入了静态的编译优化和seq库。
对于类似”1+2”这样由常量组成的表达式,会在编译的时候直接计算出结果而非生成字节码运行时计算。非常量组成的表达式如”3.14RR+4/2” 也会在编译的时候优化成”3.14RR+2”,也就是说能在编译的时候计算的都计算出来,不能在编译的时候确定的就生成字节码,运行时动态计算。默认不启用编译优化,除非设置:
[java]
AviatorEvaluator.setOptimize(AviatorEvaluator.EVAL);
[/java]
另外,加入了seq库用于操作集合和数组,在aviator中,你可以用[ ]操作符直接访问数组和java.util.List,除此之外seq库添加了一些对数组和集合的常用操作,示例如下:
[java]
map(seq,println) //打印集合
map(seq,-) //取集合中元素的相反数组成的集合
include(seq,element) //判断element是否在集合中
sort(seq) //排序,返回新的集合
reduce(seq,+,0) //求和
reduce(seq,-,1) //求积
filter(seq,seq.gt(3) //大于3的元素组成的新集合
filter(seq,seq.exists()) //不为nil元素组成的新集合
count(seq) //集合大小
[/java]
可以看到seq库的风格偏向FP,但是能做的事情其实有限,毕竟aviator不是一门语言,seq库只提供了最常见的一些函数,其他的只有用户自己扩展了。
Aviator的一个介绍PPT
本文来源于"阿里中间件团队播客",原文时间"2010-09-07"
相关文章
- JetBrains 调查:JavaScript 最流行,Python 再次领先 Java
- JetBrains 调查:JavaScript 最流行,Python 超越 Java
- 清华大一Python作业太难上热榜!只上3节课,手撸AI算法
- Ubuntu 12.04 root默认密码? 如何使用root登录?
- 数据分析必备的5款Python爬虫库
- 只会柱状图、饼状图、折线图怎么行,来用Python画个热力图
- Python数据分析,必须要求掌握Pandas大熊猫
- 这么全面的Python数据科学小抄,赶紧收藏吧!
- Python数据分析实战,简单快速制作餐饮行业商业化报告
- Hive任务执行很慢,但是导入数据非常的快?
- 用Python画中国地图,实现各省份数据可视化
- 不会Python也能分析?从业以来,我写过最心痛的一次数据分析
- 带你快速搭建Hadoop运行环境
- Python数据分析条形图的各种绘制方式
- Python 数据科学入门:Matplotlib 基本的自定义
- Python数据科学家的学习路径
- Python数据建模指南:从数据到模型要怎么做,炼丹师的心路历程
- 分分钟做好可视化报表?Python、Excel跟它相比简直弱爆了
- Python的可视化库超全盘点,有你中意的一款吗?
- Python爬取+BI分析后,微博求助患者的眼泪,全被数据看见了