Para agilizar el proceso de programación se crearon los lenguajes de programación de alto nivel que permiten escribir instrucciones muy similares al inglés además de contener expresiones matemáticas de uso común. Estos lenguajes de alto nivel, al igual que los lenguajes ensambladores, no son comprensibles por la computadora y necesitan de programas traductores, conocidos como compiladores, que convierten las instrucciones del lenguaje de alto nivel en instrucciones de lenguaje de máquina.
Dado que el proceso de compilación de los lenguajes de alto nivel puede ser demorado, se crearon soluciones como los programas intérpretes que en la medida que se ejecuta el programa, instrucción por instrucción, las van convirtiendo en lenguaje de máquinas, dando origen a los lenguajes de programación interpretados.
Aunque el proceso de generación de software utilizando lenguajes de programación compilados (C++, C#, Java, etc.) es más lento que utilizando lenguajes de programación interpretados (JavaScript, PHP, etc.), son mucho más rápidos en tiempo de ejecución.