感谢 坚强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.core
module 'main' ['module_info'/0,
'module_info'/1,
'start'/0]
attributes []
'start'/0 =
%% Line 4
fun () ->
%% 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 中间代码吧。