Some computer programming languages are compiled. At the hardware/processor level, everything is purely digital – i.e. a series of 1′s and 0′s sometimes called machine language. The further removed from machine level, generally the easier it is for humans to read and write code. For example Assembler is a low-level language that is hard to learn and write but is easily translated to machine language. C++ is language that uses a lot of understandable words and conventions but can be compiled so it will still run fast. C++ is known as “mid-level” language because it is uses both higher and level components. It is very popular and has been used to create almost all of the applications and games you have been installing on your computer or video games.
Java is similar to C++ in a lot of ways but care has been taken to make it easier to use and eliminate some tedious tasks. The idea behind Java is to make a platform-independent language – “write once, run anywhere.” With Java you could write a program on a PC and have it run without changes on a Mac or a cell phone. For this work each platform needs to be running a Java Virtual Machine (JVM). The Java code is compiled into pcode and it treats the virtual machine like a middle man and the JVM tells the machine what do do. The Java programmer doesn’t need to know about the JVM and the pcode instructions sent to it. This extra layer means Java is not as fast as a compiled C++ program, but Java applets can run within a web page.