3

我有一个用 C 编写的项目,我希望将其转换为 Perl。我的一个朋友建议使用 LLVM。我使用 Clang 将我的 C 代码编译为 LLVM 程序集。现在我正在尝试将此中间表示转换为 Perl,但我似乎找不到任何后端。有人会指出我正确的方向吗?

4

2 回答 2

7
  1. 不,没有这样的后端。至少不是直接的。Emscripten 将 LLVM IR 转换为 Javascript,也许您可​​以使用其他东西将其转换为 Perl。
  2. 将项目从一种语言转移到另一种语言是一个非常糟糕的主意。代码将完全不可读且不可维护。要么做一个诚实的重写,要么用 Perl 的外部函数接口工具将你的 C 包装为一个库,然后Perl 中使用它。
于 2013-03-16T14:45:21.400 回答
6

转换为 Perl 是不行的。它还没有完成,因为在 Perl 中模拟 C 会非常慢。对于初学者,它们具有完全不同的类型系统。但是,完全没有必要将代码转换为 Perl 以从 Perl 调用它。您可以从 Perl 加载已编译的 C 代码。

您需要做的是告诉 Perl 如何调用这些 C 函数。Perl 处理标量等,而 C 处理整数等。这是使用 XS 完成的。

perlxstut包含有关如何执行所有这些操作的文档。

于 2013-03-16T17:18:49.610 回答