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