El proceso de compilación
Los
ordenadores son máquinas simples que lo único
que pueden hacer es ejecutar una secuencia de órdenes
expresadas en un lenguaje máquina entendible por el ordenador.
El
lenguaje máquina es un conjunto de códigos
numéricos, que le indican a la máquina las operaciones
que esta debe realizar. Estas operaciones son muy simples
(sumas, restas, multiplicaciones), y agrupadas en un conjunto mayor
conforman un programa que realiza las funciones para las cuales se
han creado.
Pero
existe un problema y es que estos códigos de operación
son dependientes de la máquina en cuestión, es decir,
que hacer el mismo programa para otra máquina implica volver a
codificar dicho programa otra vez en los códigos de operación
para esa nueva máquina. Esto es muy costoso tanto en tiempo
como en esfuerzo.
Los
programas escritos en lenguaje máquina tienen la ventaja de
ser muy eficientes, ya que el programador escribe el programa de
forma específica para la máquina en cuestión,
pudiendo aprovecharse de las características específicas
de la máquina, obteniendo de ella el máximo
rendimiento. Pero en la práctica, sólo se programa en
lenguaje máquina en casos muy concretos, ya que tanto el
diseño, como el desarrollo y el mantenimiento lo vuelve muy
complejo.
Una de las
facilidades que se tiene para la codificación en lenguaje
máquina es la utilización del lenguaje ensamblador.
Este lenguaje utiliza una notación simbólica para
representar los códigos de operación, estos códigos
son más fáciles de recordar que el lenguaje máquina.
Pero aún utilizando el lenguaje ensamblador para la creación
de programas, dicha tarea sigue siendo difícil y engorrosa. En
la actualidad, como es lógico pensar, la tarea de generar el
código máquina es una tarea que la realizan las
máquinas automáticamente.
Lo más
deseable para un humano es que se pudieran crear programas en un
lenguaje lo más cercano a nuestra forma de trabajar. Lo ideal,
podría ser por ejemplo el lenguaje humano, pero hoy en día
esto es imposible.
Lo que sí
se ha conseguido en la actualidad es que los lenguajes de
programación sean independientes de la máquina. De
esta forma no hace falta crear completamente diferentes versiones de
un mismo programa para diferentes máquinas. A esta
característica se le llama portabilidad, la cual ahorra mucho
tiempo de trabajo al codificar un solo programa para
diferentes máquinas, que en definitiva significa reducción
de costes.
La
programación en un lenguaje de alto nivel o en un lenguaje
ensamblador requiere, por tanto, algún tipo de unión
con el lenguaje máquina para que el programa pueda ejecutarse.
Las tres interfaces más comunes son: ensamblador, compilador e
intérprete. El ensamblador y el compilador
traducen el programa a otro lenguaje equivalente en el lenguaje
máquina como un paso separado antes de la ejecución.
Por otra parte, el intérprete, no genera un programa
objeto, sino que ejecuta directamente las instrucciones del lenguaje
de alto nivel.
Submenu
|