C++ 可嵌入公式解释器

C++ 可嵌入公式解释器,c++,c,jit,embedding,formulas,C++,C,Jit,Embedding,Formulas,我需要在我的C/C++程序中嵌入一些东西来解释像x*log(x)或sin(x)这样的公式。我想要一些小而简单的东西,否则我可以只嵌入Python、Ch、Scheme,或者你所说的。但我需要的只是简单的公式。我在网上搜索时运气不好。虽然我不需要它,但性能(例如,使用简单的JIT)将是一个额外的好处 JavaScript是实现这类功能的一种优秀的可移植语言。有多种实现方式可供选择,对于C和C++至少有: 另一个容易嵌入的选择可能是。使用已经存在的东西当然比重新设计表达式解析器更容易。使用反向

我需要在我的C/C++程序中嵌入一些东西来解释像x*log(x)或sin(x)这样的公式。我想要一些小而简单的东西,否则我可以只嵌入Python、Ch、Scheme,或者你所说的。但我需要的只是简单的公式。我在网上搜索时运气不好。虽然我不需要它,但性能(例如,使用简单的JIT)将是一个额外的好处

JavaScript是实现这类功能的一种优秀的可移植语言。有多种实现方式可供选择,对于C和C++至少有:


另一个容易嵌入的选择可能是。使用已经存在的东西当然比重新设计表达式解析器更容易。

使用反向波兰符号。算法很少:
1.解析表达式并转换为中缀符号(这很简单,只需标识符号链即可)
2.使用Dijkstra的调车场算法将中缀转换为RPN。
3.使用DFS计算表达式


我相信网络上有很多实现。几年前我甚至写了自己的(没有函数特性).

-是迄今为止最简单的嵌入和使用,并且有一个非常小且非常快速的版本,带有JIT:

FFmpeg有一个非常好的版本,您应该去看看。

如何编写您自己的简单堆栈机来计算这些公式?

我现在已经成功地将luajit融入了我的代码中。虽然我需要几个小时来弄清楚luaL_loadbuffer需要一个luaL_pcall在它之后……除此之外,它工作正常,很酷!祝你的项目好运!