LLVMベースのコンパイラの言語

私は、おもちゃの言語で初期テストと実験を行い、LLVMベースのコンパイラを構築してベンチマーク可能な結果を​​得ようとしています。

私はC ++がLLVMの "ネイティブ"かつ最高のサポート言語だと認識していますが、CまたはC ++を使用したくないという本当にだから私は安定してLLVM APIを扱うためのサポートを確立している高水準言語を探しています。

Python LLVMライブラリを使った私の初期の仕事は、プロジェクトが放棄されたように見えるため、少し失望しましたが、私はPyPyがLLVMサポートをそのフレームワークに統合することについて有望なニュースを聞いていますが、どのルートに多くの時間を沈める前に人々の経験が何であるかを知りたいと思います。

だから、私の質問は、LLVMをより高いレベルの言語やフレームワークを使用して積極的に経験したことがありますか?もしそうなら、どちら?それともあなたが避けるべきことは何ですか?

6
PyPyはかなり前にLLVMを放棄しました。そしてPyPyがLLVMを使用したとしても、RPythonで書かれたインタプリタを取る翻訳ツールチェーンによって作成されたインタプリタとJITコンパイラでは、バックエンドそれを低レベルのコードに変換します(途中でJITや他の鐘や笛を追加することもできます)。
追加された 著者 delnan,

1 答え

LLVM APIのサブセットは、プレーンCラッパーを介して公開されています。コード生成には十分であり、実質的にあらゆる高水準言語から使用できます。 OCamlバインディングが用意されています(このチュートリアルを参照)。また、 Haskell バインディングもかなり成熟しています(例えば、GHC自体はLLVMでコンパイルできます)。私はLLVMを.NETベースの言語からもバインディングなしで使用しました(ヘッダーから自動生成された P/Invoke ラッパー)。

6
追加された