This is a topic that seems somewhat mysterious at first, particularly if you have never spent time with a low-level language like Assembly or C.
1. Tokenizes / scans the code - The characters in the code are identified as a keyword, an identifier (e.g. variable name), an operator, etc.
2. Parses and creates an Abstract Syntax Tree (AST) - The AST forms the relationships between the various tokens.
4. Just-In Time (JIT) compiled - At this point, the code is compiled into machine code right before you need to use it.