爱立信编写和编译的Erlang和Erlang / OTP的实现是什么?是汇编,C还是Erlang本身?
更新1:感谢DrJokepu。如果我理解正确,Erlang source-to-VM编译器是用Erlang本身编写的。但VM是用C语言编写的。
更新2:Hynek-Pichi-Vychodil指出了很多细节。
答案 0 :(得分:132)
Erlang本身是用Erlang编写的。听起来很奇怪?是的,因为它只是部分正确。好的,请更详细地看一下:
答案 1 :(得分:87)
来自Erlang FAQ:
10.7第一个Erlang编译器是如何编写的?
(或者: Erlang是如何引导的?) 乔的话:
首先,我设计了一个抽象机器 执行Erlang。这被称为 JAM机器; JAM = Joe的摘要 机。
然后我从Erlang编写了一个编译器 JAM和模拟器,看看是否 机器工作。这两个都是 用prolog写的。
同时迈克威廉姆斯写了一篇 用于JAM的C模拟器。
然后我重写了erlang-to-jam 在Erlang中编译并使用了prolog 编译器来编译它。结果 目标代码在C模拟器中运行。 然后我们扔掉了prolog。
答案 2 :(得分:13)
您可以在ohloh网站上查看实时和更新统计信息,此报告从主erlang git存储库生成。
答案 3 :(得分:-2)
我可以说Erlang最初是用C / C ++编写的, 我不能说Java是用Java编写的...。但这是框架和 一些图书馆。 关于Erlang,因为它是首选的编程语言并且适合 用于电信系统...以保持快速性(例如:在聊天机器人中) 我知道它的编译器或PreProcessor是用Erlang编写的。 但是语言的其他功能是用低级语言编写的。