•A “pass” is a complete traversal of the source
program, or a complete traversal of some internal representation of
the source program (such as an AST).
•A pass can correspond to a “phase” but it does
not have to!
•Sometimes a single pass corresponds to several
phases that are interleaved in time.
•What and how many passes a compiler does over
the source program is an important design decision.