为C ++选择嵌入式脚本语言

我想选择一种我将在C ++上使用的嵌入式脚本语言。 它应该连接Oracle等数据库。 我的主机应用程序是服务器应用程序 这会将原始数据传递给脚本。 该脚本将解析并执行一些特定的逻辑。 还更新数据库。 然后脚本将返回原始数据作为结果。 你能帮我选择吗? 感谢名单

Lua旨在成为一种嵌入式语言,并且具有简单的API 。 Python和Ruby更通用,并且(至少嵌入)更复杂。 仅这一点就会让我使用Lua。

Lua已经被提及并且使用luabind将为您提供更多c ++风格的界面。
你也可以看一下chaiscript 。 它的设计更符合c ++。

将其保存为test.c:

#include  int main(int argc, char *argv[]) { Py_Initialize(); PyRun_SimpleString("from time import time,ctime\n" "print 'Today is',ctime(time())\n"); Py_Finalize(); return 0; } 

运行此命令(如果安装了Python 2.7):

gcc test.c -o test -I / usr / include / python2.7 -lpython2.7

Python现已嵌入。 这花了我不到一分钟,所以我很难理解“嵌入它所需的努力”的主张。

该示例来自http://docs.python.org/extending/embedding.html 。

虽然Lua也不错,但我会建议使用Lua的Python。

我使用AngelScript将嵌入式脚本添加到我的C ++应用程序中取得了很大的成功。 我发现它很容易绑定,语法非常舒适,但这取决于你的目标受众。 我发现Lua非常快且相对容易绑定,但语法对我来说有点不舒服。 AngelScript是非常容易理解和维护的C / C ++,但对于那些花费更多时间使用CSS或HTML的人来说,可能会发现它很麻烦,语言习惯用法可能不会很好。

http://www.angelcode.com/angelscript/

http://www.gamedev.net/forum/49-angelcode/

刚刚意识到我在这里回答了类似的问题:

https://stackoverflow.com/questions/191222/what-is-a-good-embeddable-language-i-can-use-for-scripting-inside-my-software

TCL将是易于嵌入脚本语言的另一种选择。

就个人而言,我会使用脚本语言和/或将使用脚本语言的人最熟悉,特别是如果最终用户能够运行自定义脚本,您将需要知道他们的语言是什么(如果有的话)熟悉他们的业务领域,例如CAD / CAM人们可能知道TCL,游戏人员可能知道Lua等。

您可能对ObjectScript感兴趣

ObjectScript,简称OS,是一种新的编程语言。 它是免费的,跨平台的,轻量级的,可嵌入的和开源的。 它结合了多种语言的优点,包括:JavaScript,Lua,Ruby,Python和PHP。 操作系统具有Javascripts的语法,来自lua的“多重结果”function,来自Ruby的语法shugar以及来自PHP和Ruby的魔术方法 – 甚至更多!

使用ObjectScript的最小程序可能是这样的

 #include  using namespace ObjectScript; int main(int argc, char* argv[]) { OS * os = OS::create(); // craete ObjectScript instance os->require("main.os"); // run ObjectScript program os->release(); // release the ObjectScript instance return 0; }