Un compilador traduce un programa escrito en un lenguaje de programación a un lenguaje común. Existen diferentes tipos de compiladores como compiladores de una o varias pasadas, compiladores optimizadores, compiladores cruzados y compiladores JIT. Los compiladores generan programas más rápidos pero están ligados a una plataforma específica.