Una
aplicación informática suele estar
compuesta por
un conjunto de programa o subprogramas. Por tanto, el código
objeto de todos ellos
deberá ser enlazado (unido) para
obtener
el deseado programa ejecutable. Para ello, se utiliza un programa
llamado enlazador, el cual
generará y guardará,
en disco, un archivo ejecutable. En Windows, dicho archivo
tendrá
extensión (.exe), abreviatura de executable.
Debido a que los lenguajes
de alto nivel son
portables, un programa
escrito en este tipo de lenguaje podrá ejecutarse en
cualquier
otra máquina. Pero, esto no es del todo cierto, ya que, para
que
esto sea posible entre máquinas de distinto tipo, el código
fuente de dicho programa deberá compilarse
y enlazarse de nuevo en esa otra máquina. Esto quiere decir
que, en realidad, son portables los códigos fuentes (aunque
sea
con unos pequeños cambios), pero no los códigos
binarios.
Para la mayoría de los programas escritos en lenguajes de
programación de alto nivel, el proceso de
obtención del código ejecutable consta de tres
fases: edición, compilación
y enlace. Sin embargo, algunos lenguajes,
y C es
pionero en este sentido, requieren una fase más, llamada preproceso.
En esta etapa participa un programa llamado preprocesador.
El preproceso siempre se realiza antes que la compilación,
de hecho es el propio compilador quien
llama al preprocesador antes de
realizar la traducción del código fuente a
código objeto.
El preprocesador sirve para realizar una serie de modificaciones en el
código fuente escrito por el programador.
Dichas
modificaciones sirven, entre otras cosas, para que más tarde
el enlazador
pueda unir el código objeto del programa que se
está
desarrollando con el código objeto de otros programas.
En realidad, el preproceso no es visible al programador, ya que, el
preprocesador no guarda en disco ningún archivo, simplemente
modifica el código fuente y se lo pasa al compilador para
que
éste lo traduzca. |