簡體   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