Tokenizer Pratt parser Name resolution Function & constant parsing Type checking (& constant folding) Interpreting | Compiling to ksm