表达式计算引擎,Fel 0.7 版本发布

fmms 12年前
     <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;"><strong style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">Fel是轻量级的高效的表达式计算引擎。</strong></p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">Fel在源自于企业项目,设计目标是为了满足不断变化的功能需求和性能需求。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;"><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> Fel是开放的,引擎执行中的多个模块都可以扩展或替换。Fel的执行主要是通过函数实现,运算符(+、-等都是Fel函数),所有这些函数都是可以替换的,扩展函数也非常简单。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> Fel有双引擎,同时支持解释执行和编译执行。可以根据性能要求选择执行方式。编译执行就是将表达式编译成字节码(生成java代码和编译模块都是可以扩展和替换的)<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> </p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">Fel基于Java1.5开发,适用于Java1.5及以上版本。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;"><strong style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">特点:</strong><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 易用性:API使用简单,语法简洁,和java语法很相似。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 轻量级:整个包只有300多KB。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 高 效:目前没有发现有开源的表达式引擎比Fel快。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 扩展性:采用模块化设计,可灵活控制表达式的执行过程。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 根函数:Fel支持根函数,“$('Math')”在Fel中是常用的使用函数的方式。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> $函数:通过$函数,Fel可以方便的调用工具类或对象的方法(并不需要任何附加代码),具体请看示例。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 不足:<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 支持脚本:否。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <strong style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">适应场景:</strong><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> Fel适合处理海量数据,Fel良好的扩展性可以更好的帮助用户处理数据。<br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> <br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> </p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">Fel同样适用于其他需要使用表达式的地方(如果工作流、公式计算、数据有效性校验等等)</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;"> <strong style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">此版本改进:</strong></p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">1:支持数组访问(array[i])和集合访问(list[i],set[i]等)。并支持多维数组及多维List。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">2:设置变量时可以指定变量类型(FelContext.setVar(..)),同时调整FelContext接口。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">3:四则运算返回的结果类型更精确。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">4:性能再度提升。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;">5:解决求负求正运算在编译时返回类型不正确的BUG。</p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;"> </p>    <p style="text-align:left;padding-bottom:0px;line-height:24px;margin-top:5px;padding-left:0px;padding-right:0px;font-family:微软雅黑, Verdana, sans-serif, 宋体;margin-bottom:10px;font-size:14px;padding-top:0px;"><strong style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">更多内容</strong><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 项目地址:<a style="padding-bottom:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;color:#3e62a6;padding-top:0px;" href="/misc/goto?guid=4958190306800877701" target="_blank">http://code.google.com/p/fast-el/</a><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 下 载:<a style="padding-bottom:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;color:#3e62a6;padding-top:0px;" href="/misc/goto?guid=4958333963848178852" target="_blank">http://fast-el.googlecode.com/files/fel-all-0.7.jar</a><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 文 档:<a style="padding-bottom:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;color:#3e62a6;padding-top:0px;" href="/misc/goto?guid=4958190701603200903" target="_blank">http://fast-el.googlecode.com/files/Fel%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%BC%95%E6%93%8E.doc</a><br style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;" /> 性能测试:<a style="padding-bottom:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;color:#3e62a6;padding-top:0px;" href="/misc/goto?guid=4958190702351374169" target="_blank">http://code.google.com/p/fast-el/wiki/Performance</a></p>