Codified https://www.youtube.com/watch?v=N6b44kMS6OM from 2019
A compiler has a pipeline of passes:
- ==lexing== the ==source== to get ==tokens==
- ==parsing== the ==tokens== to get the ==AST==
- semantically analyzing the ==AST==, type checking the ==AST==
- applying optimizations