2.2. Proceso de traducción
![]() |
Imagen en pixabay de geralt bajo licencia CC |
Anteriormente, ya hemos comentado que la CPU sólo entiende el lenguaje máquina. Este, para cada máquina concreta, está compuesto por instrucciones en formato binario (0 ó 1).
El programador, para hacer esta tarea más sencilla y productiva, emplea lenguajes de programación específicos para construir un programa informático. Dicho programa se denomina código o programa fuente, no entendible por la máquina, así es necesario un proceso de traducción para convertir dicho programa a otro lenguaje que sí pueda ser entendido por la CPU en la que vamos a trabajar.
Esta traducción o conversión se puede hacer de dos formas distintas que se denominan interpretación o compilación. Por tanto, existen dos programas o aplicaciones encargadas de realizar cada tipo de traducción, estos son, los intérpretes y los compiladores.
1. Intérpretes:
Un intérprete es a su vez un programa que convierte o traduce un programa, escrito en un lenguaje de programación de alto nivel, instrucción a instrucción o sentencia a sentencia de una forma secuencial, es decir, cada instrucción es traducida una vez traducida la instrucción anterior, así traducción y ejecución se realizan conjuntamente. La principal ventaja de esta forma de trabajar es que la ejecución es inmediata, así pueden corregirse posibles errores que vayan surgiendo durante el proceso y continuar a partir de ese punto.
- Ejemplos de lenguajes interpretados son: JavaScript, Perl, PHP, Pyton, Lisp, Scheme, R, HTML.
2. Compiladores:
Un compilador es un programa, que a partir del todo código fuente genera lo que se llama el código objeto en lenguaje máquina. Así, este proceso lo realiza en dos fases independientes, la primera traduciendo completamente el programa fuente a código máquina y la segunda ejecutando dicho código máquina u objeto.
- Ejemplos de lenguajes compilados son: C, C++, C#, COBOL, Delphi, Fortran, Pascal.
El proceso de compilación requiere más tiempo que en un intérprete, sin embargo, una vez traducido, la ejecución es más rápida al trabajar directamente con el código máquina.

Objetivos
![]() |
Imagen en pixabay de SuperMerrily bajo licencia CC |
Es importante considerar en qué Sistema Operativo ejecutaremos nuestro programa. Hay lenguajes sólo para plataformas Windows (C#, VisualBasic, ASP, etc), para iOS (Objetive-C, Swift, etc), para Linux (Shell Script, etc) o multiplataforma (Java, PHP, R, C, Python, etc).
Atendiendo a esta característica el software para realizar la compilación será diferente. Sin embargo, el proceso básico de compilación consta de una serie de etapas ordenadas:
1. Edición
En esta etapa se obtiene el código fuente, escribiendo en un editor, que puede o no formar parte del programa compilador, el programa en un lenguaje de programación generalmente de alto nivel. A continuación, se guarda en algún dispositivo de almacenamiento para su uso en la siguiente etapa.
2. Compilación
Esta es la etapa pura de traducción del código fuente a código máquina o programa objeto, si no se produce ningún error en dicho proceso. En caso de errores, el compilador emite una serie de mensajes que ayudan al programador a corregirlos, para proceder nuevamente a la compilación.
3. Linkado
El programa obtenido en la etapa anterior (programa objeto) debe ser montado o linkado, uniendo el programa objeto con las funciones de librería que en él se han referenciado o enlazando módulos para conseguir el programa ejecutable.
4. Ejecución
Esta última etapa consiste en la llamada, por parte del sistema operativo, del programa ejecutable. De esta forma el usuario o sistema, a partir de unos datos de entrada, obtendrá los resultados correspondientes.
Proceso de compilación
Edición |
Compilación |
¿errores? | Linkado |
Ejecución |
Programa fuente | Programa objeto |
Sí: volver a compilar No: pasar a linkado |
Programa ejecutable | Mostrar resultados |