Я ищу предложения портативных облегченных библиотек, написанных на C++
, которые поддерживают выражение и оценку математических и бизнес-правил. я понимаю C++
не обеспечивает такую функциональность в STL
,
Основное требование заключается в следующем:
Выражения, которые будут оцениваться, будут состоять из чисел и строк и переменных, представляющих числа или строки.
Ожидается, что некоторые выражения будут оцениваться много раз в секунду (1000-2000 раз), поэтому существует потребность в высокопроизводительных вычислениях выражений.
Первоначально проект в моей компании, мы кодируем все бизнес-правила как классы, производные от базового класса выражений. Проблема в том, что этот подход плохо масштабируется, так как количество выражений увеличивается.
Я гуглил, но большинство «библиотек», которые я смог найти, являются довольно простыми примерами алгоритма шунтирования, большинство синтаксических анализаторов выражений, выполняют синтаксический анализ и оценку на одном шаге, что делает их непригодными для непрерывных переоценок, и большинство поддерживает только номера.
Что я ищу:
- Библиотека написана на C ++ (C ++ 03 или C ++ 11)
- Стабильный / достойный производства
- Быстрые оценки
- Портативный (win32 / linux)
- Любые предложения по созданию высокопроизводительного движка бизнес-правил.
Пример бизнес-правила:
‘rule_result = (оставшиеся_элементы < min_items) и (item == «пляжный мяч») ‘
Увидеть Библиотека математических выражений C ++ изложенные в этот ответ.
Но, если вам действительно нужна скорость, подумайте о компиляции выражений непосредственно в C / C ++, а затем загрузите их динамически (общие объекты / DLL).