title: Very Basic Compilation Issues - please help!
body: <p>(1) At the bottom line: what does it all have to take to in order to make a program executable on a specific operating system? machine code, assembly language? </p>
  
  <p>(2) Does it have to be machine-readable in order to be executed by a CPU of some kind?</p>
  
  <p>(3) What kind of role does operating system play when a program is being executed? Does it have anything to do with helping the system interpret the program code?</p>
  
  <p>(4) And in light of Windows PC, is it necessary for all programs to be .exe in order to be executable? Why Java virtual machine?</p>
  
  <p>(5) How does decompiler work? What's the difference between programs compiled to machine code and assembly language?</p>
  
  <p>Many Thanks!!</p>