2011-10-27 64 views
6

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

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

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

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

+1

不久前PyPy放弃了LLVM。即使PyPy使用LLVM,它也只能作为* backend *用于由翻译工具链创建的解释器和JIT编译器,该工具链需要一个用RPython编写的解释器并将其编译为低级代码(可选地添加JIT和其他一些花里胡哨的东西)。 – delnan

回答

6

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