【问题标题】:Embeddable formula interpreter可嵌入的公式解释器
【发布时间】:2010-07-26 09:04:01
【问题描述】:

我需要在我的 C/C++ 程序中嵌入一些东西来解释 x*log(x) 或 sin(x) 之类的公式。我想要一些小而简单的东西,否则我可以嵌入 Python、Ch、Scheme 或你的名字。但我需要的只是简单的公式。我没有运气在网上搜索过。虽然我不需要它,但性能(例如,使用简单的 JIT)将是一个奖励。

【问题讨论】:

    标签: c++ c jit embedding formulas


    【解决方案1】:

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

    我确信网上有很多实现。几年前我什至自己写了(没有函数特性)。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我现在已经成功地在我的代码中同化了 luajit。虽然我需要几个小时来弄清楚 luaL_loadbuffer 之后需要一个 luaL_pcall ......但它工作正常
      • 酷!祝你的项目好运!
      【解决方案3】:

      JavaScript 是一种出色的可移植语言。有多种实现可供选择,对于 C 和 C++,至少有:

      另一个易于嵌入的选择可能是Lua。使用已经存在的东西肯定比重新发明表达式解析器更容易。

      【讨论】:

        【解决方案4】:

        FFmpeg 有一个非常不错的,你应该去看看。

        【讨论】:

          【解决方案5】:

          编写自己的简单堆栈机来计算这些公式怎么样?

          【讨论】:

            猜你喜欢
            • 2010-12-21
            • 1970-01-01
            • 2011-01-04
            • 1970-01-01
            • 2012-09-19
            • 2013-09-08
            • 2014-10-12
            • 2023-04-05
            • 1970-01-01
            相关资源
            最近更新 更多