感谢 坚强2002 同学的推荐
http://www.it.uu.se/research/group/hipe/cerl/
main.erl-module(main). -export([start/0]).start() ->ok.
c(main, to_core).
会产生中间代码文件 main.core
打开如下
main.coremodule 'main' ['module_info'/0,'module_info'/1,'start'/0]attributes []
'start'/0 =%% Line 4fun () ->%% Line 5'ok'
'module_info'/0 =fun () ->call 'erlang':'get_module_info'('main')
'module_info'/1 =fun (_cor0) ->call 'erlang':'get_module_info'('main', _cor0)
end
我们继续使用 c(main, from_core).
这样会把 main.core 编译为 main.beam 文件。
使用 to_core 编译参数,有助于我们了解代码执行的过程,我暂时理解为 c# 编译 为 IL 中间代码吧。