私は現在、ペット用のプログラミング言語(学習目的のため)で働いており、昨年多くの研究を経ています。そのような言語の概念をモデル化する。まず第一に、JVMや.NETバイトコードなどの中間形式にコンパイルしたいと考えています。目標はマルチプラットフォーム/アーキテクチャに互換性があります。第二に、私はそれが速いことを望んでいます(私は他にも多くのことを念頭に置いていますが、その話題の目的ではありません)。バーチャルマシンとしてのLLVMの使用 - マルチプラットフォームとマルチアーキテクチャのコーディング
私の心に来た最良の選択肢は以下の通りであった。 は、JVMバイトコードにコンパイルおよび実行環境としてのOpenJDKのを使用し、 コンパイル.NETバイトコードへとランタイム環境としてのモノを使用し、 コンパイルLLVM IRにし、ランタイム環境としてLLVMを使用します。
あなたが想像していたように、私はLLVMを選択しました。どうして?その猛烈な速さのためです。私はC++のN-Bodyコードを使用して少しベンチマークを行い、IRを使って私のマシンで7秒を達成しました。
これは私の質問です:使用できるLLVM基本ツールセットの再配布可能なバージョンがありますか?あるいは私は自分自身をコンパイルする必要がありますか?後者の場合、それを行う方法に関するヒントを私に提供できますか?もし私が本当にそれをしなければならないと思うのですが、マシン(Intel Mac)からそれらをクロスコンパイルして、いくつかのインストーラを生成することが考えられています(Windowsの場合は.msi、人気のあるLinuxディストリビューションの場合は.rpmと.deb、 Mac)。 LLVMの最小限のサブセットだけが必要であることを覚えておいてください。このサブセットは、 "lli"を使ってVMのように動作することができます。ここでの本当の疑問は、LLVMを一般的な仮想マシンとして使用する方法です。
LLVMプロジェクトには許可ライセンスがあります。あなたは** Core Libraries **を配布する必要があるように思えます。 –
@RobertHarvey私が思っていたことは、購入することはどこから始めるのか分かりません。 – Salvia
あなたはすでにドキュメンテーションを読んでおく必要があることは言うまでもなく、あなたがすでに決定したので... LLVMと一緒に働くことに興奮しています。ああ、私はまだドキュメントを読んでいない。 –