What's Running the Web ?
What is interpretation anyway?
Interpretation languages are executed line by line. Thus, if there's an error at line 19, nothing is stopping the execution from lines 1 to 18. A typical interpretation flowchart looks as follows:
And pray to tell, What is 'Compilation'?
Well, the programming languages that are 'compiled' such as Java, C++, C etc, generally have a compiler which converts the entire code from high-level language (comprehensible to humans) to the binary sequence of 0's and 1's also called assembly language(comprehensible to your computer). Compilation creates an executable bytecode, which can then be run by the Runtime Environment at any time in the future. A typical compilation workflow looks as follows:
Compiled languages are much faster than interpreted languages. This can be appreciated by the following chart( taken from a brilliant medium article which I would highly recommend you to read):
The parsing phase achieves this by just reading the code from beginning to end, to find any obvious errors like a duplicate declaration of variables. The result of an error-free code after the parsing phase is the creation of an Abstract Syntax Tree(AST). Thereafter the compiler converts the AST to an executable bytecode just before execution.