爱立信对 Erlang 和 Erlang/OTP 的实现是用什么编写和编译的? 是汇编语言、 C 语言还是 Erlang 本身?
更新1: 感谢 Jokepu 博士。如果我理解正确的话,Erlang source-to-VM 编译器是在 Erlang 自己编写的。但虚拟机是用 C 写的。
更新2: Hynek-Pichi-Vychodil 指出了很多细节。
From the Erlang 常见问题解答:
10.6 How did the first Erlang compiler get written? (或: Erlang 怎么样?)在 乔说过: 首先我设计了一个抽象机器 执行 Erlang。这被称为 JAM = 乔的摘要 机器。 然后我从 Erlang 写了一个编译器 JAM 和模拟器来查看 机器运转了,这两个都是 written in prolog. 与此同时,迈克 · 威廉姆斯写了一篇 C emulator for the JAM. 然后我重写了二郎到果酱 编译器,并使用 Erlang 的 prolog 编译器来编译它 对象代码在 C 模拟器中运行。 然后我们扔掉了序言。
(或: Erlang 怎么样?)在 乔说过:
首先我设计了一个抽象机器 执行 Erlang。这被称为 JAM = 乔的摘要 机器。
然后我从 Erlang 写了一个编译器 JAM 和模拟器来查看 机器运转了,这两个都是 written in prolog.
与此同时,迈克 · 威廉姆斯写了一篇 C emulator for the JAM.
然后我重写了二郎到果酱 编译器,并使用 Erlang 的 prolog 编译器来编译它 对象代码在 C 模拟器中运行。 然后我们扔掉了序言。
Erlang 本身就是在 Erlang 写的。听起来很奇怪?是的,因为这只是部分正确。好的,再看看更多细节:
You can see a live and update statistics in 哦 site, this report generate from main erlang git repository.
我可以说 Erlang 最初是用 C/C + + 作为 我不能说 Java 是用 Java 写的... ... 但它是框架和 一些图书馆。 关于 Erlang,因为它是首选的编程语言,适合 为了保持快捷(例如: 在聊天机器人) 我知道它的编译器或预处理器是在 Erlang 编写的。 但是语言的其他特征是用低级语言写的。