gpt4 book ai didi

erlang - Erlang 如何实现 erlang :display actually?

转载 作者:行者123 更新时间:2023-12-04 00:31:43 26 4
gpt4 key购买 nike

我想实现一个 Erlang 解释器,最近我在阅读 Erlang 的标准库源代码。我在 erlang.erl 中找到 erlang:display/1 的源代码是:

%% display/1
-spec erlang:display(Term) -> true when
Term :: term().
display(_Term) ->
erlang:bif_error(undefined).

我不知道它是如何产生显示行为的,我认为它只是抛出一个未定义的错误。顺便说一句,我还破解了 erlang.beam 以确保字节码具有与源代码 (erlang.erl) 相同的语义。谁能告诉我 erlang:display 实际上是怎么做的?

最佳答案

erlang:display/1 是一个 BIF(内置函数)。一些 BIF 在 Erlang 中实现,但大多数在 Erlang 虚拟机中作为原始操作实现,因为 BIF 提供操作系统接口(interface)或执行在 Erlang 中编程不可能或效率非常低的操作。

您可能想看看 A GUIDE TO THE ERLANG SOURCE , 简而言之,它说;

BIF 汇总在 bif.tab 中文件。例如:

Line 54: bif erlang:display/1

表示 display/1 BIF 映射到 bif.c 中的 display_1 方法文件。

关于erlang - Erlang 如何实现 erlang :display actually?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com