El documento describe las diferentes pasadas que realiza un compilador. En la primera pasada se analiza el código fuente y se produce un código intermedio. En la segunda pasada se realiza una optimización a nivel de fuente y se genera un código en otro lenguaje. Finalmente, en la tercera pasada se produce y optimiza el código generado en las pasadas anteriores.