Compiler construction 基于LLVM的编译器语言

Compiler construction 基于LLVM的编译器语言,compiler-construction,llvm,Compiler Construction,Llvm,我正在考虑使用玩具语言进行一些初始测试和实验,并构建一个基于LLVM的编译器,以获得一些可基准测试的结果 我意识到C++是LLVM的“原生”和最好支持的语言,但我真的不想使用C或C++。因此,我正在寻找一种更高级别的语言,该语言对使用LLVMAPI具有稳定且已建立的支持 我最初与的工作有点令人失望,因为该项目似乎已经被放弃了,尽管我听到了关于PyPy将LLVM支持集成到其框架中的好消息,但我想知道人们的经验是什么,然后再投入大量时间到任何给定路线中 所以我的问题是,你们中有没有人对使用更高级的语

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

<>我意识到C++是LLVM的“原生”和最好支持的语言,但我真的不想使用C或C++。因此,我正在寻找一种更高级别的语言,该语言对使用LLVMAPI具有稳定且已建立的支持

我最初与的工作有点令人失望,因为该项目似乎已经被放弃了,尽管我听到了关于PyPy将LLVM支持集成到其框架中的好消息,但我想知道人们的经验是什么,然后再投入大量时间到任何给定路线中


所以我的问题是,你们中有没有人对使用更高级的语言和/或框架使用LLVM有过积极的经验?如果是,哪一个?或者有什么可以避免的吗?

LLVMAPI的一个子集是通过普通的C包装器公开的。它足以生成代码,并且可以从任何高级语言中使用。有现成的OCaml绑定(请参阅),这些绑定也相当成熟(例如,GHC本身可以通过LLVM编译)。我也使用了基于.NET语言的LLVM,没有任何绑定(只是从标题自动生成的
P/Invoke
wrappers)。

PyPy很久以前就放弃了LLVM。即使PyPy使用LLVM,它也只能用作翻译工具链创建的解释器和JIT编译器的后端,翻译工具链使用RPython编写的解释器,并将其编译为低级代码(可以选择添加JIT和其他工具)。