Hay dos programas de sistemas relacionados con un compilador:
1. Preprocesadores:
Producen la entrada para un compilador, es decir, completan el código fuente que lee el compilador; entre sus funciones están: procesamiento de macros, inclusión de archivos, preprocesadores "racionales" o extensiones a lenguajes.
2. Ensambladores:
Otros compiladores realizan el trabajo del ensamblador, produciendo código de máquina relocalizable que se puede pasar directamente al editor de carga y enlace.