Computer program: A list of instructions(code) meant to be followed by a computer
Executing a program: Programs must first be converted into machine code that the computer can understand and execute
Compiler: A program that translates a programming language into machine code is called a compiler
Program -> compiler -> machine code -> operating system(platform)
In JAVA
The Java compiler produces an intermediate format called bytecode.
Java program -> compiler -> Java Bytecode (not machine code for real computer, is machine code for a model computer, called Java Virtual Machine(JVM))
Java Interpreter: convert the bytecode into machine code(Simulates the execution of the JVM on the real computer)
Can run bytecode on any computer that has a Java Interpreter (JRE - Java Runtime Environment - Java 8, Java 9...download from Oracle website) installed