我有一个静态链接到 Tcl 的二进制应用程序,前端是 Tcl 解释器。我想为用户提供使用 Python 执行相同命令的能力,作为关键字选项。 Tcl 语法的示例是:
set_foo -foo 1.0 -bar 3.0 -cat x
因此 python 等效项可能如下所示:
set_foo(foo=1.0, bar=3.0, cat="x")
两次构建程序是否更好,一次作为 Tcl 应用程序,一次作为 Python 应用程序?或者只是将所有内容都保留为 Tcl,并拥有一个将在其解释器中调用 Python 脚本的命令?
命令的实现方式是它们对所使用的脚本语言一无所知。该 API 是:
void set_fooCmd(Handler &data);
Handler 是一个 C++ 类,它负责解析选项并将它们提供给命令实现。到目前为止,Handler 是为 Tcl 而不是 Python 实现的。
所有直接与 Tcl 接口(interface)的代码都在其自己的目录中,并从程序的其余部分抽象出调用。
更新: 这不是一个重复的问题: Picking a front-end/interpreter for a scientific code
因为他们在询问是从 Tcl 迁移到 Python 还是 Matlab。我已经知道我想同时支持 Tcl 和 Python,而且我非常想知道人们使用了哪些方法。如:
- 从 Tcl 调用 Python 解释器
- 为 Python 前端和 Tcl 前端编译单独的应用程序。
- 一些其他方法。
最佳答案
您可能想查看类似 SWIG 的内容,这将允许您创建一个具有直接 C 接口(interface)(以您喜欢的任何方式实现)的应用程序,并将该接口(interface)公开给各种其他脚本语言。 SWIG 支持 Tcl 和 Python,以及 Ruby、PHP、Scheme、Perl,and many others.
关于c++ - 同时支持 Tcl 和 Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495965/