5 ms·
Maybe they meant there’s no VM like w/ Java, so no intermediate bytecode, or no IL like C# iirc
by deilline 4y ago
Maybe they meant there’s no VM like w/ Java, so no intermediate bytecode, or no IL like C# iirc
- kaba0 4y agoI’m sure you know it but in the majority of cases JIT-compiled languages run bare-metal machine code just as well.
- pjmlp 4y agoIt is called LLVM, GIMPLE or whatever, depending on the middle layer we are talking about in C and C++ compilers. Likewise there are JIT and AOT compilers for turning those JVM bytecodes or MSIL into machine code as well, including not shipping a VM rather a runtime. So it does show a lack of understanding on how compilers work.
- stingraycharles 4y agoYes but assembly is an intermediary representation and the OS is not doing any “direct execution”, it’s the CPU that does it. I would expect a seasoned C++ database developer to be able to understand these nuances.
- jcelerier 4y ago> Yes but assembly is an intermediary representation there's certainly a technical difference between assembly and machine code, but it's pretty common to use the word "assembly" by metonymy with the latter > the OS is not doing any “direct execution” OSes have native executable formats for which execution most certainly has less steps than executing a .js, a .jar or a .sh, which I would absolutely call "direct execution". The criterion can be defined I would guess as - does the OS / environment need to launch a separate process / specific steps such as setting up an interpreter before getting to the code you want to execute ? but most likely there's a finer distinction to be made.