Este documento describe diferentes tipos de compiladores, incluyendo compiladores cruzados, de montaje y ejecución, de una o múltiples pasadas, de optimización e incremental. También describe ensambladores, auto-compiladores y meta-compiladores. Explica las ventajas de los compiladores como que se compila una vez y se ejecuta muchas veces y generan código optimizado, pero también sus desventajas como el uso de más memoria.