繁体   English   中英

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

[英]Choosing embedded scripting language for C++

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

Lua旨在成为一种嵌入式语言,并具有简单的 API Python 和 Ruby 更通用,并且(至少对于嵌入)要复杂得多。 仅此一项就可以让我使用 Lua。

Lua已经被提及,使用luabind会给你一个更 c++ 风格的界面。
你也可以看看chaiscript 它的设计更适合 c++。

将此另存为 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

我会建议 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

您可能对ObjectScript感兴趣

ObjectScript,简称OS,是一种新的编程语言。 它是免费的、跨平台的、轻量级的、可嵌入的和开源的。 It combines the benefits of multiple languages, including: JavaScript, Lua, Ruby, Python and PHP. OS features the syntax of Javascripts, the "multiple results" feature from lua, syntactic shugar from Ruby as well as magic methods from PHP and Ruby - and even more!

使用 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;
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM