是否有Perl的LLVM后端?

时间:2013-03-16 10:53:59

标签: perl clang llvm llvm-ir intermediate-language

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

2 个答案:

答案 0 :(得分:7)

  1. 不,没有这样的后端。至少不是直接的。 Emscripten将LLVM IR转换为Javascript,可能您可以使用其他东西将其转换为Perl。
  2. 将项目从一种语言转移到另一种语言是一个非常糟糕的主意。代码将完全不可读且无法维护。要么进行诚实的重写,要么使用Perl的外部函数接口工具将C包装为库,并使用来自 Perl。

答案 1 :(得分:6)

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

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

perlxstut包含有关如何执行此操作的文档。