Last active
August 11, 2017 14:17
-
-
Save hamidreza-s/5ebbc909e6bb7514ac16 to your computer and use it in GitHub Desktop.
There are lots of intermediate code generating between Erlang source code and byte code. These steps are as follows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Erlang Source Code | |
* Scanning | |
* Parsing | |
* Parse Trasform | |
* Linter | |
* Erlang AST ('P') | |
* Erlang Expanded AST ('E') | |
* Core Erlang | |
* Core Erlang AST | |
* Kernel Erlang | |
* Byte Code / BEAM Code / Assember Code ('S') | |
Note: Using compile:file(module_name, [time]), we can see the detailed steps of compiling Erlang source code to byte code. | |
1> compile:file(foo, time). | |
Compiling foo | |
remove_file : 0.00 s 0.6 kB | |
parse_module : 0.00 s 1.3 kB | |
transform_module : 0.00 s 1.3 kB | |
lint_module : 0.00 s 1.3 kB | |
expand_module : 0.00 s 2.0 kB | |
core_module : 0.00 s 9.6 kB | |
core_fold_module : 0.00 s 4.9 kB | |
core_transforms : 0.00 s 4.9 kB | |
core_dsetel_module : 0.00 s 4.9 kB | |
kernel_module : 0.00 s 6.4 kB | |
v3_life : 0.00 s 4.9 kB | |
v3_codegen : 0.00 s 3.0 kB | |
beam_a : 0.00 s 2.7 kB | |
beam_block : 0.00 s 3.2 kB | |
beam_except : 0.00 s 3.2 kB | |
beam_bool : 0.00 s 3.2 kB | |
beam_type : 0.00 s 3.2 kB | |
beam_split : 0.00 s 3.1 kB | |
beam_dead : 0.00 s 3.2 kB | |
beam_jump : 0.00 s 3.2 kB | |
beam_peep : 0.00 s 3.2 kB | |
beam_clean : 0.00 s 3.2 kB | |
beam_bsm : 0.00 s 3.2 kB | |
beam_receive : 0.00 s 3.2 kB | |
beam_trim : 0.00 s 3.2 kB | |
beam_flatten : 0.00 s 2.7 kB | |
beam_z : 0.00 s 2.7 kB | |
beam_validator : 0.00 s 2.7 kB | |
beam_asm : 0.00 s 0.6 kB | |
save_binary : 0.00 s 0.6 kB | |
{ok,foo} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment