【发布时间】:2013-10-13 10:36:27
【问题描述】:
我正在寻找以C++ 编写的可移植轻量级库的建议,这些库支持数学和业务规则表达式和评估。我了解C++ 在STL 中不提供此类功能。
基本要求如下:
要评估的表达式将由数字和字符串以及表示数字或字符串的变量组成。
预计某些表达式每秒会被计算多次(1000-2000 次),因此需要对表达式进行高性能计算。
最初是我公司的项目,我们将所有业务规则编码为派生自基本表达式类的类。问题是随着表达式数量的增加,这种方法不能很好地扩展。
我用谷歌搜索过,但我能找到的大多数“库”都是调车场算法的简单示例,大多数表达式解析器在同一步骤中执行解析和评估,这使得它们不适合连续重新评估,并且大多数只支持数字。
我在寻找什么:
- 用 C++(C++03 或 C++11)编写的库
- 稳定/值得生产
- 快速评估
- 便携(win32/linux)
- 关于构建高性能业务规则引擎的任何建议。
示例业务规则:
'rule_result = (remaining_items
【问题讨论】:
-
见schematron(反思一下,我怀疑它能否处理这些速度,除非,也许规则是一起批处理的)
-
看起来很有趣,但我更关注规则会发生什么,而不一定是如何存储或表示。我肯定会研究 schematron,因为它似乎还有其他一些巧妙的想法。
-
我一直在寻找基于 RETE 算法的库,但从未完全找到我需要的东西。我可能有一些建议,但我没有机会面对他们。
-
只是出于好奇,为什么不使用可嵌入的脚本语言,例如 [Lua]lua.org?这将为您提供最大的灵活性,而无需太多开销
标签: c++ performance c++11 rule-engine mathematical-expressions