基于LLVM的编译器的语言

时间:2011-10-27 23:10:05

标签: compiler-construction llvm

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

我意识到C ++是LLVM的“本机”和最佳支持的语言,但我真的不想使用C或C ++。所以我正在寻找一种更高级的语言,它对使用LLVM API有稳定的支持。

我对Python LLVM library的初步工作有点令人失望,因为该项目似乎已被放弃,尽管我听到有关PyPy将LLVM支持集成到其框架中的有希望的新闻,但我想知道是什么人们的经验是在将大量时间投入任何特定路线之前。

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

1 个答案:

答案 0 :(得分:6)

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