【问题标题】:Language for LLVM-based compiler基于 LLVM 的编译器的语言
【发布时间】:2011-12-16 22:23:22
【问题描述】:

我正在考虑使用一种玩具语言进行一些初始测试和实验,并构建一个基于 LLVM 的编译器以获得一些可基准测试的结果。

我意识到 C++ 是 LLVM 的“原生”和最受支持的语言,但我真的不想使用 C 或 C++。因此,我正在寻找一种更高级的语言,它对使用 LLVM API 具有稳定且成熟的支持。

我最初使用 Python LLVM library 的工作有点令人失望,因为该项目似乎已被放弃,尽管我听到了有关 PyPy 将 LLVM 支持集成到他们的框架中的好消息,但我想知道人们的经验在花费大量时间进入任何给定路线之前。

所以我的问题是,你们中的任何人有没有使用更高级的语言和/或框架使用 LLVM 的积极经验?如果是这样,哪个?或者有什么你会说要避免的吗?

【问题讨论】:

  • PyPy 很久以前就放弃了 LLVM。即使 PyPy 使用 LLVM,它也只能用作翻译工具链创建的解释器和 JIT 编译器的 后端,它需要一个用 RPython 编写的 interpreter 并编译它到低级代码(可选地添加 JIT 和其他花里胡哨)。

标签: compiler-construction llvm


【解决方案1】:

LLVM API 的一个子集通过纯 C 包装器公开。它足以生成代码,并且几乎可以从任何高级语言中使用。有开箱即用的 OCaml 绑定(参见this tutorial),Haskell 绑定也相当成熟(例如,GHC 本身可以通过 LLVM 编译)。我也使用了基于 .NET 的语言的 LLVM,没有任何绑定(只是 P/Invoke 包装器从标头自动生成)。

【讨论】:

    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 2010-11-28
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多