1. ホーム
  2. erlang

[解決済み] Erlangは何で書かれているのですか?

2022-10-14 02:30:11

質問

EricssonのErlangとErlang/OTPの実装は何で書かれて、コンパイルされているのでしょうか?アセンブリなのか、Cなのか、それともErlangそのものなのでしょうか?

更新1:DrJokepuに感謝します。もし私が正しく理解しているなら、ErlangのソースからVMへのコンパイラはErlang自体で書かれています。しかし、VMはCで書かれています。

更新2: Hynek-Pichi-Vychodilさんに細かい点を指摘していただきました。

  • VM と HW の相互作用するドライバー: C 言語で。
  • コンパイラ(VMへ)およびライブラリ:Erlang。
  • 拡張。ポートまたはErlangノードをその言語で書くことにより、どの言語でも可能です。

どのように解決するのですか?

Erlang自体はErlangで書かれています。奇妙に聞こえますか?はい、それは部分的にしか当てはまらないからです。もっと詳しく見てみましょう。

  1. ErlangプリプロセッサーはErlangで書かれています。
  2. ErlangパーサはErlangで書かれています。
  3. BEAM (byte-code VM)へのErlangコンパイラはErlangで書かれています。
  4. HiPE (ネイティブVM拡張)へのErlangコンパイラはErlangで書かれています。
  5. Erlang VM BEAMとHiPEは、ほとんどCで書かれています。
  6. Linked-inドライバはほとんどCで書かれています(VMに接続され、外部との通信を行います)。
  7. OTPはErlangで書かれています。
  8. 他のポートやノードは、どの言語でも書くことができます。