【发布时间】:2012-11-05 02:57:54
【问题描述】:
是否有任何工具可以将 LLVM IR 代码转换为 Python 代码? 我知道可以将其转换为 Javascript (https://github.com/kripken/emscripten/wiki)、Java (http://da.vidr.cc/projects/lljvm/),我很想转换它也适用于 Python。
另外,如果这样的工具不存在,您能否提供任何信息,最好的工具是什么(也许我应该用其他语言扩展 emscripten - Javascript 和 Python 在某些方面彼此相似;))
【问题讨论】:
-
我不知道有这样的工具。虽然,我不建议将它作为一个完整的平台后端来实现(这将是一种矫枉过正)。一个简单的通行证就足够了。例如,参见
cbe通行证。 -
你说得对,这是个好主意。你能详细说明一下为什么像 Emscripten 这样的工具没有写成 LLVM 通行证吗?使用它或将其嵌入自定义编译器会容易得多。
-
可能,他们想在 JavaScript 中托管整个事情。或者他们只是更喜欢用 JS 编码而不是用 C++ 编码。以一种或另一种方式做这件事有很多可能的原因。或者,您可以在这两个选项之间做一些事情:使用 LLVM 绑定实现您的代码生成传递,例如 OCaml、Haskell 或 Python 本身。
-
谢谢。你知道任何使用 LLVM Pass(在 C++ 中)将 LLVM IR 转换为某些特定语言代码的项目吗?我想基于一些现有的代码,除非我不是 LLVM 专家 :)
-
cbe是迄今为止这种最简单的方法,我建议从它开始。
标签: python compiler-construction code-generation llvm converter