Un compilador traduce código fuente escrito en un lenguaje de alto nivel a código objeto comprensible para las computadoras. Un compilador consta de dos partes: el front end analiza y valida el código fuente, mientras que el back end genera código máquina específico para una plataforma. De manera similar, un intérprete analiza y ejecuta programas escritos en un lenguaje de alto nivel, traduciéndolos instrucción a instrucción.