2010-07-26 65 views
2

我需要在我的C/C++程序中嵌入一些东西来解释类似x * log(x)或sin(x)的公式。我想要一些小而简单的东西,否则我可以嵌入Python,Ch或Scheme,或者你可以命名它。但我需要的只是简单的公式。我没有运气搜索网络。虽然我不需要它,但是表现(例如,使用简单的JIT)会是一种奖励。嵌入式公式解释器

回答

4

Lua - 是迄今为止最简单的嵌入和使用,有非常小,非常快版采用了JIT:http://luajit.org/

+0

我已经成功地在我的代码中同步了luajit。尽管我需要几个小时才能发现luaL_loadbuffer需要一个luaL_pcall,除此之外它可以工作。 – dsign 2010-07-27 12:56:24

+0

酷!祝你的项目好运! – 2010-07-27 13:00:23

4

这种事情的一个很好的便携式语言是JavaScript。有超过几个实现可供选择,C和C++至少有:

还有一个容易被嵌入的选择是Lua。使用已经存在的东西,而不是重新创建表达式分析器当然更容易。

5

使用逆向波兰表示法。算法很少:
1.解析方程并转换为中缀符号(很容易,您只需识别符号链)
2.使用Dijkstra的分流码算法将中缀转换为RPN。
3.使用DFS计算表达式

我确定网络上有很多实现。我甚至在几年前写了自己的(没有函数功能)。

0

FFmpeg的有一个非常好的一个,你应该看看。

0

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