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

Zam*_*son 10 c++ performance rule-engine mathematical-expressions c++11

我正在寻找写入的便携式轻量级库的建议C++,它支持数学和业务规则表达和评估.据我所知C++,没有提供这样的功能STL.

基本要求如下:

要评估的表达式将由数字和字符串以及表示数字或字符串的变量组成.

预计某些表达式每秒会被评估多次(1000-2000次),因此需要对表达式进行高性能评估.

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

我已经google了一下,但我能找到的大多数"库"都是分流码算法的简单例子,大多数表达式解析器,在同一步骤中执行解析和评估,使它们不适合连续重新评估,并且大多数只支持数字.

我在找什么:

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

示例业务规则:

'rule_result =(remaining_items <min_items)和(item =="beach ball")'

Mac*_*cke 13

请参阅本答案中概述的C++数学表达式库.

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

  • 我们给了exprtk库一个go,它非常适合表达式eval感谢你的建议. (9认同)