Un compilador es un programa que traduce código fuente escrito en un lenguaje de programación de alto nivel a lenguaje máquina. Los compiladores traducen todo el programa antes de ejecutarlo y pueden detectar errores. Existen herramientas como Lex/Yacc que generan compiladores eficientes de forma automática. Algunos populares compiladores para C incluyen DJGPP, CodeBlocks y Dev-C++.