The document discusses the three phases of analysis in compiling a source program: 1) Linear analysis involves grouping characters into tokens with collective meanings like identifiers and operators. 2) Hierarchical analysis groups tokens into nested structures with collective meanings like expressions, represented by parse trees. 3) Semantic analysis checks that program components fit together meaningfully through type checking and ensuring operators have permitted operand types.