エリクソンのErlangとErlang/OTPの実装は、どのように書かれてコンパイルされていますか? Assembly、C、またはErlang自体ですか?
更新1:DrJokepuに感謝します。私が正しく理解していれば、ErlangソースからVMへのコンパイラはErlang自体で作成されています。しかし、VMはCで書かれています。
更新2:Hynek-Pichi-Vychodilは多くの詳細を指摘しました。
Erlang自体はErlangで書かれています。奇妙に聞こえますか?はい、それは部分的にのみ正しいので。それをもっと詳しく見てみましょう:
Erlang FAQ から:
10.6最初のErlangコンパイラはどのように書かれたのですか?
(または:Erlangはどのようにブートストラップされましたか?)ジョーの言葉では:
まず、Erlangを実行する抽象マシンを設計しました。これは、JAM machine; JAM = Joe's Abstract Machineと呼ばれていました。
次に、ErlangからJAM=と、エミュレーターが動作するかどうかを確認するためのコンパイラーを作成しました。どちらもプロローグで書かれています。
同時に、Mike WilliamsがJAM用のCエミュレーターを作成しました。
次に、Erlangでerlang-to-jamコンパイラーを書き直し、prologコンパイラーを使用してコンパイルしました。結果のオブジェクトコードは、Cエミュレーターで実行されました。その後、プロローグを捨てました。
ohloh サイトでライブ統計と更新統計を確認できます。このレポートはメインのerlang gitリポジトリから生成されます。