2010-07-26 93 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

如何編寫自己的簡單堆棧計算器來計算這些公式?