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

Choosing embedded scripting language for C++

本文关键字:脚本 语言 嵌入式 选择 C++      更新时间:2023-10-16

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

Lua旨在成为一种嵌入式语言,并具有一个简单的API。Python和Ruby的用途要通用得多,而且(至少对于嵌入)要复杂得多。仅凭这一点,我就会使用Lua。

Lua已经提到了,使用luabind将为您提供一个更具c++风格的接口
您也可以查看chaiscript。它的设计更适合c++。

将其保存为测试。c:

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

运行以下命令(如果您安装了Python 2.7):

gcc测试-I/usr/include/python2.7-lpython2.7

Python现在已经嵌入。这花了我不到一分钟的时间,所以我很难理解"嵌入它所需的努力"的说法。

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

我建议Python而不是Lua,尽管Lua也很好。

我已经成功地使用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。操作系统具有Javascript的语法、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;
}