是否有用于 C++ 的脚本语言(如 perl)可用于快速开发并使用一些可以转换为 C/C++ 程序的工具以获得更高的部署性能?
编辑:
根据一些评论,让我澄清这个问题。我应该能够在不修改脚本的情况下将脚本转换为 C/C++ 程序或二进制文件。
使用 C/C++ 解释器,您可以将 C/C++ 用作脚本语言
频道:http : //www.softintegration.com/
带有免费标准版的商业 C/C++ 解释器。支持各种流行的库和窗口工具包。
ccons:http ://code.google.com/p/ccons/
使用LLVM及其新的 C 前端(clang)的交互式 C 控制台。正在积极开发中
UnderC:http ://home.mweb.co.za/sd/sdonovan/underc.html
一个开源 (LGPL) C++ 解释器。似乎有点过时(2002 年)。
注意:到目前为止,我只尝试过Ch和CINT。我添加了ccons和UnderC以使列表更完整。
任何对(大部分)与 C++ 非常相似的脚本语言感兴趣的人都可能想看看angelscript (ZLIB):
AngelCode 脚本库,也称为 AngelScript,是一个极其灵活的跨平台脚本库,旨在允许应用程序通过外部脚本扩展其功能。它从一开始就被设计为易于使用的组件,适用于应用程序程序员和脚本编写者。
已经努力让它调用标准的 C 函数和 C++ 方法,而不需要代理函数。应用程序只需注册脚本应该能够使用的函数、对象和方法,而无需对您的代码做任何其他事情。应用程序内部使用的相同功能也可以由脚本引擎使用,这消除了复制功能的需要。
对于脚本编写者,脚本语言遵循广为人知的 C/C++ 语法(稍作改动),但无需担心指针和内存泄漏。与大多数脚本语言相反,AngelScript 使用常见的 C/C++ 数据类型来更有效地与主机应用程序通信。
欲了解更多信息,请查看:http ://www.angelcode.com/angelscript/sdk/docs/manual/index.html
许多项目结合了例如 C++ 和 Python —— 例如参见 boost.python。
无论哪种情况,您都可以使用脚本语言进行原型设计,并轻松“粘合”到 C++ 以提高性能。
有一个为 C++ 设计的新包Chaiscript 。它相对较新,还不完全稳定。
对于 Python,我有时会发现psyco很有用。不确定是否有任何等效的 perl。
在为任务选择语言时,我发现选择最适合该工作的语言更有用。如果工作要求的性能比脚本语言在正常情况下所能提供的性能更高,通常最好只是切换而不是向后弯腰来尝试使您的代码更快。
GML : www.yoyogames.com
这个问题可以用不同的方式来解释......
如果您已经用 C++ 编写了应用程序的一部分并且需要添加模块或脚本,并且您希望最终添加到 C++ 代码中以提高性能,那么您可以使用Qt,它是一个可靠的、非常完整的多平台框架。
它包括对脚本(ECMAScript,Javascript 的标准化版本)的支持,如果需要,您可以从中访问您的 C++ 对象。它还提供对插件的支持。
使用这种方法,您甚至可以分三个步骤进行,
另一种选择是在你的代码中嵌入一个 Python 解释器,尽管这可能需要更多的工作。
我不确定我是否理解您的问题,但如果您希望实现自己的脚本语言,该语言可以与您的 c++ 代码交互,您可以查看 boost::spirit。你只需要告诉它你的语法,你的脚本语言就可以按照你在 c++ 中告诉它的任何事情去做。您可以使用 c++ 运算符指定语法,使其非常简单和直观。
这就是我目前用于满足我最近需求的东西,看起来它可以很好地完成这项工作。在指定语法时,您可以完全访问您的 c++ 对象,并且您的用户可以学习一种非常简单的语言(与 CINT 相比,语言本身就是 c++)。
编译时间现在有点慢,但如果您不需要实现非常复杂的语言,它应该是可管理的(我不希望看到像 c++ 这样的编译时间)。最新版本的文档也有点缺乏(最新版本有点难找),但它相对容易使用,因此可能值得一试,具体取决于您的需要。
您可以使用 D 编程语言作为脚本或快速编译输出进行编码。
这是一篇详细讨论 D 及其优势的文章 “The Case for D”
Cling 是 c++ cling的解释器