Fundamentos: Compilación e interpretación

Cuando escribimos un programa en algún lenguaje, nuestro propósito final siempre será ejecutarlo en una computadora para realizar una tarea específica. Ahora bien, al utilizar un lenguaje de programación estamos escribiendo instrucciones que no son exactamente las que la computadora entiende. Para que nuestro programa pueda ser ejecutado, será necesario traducir las instrucciones que hemos escrito en forma más sencilla para que la computadora pueda entenderlas. Esta traducción resulta siempre necesaria para poder ejecutar un programa escrito en cualquier lenguaje. El tipo de traducción que se haga, permitirá clasificar los lenguajes en lenguajes compilados y lenguajes interpretados.

En los lenguajes compilados, la traducción se realiza por única vez, almacenando las instrucciones ya traducidas a lenguaje máquina en un archivo. De este modo, al momento de ejecutar el programa, la computadora lee una a una las instrucciones del archivo generado durante el proceso de compilación, y las ejecuta. Para realizar la traducción o compilación, se utiliza un programa llamado compilador, que se encarga de tomar cada una de las instrucciones escritas en un lenguaje de programación y traducirlas a una o más instrucciones del lenguaje de la máquina. Durante la compilación, el compilador además valida que las instrucciones que hemos escrito sean correctas y que se respeten todas las reglas del lenguaje.


Por otro lado, con los lenguajes interpretados, no existe un paso previo de compilación, sino que la traducción se realiza mientras se ejecuta el programa. Para ello, se utiliza un software denominado intérprete, que a medida que el programa se ejecuta, lee cada una de las instrucciones y las traduce a instrucciones de la máquina, para que sean ejecutadas. Al igual que los compiladores, los intérpretes deben validar que las instrucciones estén bien escritas para poder traducirlas sin problemas. Generalmente, usando lenguajes compilados, se logra mayor rendimiento, ya que  el proceso de validación y de traducción se realiza una sola vez (al momento de la compilación). Luego, una vez que el programa está compilado, cada ejecución se hace sobre una secuencia de instrucciones de la computadora. Al usar lenguajes interpretados, la validación y traducción se realiza cada vez que se ejecuta el programa. Es más, si una misma instrucción se repite varias veces, el intérprete la validará y traducirá cada vez. Sin embargo, los lenguajes interpretados proveen cierto grado de flexibilidad a la hora de realizar cambios en nuestro programa ya que, modificando cualquier instrucción, estará lista para que el intérprete la tome y la traduzca.