首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++业务规则表达式解析器/评估

C++业务规则表达式解析器/评估
EN

Stack Overflow用户
提问于 2013-10-06 22:59:08
回答 2查看 855关注 0票数 10

我正在寻找用C++编写的便携式轻量级库的建议,这些库支持数学和业务规则表达式和评估。我知道C++没有在STL中提供这样的功能。

基本要求如下:

要计算的表达式将由数字和字符串以及表示数字或字符串的变量组成。

有些表达式需要每秒计算多次(1000到2000次),因此需要对表达式进行高性能的评估。

最初是我公司的项目,我们将所有业务规则编码为派生自基表达式类的类。问题是,随着表达式数量的增加,这种方法不能很好地扩展。

我在谷歌上搜索过,但我能找到的大多数“库”都是分流码算法的简单例子,大多数表达式解析器在同一步执行解析和评估,这使得它们不适合连续的重新评估,而且大多数只支持数字。

我要找的是:

  1. 用C++ (C++03或C++11)编写的库
  2. 稳定/生产价值
  3. 快速评价
  4. 便携式(win32 32/linux)
  5. 任何关于构建高性能业务规则引擎的建议。

商业规则示例:

'rule_result = (remaining_items < min_items)和( ==“沙滩球”)‘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-07 20:10:24

请参阅在C++数学表达式库中概述的这个答案

但是,如果确实需要速度,可以考虑直接将表达式编译为C/C++,然后动态加载它们(共享对象/DLL)。

票数 13
EN

Stack Overflow用户

发布于 2013-10-07 20:07:19

您考虑过用野牛 + Flex生成自己的解析器吗?它使用了一个基于FSM的LALR解析器实现,它快速且易于编写,并且支持在解析表达式时对它们的评估,以及用于重复评估的AST生成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19214937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档