Erlang写的是什么?

CDR*_*CDR 109 erlang bootstrapping

爱立信编写和编译的Erlang和Erlang/OTP的实现是什么?是汇编,C还是Erlang本身?

更新1:感谢DrJokepu.如果我理解正确,Erlang source-to-VM编译器是用Erlang本身编写的.但VM是用C语言编写的.

更新2:Hynek-Pichi-Vychodil指出了很多细节.

  • VM和HW交互驱动程序:在C.
  • 编译器(到VM)和库:在Erlang中.
  • 扩展:通过使用该语言编写端口或Erlang节点,可以在任何语言中使用.

Hyn*_*dil 137

Erlang本身是用Erlang编写的.听起来很奇怪?是的,因为它只是部分正确.好的,看看它更详细:

  1. Erlang预处理器是用Erlang编写的.
  2. Erlang解析器是用Erlang编写的.
  3. Erlang编译器到BEAM(字节码VM)是用Erlang编写的.
  4. Erlang编译为HiPE(本机VM扩展)是用Erlang编写的.
  5. Erlang VM BEAM和HiPE主要用C语言编写.
  6. 链接的驱动程序主要用C语言编写.(它们插入VM并与外界通信.)
  7. OTP是用Erlang编写的.
  8. 另一个端口或节点可以用任何语言编写.


Tam*_*ege 89

Erlang FAQ:

10.7第一个Erlang编译器是如何编写的?

(或者:Erlang是如何引导的?)用Joe的话来说:

首先,我设计了一个抽象机器来执行Erlang.这被称为JAM机器; JAM = Joe的抽象机器.

然后我从Erlang写了一个编译器到JAM和一个模拟器,看看机器是否工作.这两个都是用prolog写的.

与此同时,Mike Williams为JAM编写了一个C模拟器.

然后我在Erlang中重写了erlang-to-jam编译器,并使用prolog编译器进行编译.生成的对象代码在C仿真器中运行.然后我们扔掉了prolog.


Sae*_*fam 14

  • 65.9%的erlang代码是用Erlang编写的.
  • 13.4%的erlang是用XML编写的.
  • 13.6%的erlang是用C语言编写的.
  • 1.4%的erlang是用C++编写的
  • ...

您可以在ohloh站点中查看实时和更新统计信息,此报告从主erlang git存储库生成.