爱立信编写和编译的Erlang和Erlang/OTP的实现是什么?是汇编,C还是Erlang本身?
更新1:感谢DrJokepu.如果我理解正确,Erlang source-to-VM编译器是用Erlang本身编写的.但VM是用C语言编写的.
更新2:Hynek-Pichi-Vychodil指出了很多细节.
VM和HW交互驱动程序:在C.
编译器(到VM)和库:在Erlang中.
扩展:通过使用该语言编写端口或Erlang节点,可以在任何语言中使用.
Hynek -Pichi.. 137
Erlang本身是用Erlang编写的.听起来很奇怪?是的,因为它只是部分正确.好的,看看它更详细:
Erlang预处理器是用Erlang编写的.
Erlang解析器是用Erlang编写的.
Erlang编译器到BEAM(字节码VM)是用Erlang编写的.
Erlang编译为HiPE(本机VM扩展)是用Erlang编写的.
Erlang VM BEAM和HiPE主要用C语言编写.
链接的驱动程序主要用C语言编写.(它们插入VM并与外界通信.)
OTP是用Erlang编写的.
另一个端口或节点可以用任何语言编写.
Tamas Czineg.. 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.
Saeed Zarinf.. 14
65.9%的erlang代码是用Erlang编写的.
13.4%的erlang是用XML编写的.
13.6%的erlang是用C语言编写的.
1.4%的erlang是用C++编写的
...
您可以在ohloh站点中查看实时和更新统计信息,此报告从主erlang git存储库生成.
Erlang本身是用Erlang编写的.听起来很奇怪?是的,因为它只是部分正确.好的,看看它更详细:
Erlang预处理器是用Erlang编写的.
Erlang解析器是用Erlang编写的.
Erlang编译器到BEAM(字节码VM)是用Erlang编写的.
Erlang编译为HiPE(本机VM扩展)是用Erlang编写的.
Erlang VM BEAM和HiPE主要用C语言编写.
链接的驱动程序主要用C语言编写.(它们插入VM并与外界通信.)
OTP是用Erlang编写的.
另一个端口或节点可以用任何语言编写.
从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.
65.9%的erlang代码是用Erlang编写的.
13.4%的erlang是用XML编写的.
13.6%的erlang是用C语言编写的.
1.4%的erlang是用C++编写的
...
您可以在ohloh站点中查看实时和更新统计信息,此报告从主erlang git存储库生成.