Wenn du so heran gehst, gibt es keine einzige Programmiersprache, die Cross Platform ist. Schließlich kannst du mit keiner unter x86 Prozessoren ARM-Code ausführen oder umgekehrt...

Doch, man kann z.B. Java-Byte-Code ohne Neukompilieren auf verschiedenen Plattformen ausführen *klugscheiss*
Ja, dazu braucht man dann die Runtime