Fri May 10 19:20:44 EDT 2013

Don't write a one-pass compiler

One of those non-obvious obvious things..

It's often hard to do in one pass because of a global->local
information flow.  At least a pass "leaving holes" is necessary,
i.e. a lazy approach.

That is, unless you're using a lazy language, in which case some magic
might be possible performing in one pass what ordinary morals need to
do in two.