Firstly, because I am not even close to a specialist in the matter, so I will tell you what I know, that might be imprecise or sometimes wrong.
Given a executable one can extract assembly code, and even convert to C… It will result in a messy code.
Many of the ways people use to put python and R code into execs do not generate assembly code they simply hide the script, so its usually possible to extract the script completely (including comments!). Thus the right thing to do in this case e just code obfuscation and that has nothing to do with static compilation, its just some kind of indirect consequence for languages like C.
I am not sure about the julia process, someone else might it explain and even correct me in whatever mistake I might have made above.
But the 3 topics I presented are independent and people do mix them when talking about static compilation:
- remove JIT overhead
- make a program more compact easier to distribute
- obfuscating the code
In particular, I am more interested in 1 and a little bit in 2 (that can be partially solved by BuildExecutable.jl and the userimg.jl method). 3 might me solved by some routines of replacing words, spacing, tabs, comments etc.