
interleaving

1 pass?


lame

unnatural scope rules

limits optimisations

ignores modularity

nowadays...

5-15 passes


lexical analysis
(scanner)

strip whitespace

lexemes

tokens


syntax analysis

generates parse tree


semantic analysis

context-sensitive

type info