<分区>
我需要一个简单的解释器来执行(计算)简单的表达式/语句,并从主要的 C++ 应用程序中调用函数。目前我不需要编写应用程序脚本,但以后可能会有用。
对于其他团队成员来说,从源存储库中提取我的应用程序并构建它也应该是直截了当的,而无需安装额外的应用程序、库等。
搜索令人 Revel 的选项,例如:Python(通过 Boost 和/或 Python API)、Lua、Guile、TinyScheme。
我最接近 Python,但使用 Boost、构建 Python 库、将主应用程序与 Python 接口(interface)的复杂任务使这个选择有点矫枉过正,也许我错了。
这个请求应该有一个简单的解决方案,您有什么经验和建议?
您已经列出的两个不错的选择是 Python 和 Lua。以下是供您考虑的一些权衡:
python
- 一种更完整、更强大的语言(恕我直言!),包含适用于任何事物的库以及随处可见的大量支持和社区。li>
- 语法不完全像 C 语言
- 虽然 Python 并不是专门为嵌入而设计的(它更经常被用作一种独立的语言,通过 C/C++ 中的代码扩展),但它确实很难嵌入。官方文档包含一些示例,遵循 Boost 的示例应该不会更难。
Lua
- 自下而上的嵌入设计,所以它应该是最简单的嵌入。
- 语法比 Python 更像 C
如果您预见到 future 对脚本的明确需求,那么尽早构建脚本引擎是个好主意,因为它可能会在您继续开发程序时为您打开一些有趣的可能性。上面列出的两个选项都不错,您可以毫不费力地嵌入它们中的任何一个。