选择嵌入式脚本语言用于 C++
我想选择一个嵌入式脚本语言,并将其用于 C++。它应该连接一个像 Oracle 这样的数据库。我的主机应用程序是一个服务器应用程序,它将原始数据传递给脚本。脚本将对数据进行解析并执行一些特定的逻辑。还需要更新数据库。然后脚本将返回原始数据作为结果。
你能帮我选择吗?
谢谢。
原文链接 https://stackoverflow.com/questions/6188798
Lua已经被提到,并且使用luabind将为您提供更具C++风格的接口。您也可以看看chaiscript。它更适合嵌入到C++中。
将以下内容翻译成中文并保留 markdown 格式,将其保存为 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 已经被嵌入。这个过程只花了不到一分钟,因此我不明白 "嵌入 Python 需要花费大量努力" 的说法。
这个示例来自 http://docs.python.org/extending/embedding.html。
虽然 Lua 也很好,但我建议使用 Python。
我曾经使用 AngelScript 将嵌入式脚本添加到我的 C++ 应用程序中,并取得了很多成功。我发现它很容易绑定,语法也很舒适,但这取决于你的目标受众。我发现 Lua 非常快速且相对容易绑定,但语法对我来说有点不舒服。AngelScript 很像 C/C++,我觉得很容易理解和维护,但对那些更多时间从事 CSS 或 HTML 工作的人来说,可能会觉得繁琐,语言惯用法可能也不会翻译得很好。
http://www.angelcode.com/angelscript/
http://www.gamedev.net/forum/49-angelcode/
我刚想起来这里曾经回答过一个类似的问题:
TCL 会是一个易于嵌入脚本语言的另一个选择。
从个人角度来看,我更倾向于使用那些您或其他将要使用脚本语言的人已经熟悉的语言,尤其是如果最终用户将能够运行自定义脚本,您需要知道他们在其业务领域熟悉的语言(例如 CAD/CAM 使用者可能会熟悉 TCL,游戏使用者可能会熟悉 Lua 等)。
你可能对ObjectScript感兴趣。
ObjectScript,简称OS,是一种全新的编程语言。它是免费的、跨平台的、轻量级的、可嵌入的和开源的。它结合了多种语言的优点,包括JavaScript、Lua、Ruby、Python和PHP。OS具有Javascript的语法,lua的“多结果”特性,Ruby的语法糖以及PHP和Ruby的神奇方法-甚至更多!
使用ObjectScript的最小程序可能是这样的
#include <objectscript.h>
using namespace ObjectScript;
int main(int argc, char* argv[])
{
OS * os = OS::create(); //创建ObjectScript实例
os->require("main.os"); //运行ObjectScript程序
os->release(); //释放ObjectScript实例
return 0;
}
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
Lua 旨在成为一种嵌入式语言,具有 简单的 API。Python 和 Ruby 更具有通用性,至少在嵌入方面要复杂得多。仅仅出于这个原因,我会选择使用 Lua。