> Manuales > Manual de iniciación a la programación

Explicamos cómo funciona el proceso de traducción de lenguajes de alto nivel a lenguajes máquina, los tipos de traductores: ensambladores y compiladores. También explicaremos qué son los intérpretes.

Proceso de traducción de los lenguajes de programación

En un capítulo anterior de este manual explicamos que existen lenguajes de programación de alto y bajo nivel. Nosotros siempre usaremos los lenguajes de alto nivel, por ser más entendibles por las personas. Pues bien, cuando programamos en lenguajes de alto nivel, lo que estamos haciendo en realidad es crear un código que será interpretable por ese lenguaje y, para que se pueda ejecutar en la máquina, el propio lenguaje tendrá que "darle sentido".

Ese paso, en el que se traduce el código de un lenguaje de programación de alto nivel al código máquina, se conoce como traducción o compilación. En este paso el código fuente del lenguaje de programación será traducido a binario para que las instrucciones que contienen puedan ser entendidas y ejecutadas por la máquina en cuestión.

Tipos de traductores

Los traductores que pasan el código al lenguaje de la máquina pueden ser de varios tipos:

Ensambladores

Son encargados de traducir los programas escritos en lenguaje ensamblador a lenguaje máquina.

Compiladores

Son programas que leen el código fuente y lo traducen o convierten a otro lenguaje. Estos programas te muestran los errores existentes en el código fuente.

Etapas del proceso de compilación

  1. Edición. Esta fase consiste en escribir el programa empleando algún lenguaje y un editor. Como resultado nos dará el código fuente de nuestro programa.
  2. Compilación. En esta fase se traduce el código fuente obtenido en la fase anterior a código máquina. Si no se produce ningún error se obtiene el código objeto.
    En caso de errores el compilador los mostraría para ayudarnos a corregirlos y se procedería a su compilación de nuevo, una vez corregidos.
  3. Linkado. Esta fase consiste en unir el archivo generado en la fase dos con determinadas rutinas internas del lenguaje, obteniendo el programa ejecutable.
Existen dos tipos de linkados: 1) linkado estático: Los binarios de las librerías se añaden a nuestros binarios compilados generando el archivo ejecutable. 2) Linkado dinámico: no se añaden las librerías a nuestro binario sino que hará que se carguen en memoria las librerías que en ese momento se necesiten.

Una vez traducido, compilado y linkado el archivo esta listo para su ejecución donde también podrán surgir problemas y fallos, para los cuales tendríamos que volver a realizar todo el proceso anteriormente citado, de modo que puedan ser corregidos.

Por este motivo es importante realizar numerosas pruebas en tiempo de ejecución antes de presentar el programa al cliente.

Ejemplos de lenguajes compilados son C, C#, Java, Swift, Pascal. De hecho, la mayor parte de los lenguajes tradicionales requieren compilación.

Intérpretes

Otro sistema para la ejecución de nuestro código fuente es mediante el uso de intérpretes (estos no se encontrarían dentro de los traductores). Los intérpretes realizan la traducción y ejecución de forma simultanea, es decir, un intérprete lee el código fuente y lo va ejecutando al mismo tiempo.

Las diferencias entre un compilador y un intérprete básicamente son:

Ejemplos de lenguajes interpretados tenemos a PHP, Javascript, Python... Generalmente son un poco más fáciles de usar porque nos dispensan de la necesidad de compilar.

Conclusión

Hemos adquirido un poco de cultura general sobre el proceso de traducción de los lenguajes de alto nivel a los lenguajes de bajo nivel, cercanos a la máquina.

Lo que nos debe quedar claro es que, cuando programamos en un lenguaje como C, Java o cualquier otro, el código fuente que estamos generando requerirá de algunos pasos para que el ordenador lo pueda ejecutar. Dependiendo del lenguaje esos pasos los puede realizar un traductor, que se encargue de compilar el programa, o un intérprete, que no requiere compilación explícita, sino que se encargará de hacer la traducción al vuelo, cuando se requiera la ejecución del programa.

Para que podamos hacer esa traducción nuestro ordenador requerirá que tengamos soporte a ese lenguaje con el que estamos trabajando, para lo cual habremos tenido que instalar el correspondiente compilador o intérprete. Muchos ordenadores vienen con soporte a algunos lenguajes de manera predeterminada, como MacOS que soporta Python de casa, o Javascript que podrá ser ejecutado en el entorno del navegador. En algunos casos tendremos que instalar el correspondiente programa manualmente.

Cuando llegue el momento veremos lenguajes determinados y una de las primeras cosas que aprenderás es a instalar ese lenguaje para poder ejecutar los programas que estés desarrollando con él. De momento ahora estamos en un buen momento para comenzar una etapa un poco más práctica en el Manual de Iniciación a la Programación, en la que ya queremos empezar a pensar en programas y algoritmos. Estamos seguros que muchos de vosotros lo estáis deseando. Así que vamos adelante con esta nueva área, analizando las herramientas y técnicas que tenemos para el diseño de algoritmos.

Sara Alvarez

Equipo DesarrolloWeb.com

Manual