我想知道是否有任何静态类型的可嵌入脚本语言。Python、JavaScript 等是很棒的语言,但它们是动态类型的(即在运行时检查类型)。我只是想知道是否有人知道可以嵌入到 C++ 应用程序中的任何静态类型的脚本语言?
4 回答
我建议您查看Angelscript。我们在Warsow上使用过它,它非常好。它具有您期望的所有功能,例如类、内存管理等。由于它是静态类型的,它可以为您进行更好的优化,因此字节码最终比其他脚本语言更快。
但是,AS 不像 Lua 那样易于使用,并且只有一个 .zip 下载——这意味着没有 .exe 安装程序、.deb 包、.dmg 或任何东西。通常这是可以的,因为无论如何您都希望将 AS 捆绑到您的项目中。与 Lua 相比,主要困难在于库更大(但具有更多功能)。不是很多人使用它,因此很难找到示例和帮助,但是有很好的文档,所以入门应该不会那么难。
但是,我个人更愿意使用动态语言编写脚本。当我编写应用程序脚本时,我想进入那里并编写废话,而不用担心 C 风格的包袱。除了 AngelScript,我真的想不出其他值得推荐的东西。
嗯,有Ch - 可嵌入的 C/C++ 解释器
C# 怎么样?查看 Mono 的 C#“脚本语言”REPL 实现(http://www.mono-project.com/CsharpRepl)
更新:如果您不知道 REPL 是什么,那就是您在不带任何参数或 irb 的情况下运行 Python 时所看到的
Haskell 是静态类型的。您可能可以将 ghci 或 hugs(两者都是解释器)嵌入到另一个程序中。但这并不容易,afaik。