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

时间:2011-05-31 14:05:13

标签: c++ python ruby scripting lua

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

6 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分:12)

已经提到了

Lua,使用luabind将为您提供更多c ++风格的界面 您还可以查看chaiscript。它的设计更符合c ++。

答案 2 :(得分:8)

将其另存为test.c:

#include <Python.h>

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的Python,即使Lua也很好。

答案 3 :(得分:4)

我使用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

答案 4 :(得分:2)

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

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

答案 5 :(得分:2)

您可能对ObjectScript

感兴趣

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

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

#include <objectscript.h>
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;
}