2011-10-27 65 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包裝)。