首页 文章

Erlang写的是什么?

提问于
浏览
106

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

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

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

  • VM和HW交互驱动程序:在C.

  • 编译器(到VM)和库:在Erlang中 .

  • 扩展:通过使用该语言编写端口或Erlang节点,可以使用任何语言 .

3 回答

  • 13

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

    • Erlang预处理器是用Erlang编写的 .

    • Erlang解析器是用Erlang编写的 .

    • Erlang编译器到BEAM(字节码VM)是用Erlang编写的 .

    • Erlang编译器到HiPE(本机VM扩展)是用Erlang编写的 .

    • Erlang VM BEAM和HiPE主要用C语言编写 .

    • 链接的驱动程序主要用C语言编写 . (它们插入VM并与外界通信 . )

    • OTP是用Erlang编写的 .

    • 可以用任何语言编写其他端口或节点 .

  • 132

    来自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 .

  • 87
    • 65.9%的erlang代码是用Erlang编写的 .

    • 13.4%的erlang是用XML编写的 .

    • 13.6%的erlang是用C语言编写的 .

    • 1.4%的erlang是用C语言编写的

    • ......

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

相关问题