4 ms·
In non-VM languages everything is compiled down to assembly (or, more accurately, machine code) This is a misconception: Both AOT and JIT compilers can generate
by The_rationalist 6y ago
In non-VM languages everything is compiled down to assembly (or, more accurately, machine code)
This is a misconception:
Both AOT and JIT compilers can generate directly machine code OR intermediate representations (bytecode, llvm IR) which ultimately reduce to machine code.
AOT and JIT simply differ in when the machine code generation is executed.
VM are just a special case of JIT that enable hardware agnosticity without fatELF.
The rest of your comment was instructive.
- gpderetta 6y agoNormally VMs (although strictly speaking doesn't have to be) are not only an abstraction layer but also enforce some form of isolation and memory safety.
- The_rationalist 6y agoRight however full featured VMs allow to escape such safety when needed (for performance and interop with the outside world)