scanning / lexical anaysis / lexing | token | parsing -> grammar | parse tree / abstract syntax tree, AST | static analysis | binding / resolution (foreach identifier, find definition) | symbol table | front end / middle end / back end | intermediate representation | control flow graph | static single-assignment | continuation-passing style | three-address code | constant folding | constant propagation | common subexpression elimintation | loop invariant code motion | global value numbering | strengh reduction | scalar replacement of aggregates | dead code elimination | loop unrolling | p-code / bytecode | single-pass compilers | tree-walk interpreter | jit | reference counting | tracing garbage collection (a unified theory of garbage collection) | an argument / actual parameter | a parameter is a variable that holds the value of the argument inside the body of the function | the next 700 programming languages | classes or prototypes | static vs dynamic dispatch |