¿Cuál es la diferencia entre el cargador de vinculador y el compilador

La principal diferencia entre el cargador de vinculador y el compilador es que el enlazador combina uno o más archivos de objetos generados por el compilador en un solo archivo ejecutable. Mientras tanto, un cargador coloca los programas en la memoria y los prepara para la ejecución, mientras que el compilador convierte el código fuente en código objeto..

Un programa de computadora es una colección de instrucciones que realizan una tarea específica cuando la computadora lo ejecuta. Un software de sistema es un tipo de programa de computadora que proporciona una plataforma a otro software. Linker, loader y compiler son tres sistemas de software asociados con la programación de computadoras..

Áreas clave cubiertas

1. Que es un compilador
     - Definición, Funcionalidad
2. ¿Qué es un enlazador?
     - Definición, Funcionalidad
3. Que es un cargador
     - Definición, Funcionalidad
4. ¿Cuál es la diferencia entre el cargador de vinculador y el compilador
     - Comparación de diferencias clave

Términos clave

Compilador, enlazador, cargador

Que es un compilador

Un programa es un conjunto de instrucciones para realizar una determinada tarea. También es conocido como el código fuente. El programador puede entender el código fuente, pero la CPU no puede entenderlo. Por lo tanto, es necesario convertir el código fuente a un formato comprensible para la máquina..

Figura 1: Compilador

Un compilador es un software especial que se utiliza en este proceso. Convierte el código fuente en código objeto. Este código objeto es un código intermedio. La CPU no puede ejecutarlo directamente..

¿Qué es un enlazador?

Después de convertir el código fuente en el código objeto, el enlazador realiza la tarea de vinculación. Toma uno o más archivos de objetos generados por el compilador y los combina para generar un archivo ejecutable.

Figura 2: enlazador

Además, combina los códigos objeto con las bibliotecas. Por ejemplo, en un programa C, si hay una función sqrt () para calcular la raíz cuadrada de un número, el enlazador vincula el programa con la biblioteca matemática. Finalmente, la CPU puede leer y entender el archivo ejecutable generado. Por lo tanto, la CPU puede ejecutar ese archivo para realizar la tarea definida en el programa. 

Que es un cargador

Un cargador localiza los programas en la memoria y los prepara para la ejecución. Es un componente importante al iniciar un programa. Incluye tareas como leer el contenido del archivo ejecutable y colocar el archivo en la memoria. Además, realiza las tareas necesarias para preparar el archivo ejecutable para su ejecución. Una vez que se completa la carga, el sistema operativo inicia el programa pasando el control al código del programa cargado.

Figura 3: Compilación

La mayoría de los sistemas operativos admiten cargadores para cargar programas. La mayoría de los sistemas tienen el cargador ubicado en la memoria, mientras que otros que admiten memoria virtual tienen el cargador en una región de memoria paginable.

Diferencia entre el cargador de vinculador y compilador

Definición

Un enlazador es un programa de utilidad de computadora que toma uno o más archivos de objetos generados por un compilador y los combina en un solo archivo ejecutable. Un cargador es parte de un sistema operativo que se encarga de cargar programas en la memoria. Un compilador es un software que transforma el código de computadora escrito en un lenguaje de programación (código fuente) en otro lenguaje de programación (código objetivo). Por lo tanto, esto explica la principal diferencia entre el cargador del enlazador y el compilador..

Funcionalidad

Además, un enlazador combina varios códigos de objeto y los vincula con bibliotecas. Mientras tanto, un cargador prepara el archivo ejecutable para ejecutarse, mientras que un compilador transforma el código fuente en código objeto. Por lo tanto, esta es la diferencia entre el cargador de vinculador y el compilador en términos de funcionalidad. 

Conclusión

En resumen, la diferencia entre el cargador del enlazador y el compilador es que un enlazador combina uno o más archivos de objetos generados por el compilador en un solo archivo ejecutable y un cargador coloca los programas en la memoria y los prepara para la ejecución, mientras que un compilador convierte el código fuente en código de objeto.

Referencia:

1. "Linker (Informática)". Wikipedia, Wikimedia Foundation, 6 de octubre de 2018, disponible aquí.
2. “Loader (Computing).” Wikipedia, Wikimedia Foundation, 10 de octubre de 2018, disponible aquí.
3. "Compilador". Wikipedia, Wikimedia Foundation, 9 de octubre de 2018, disponible aquí.

Imagen de cortesía:

1. "Compilador ideal" (CC BY-SA 3.0) a través de Commons Wikimedia
2. “Linker” por Qef: trabajo propio por el cargador, basado en la disposición de un mapa de bits equivalente por Orderud (dominio público) a través de Commons Wikimedia.
3. “Screenshot-turbo51.com 2016-01-14 18-44-16" Por անհայտ - Aho, Sethi, Ullman, Compiladores: Principios, técnicas y herramientas, Addison-Wesley, 1986. ISBN 0-201-10088- 6 (CC BY-SA 4.0) a través de Commons Wikimedia