
My First Fifteen Compilers
We sometimes think of the number of passes in a compiler as a measure of the compiler’s complexity. But what if we could make compiler development more approachable by fully embracing the idea that a compiler should be structured as a large number of small passes, each performing a single specific task?