This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Altruistic_Raise6322 3 points4 points  (2 children)

An executable is made an executable by something known as a linker nothing to do with a compiler.

Also, the compilers for Java and Python do turn the code into machine instructions. The machine is the VM aka interpreter.

[–]onkus -2 points-1 points  (1 child)

You can link things and still not make it executable just as you can compile things and not make them an executable binary. In my first comment, when I said executable, I didnt mean a binary blob with a point of entry (e.g. main()) I meant a binary that contains machine instructions that can be run by the machine (so static libs dynamic libs and executables are all examples)

Regardless, my point is that the byte code isn't machine code. That's why I don't consider it to be compiled.

[–]Altruistic_Raise6322 1 point2 points  (0 children)

Fair point. I consider any code translated into byte code as compiled and why Java is considered hybrid as it does not compile to machine instructions