
Java
I am not sure why you label it "hybrid".
Java compiles the source code, not for a specific processor, but for what you might consider a fictitious processor. That is, it doesn't compile for the specific machine code understood by a real processor.As for the reason, that's because that's what
Java is all about.
Java programs are supposed to be compiled only once, and then run on any computer that has an appropriate
Java runtime (the "
Java Virtual Machine").