我想选择一门嵌入式脚本语言来与C++配合使用。它应该能够连接像Oracle这样的数据库。我的宿主应用程序是一个服务器应用程序,它将原始数据传递给脚本。脚本将解析并执行一些特定的逻辑,并更新数据库。然后脚本将以原始数据作为结果返回。
你能帮我选择吗?
谢谢。
我想选择一门嵌入式脚本语言来与C++配合使用。它应该能够连接像Oracle这样的数据库。我的宿主应用程序是一个服务器应用程序,它将原始数据传递给脚本。脚本将解析并执行一些特定的逻辑,并更新数据库。然后脚本将以原始数据作为结果返回。
你能帮我选择吗?
谢谢。
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现在已经被嵌入进来。这个过程花费不到一分钟的时间,因此我很难理解所需“嵌入它的努力”的说法。gcc test.c -o test -I/usr/include/python2.7 -lpython2.7
http://www.angelcode.com/angelscript/
http://www.gamedev.net/forum/49-angelcode/
刚刚意识到我在这里回答了一个类似的问题:
您可能对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(); // craete ObjectScript instance
os->require("main.os"); // run ObjectScript program
os->release(); // release the ObjectScript instance
return 0;
}
TCL是另一个易于嵌入的脚本语言选择。
个人建议选择您和/或将使用脚本语言的人已经熟悉的语言,特别是如果最终用户将能够运行自定义脚本,您需要了解他们在其业务领域中熟悉的任何语言,例如CAD / CAM人员可能会知道TCL,游戏开发者可能会知道Lua等。