I am not specialist of compilers and I have a few questions about Julia design.
1- Julia is JIT compiled, because this design enable an interactive use in the REPL without the loss of performances of an interpreted langage. Is that true ?
2- if 1 is true, are there another motivations for JIT compilation instead of static compilation ?
3- in Julia it is optional but possible to indicate the type of all variables. If one write a Julia program like if it was a statically typed langage, in theory the compiler have all the information to build a binary executable ?
4- is LLVM able to build a binary executable under some conditions ?
5- if 3 & 4 are true, what is missing to build a executable ?
Thank you !