Well, so what is the Java VM programmed in? ASM? How is it able to run on so many different OS's/platforms? Are there any other languages besides java that are that flexible? And one last question...Say that you were to write your own OS, would you have to write your own c++ compiler?