我正在寻找用C编写的便携式轻量级库的建议,支持数学和业务规则的表达和评估.我明白C不在STL中提供这样的功能.
基本要求如下:
要评估的表达式将由数字和字符串以及表示数字或字符串的变量组成.
某些表达式预计将被多次评估(1000-2000次),因此需要对表达式进行高性能评估.
本来是我公司的项目,我们将所有业务规则编码为从基本表达式类派生的类.问题是,这种方法在表达式数量增加时不能很好地扩展.
我已经搜索到了,但是我可以找到的大多数“图书馆”都是分流码算法的大概简单例子,大多数表达式解析器在同一步骤中执行解析和评估,使得它们不适合连续重新评估,而且只支持数字.
我正在寻找:
- Library written in C++ (C++03 or C++11)
- Stable/production worthy
- Fast evaluations
- Portable (win32/linux)
- Any suggestions for building high performance business rules engine.
业务规则示例
‘rule_result =(remaining_items< min_items)和(item ==“beach ball”)'
解决方法
参见
this answer概述的
C++ Mathematical Expression Library.
但是,如果您真的想要速度,请考虑将表达式直接编译为C/C++,然后动态加载它们(共享对象/ DLL).