Ligadores y compiladores

Solo disponible en BuenasTareas
  • Páginas : 5 (1172 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de septiembre de 2010
Leer documento completo
Vista previa del texto
LIGADORES Y COMPILADORES

Ligadores

Entre el proceso de compilación y la ejecución existe el proceso de montaje de enlaces, que se produce cuando el lenguaje fuente permite una fragmentación de los programas en trozos, denominados de distintas formas según el lenguaje de programación empleado (módulos, units, librerías, procedimientos, funciones, subrutinas..., el lenguaje ADA introduce launidad de compilación, en inglés compilation unit). Dichas partes o trozos pueden compilarse por separado, produciéndose los códigos objetos de cada una de las partes.
El montador de enlaces o enlazador (en inglés linker) realiza el montaje de los distintos códigos objeto, produciendo el módulo de carga, que es el programa objeto completo, siendo el cargador (en inglés loader) quien lo trasfiere amemoria.
La compilación genera un código objeto llamado reubicable, cuyo significado es que las posiciones de memoria que utiliza son relativas. El montador de enlaces se encarga de colocar detrás del programa principal del usuario, todos los módulos reubicables.

Liga de Bibliotecas de Código Objeto

También puede generarse código apoyándonos en una biblioteca de funciones o clasesdesarrollada en un lenguaje de alto o medio nivel. Las funciones o métodos de dicha biblioteca pueden ser llamadas desde ensamblador o código máquina. De esta forma no se tiene que generar todo el código a bajo nivel, tan sólo lo estrictamente necesario. Este método es menos óptimo, pero en muchos casos viene impuesto por la necesidad de contar con prototipos o con primeras versiones en plazos muy cortosde tiempo. Estos módulos se pueden ir depurando, de forma que si algunas funciones de las bibliotecas de alto nivel no están muy optimizadas, en sucesivas versiones se pueden ir sustituyendo por otras desarrolladas a bajo nivel. Esta forma de utilizar bibliotecas construidas con compiladores de terceros, ya ha dado lugar a algún intento de limitar el uso de los compiladores.
La generación decódigo también puede hacerse directamente a código máquina binario, según las especificaciones del fabricante del microprocesador.
En el código generado los fabricantes también ponen sus marcas en binario por si hubiera algún litigio sobre el uso correcto o incorrecto de sus compiladores.
Generación de código utilizando bibliotecas desarrolladas con lenguajes de alto nivel
Biblioteca C/C++
L.Intermedioo

Compilador
Generador
De código

.OBJ

.ASM

.OBJ
.COM

Ensamblador

Constructor de bibliotecas (TLIB)

.OBJ
.LIB

Montador de Encalces (LINKER)

.EXE

Ligadores Estáticos
Cuando se utilizan subrutinas en un programa, el código ejecutable de cada una de ellas debe encontrarse en memoria al tiempo de ejecución. Para esto, antes de cargar un programa, debe ligarsesu código objeto con los códigos objeto (guardados en uno o más archivos) de cada una de las subrutinas invocadas por él, obteniendo así un programa ejecutable que contiene tanto el código del módulo invocador como el código de los módulos invocados.

Ligadores Dinámicos
El ligado dinámico ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinassólo cuando y si se necesitan. Si las subrutinas son grandes o tienen muchas referencias externas, se pueden conseguir ahorros considerables de tiempo y espacio de memoria
El ligado dinámico evita la necesidad de cargar la biblioteca completa para cada ejecución. Puede incluso hacer innecesario que el programa conozca el conjunto de subrutinas que se podría utilizar. El nombre de la subrutina setrataría simplemente como otro elemento de entrada. En el método que se utilice aquí las rutinas que se carguen dinámicamente deben llamarse por medio de una solicitud del servicio al sistema operativo. Este método también podría considerarse como una solicitud a una parte del cargador que se mantiene en la memoria durante la ejecución del programa.
Cuando se utiliza ligado dinámico, la...
tracking img