viernes, 31 de octubre de 2014

Ligadores



Es un programa que enlaza todos los programas o módulos obteniendo lo que denominamos programa ejecutable.
Un ligador es un programa de sistema que combina dos o mas programas objeto separados y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas pueden hacer referencia a código ó variables de los otros programas con los que está enlazado.
  FUNCIÓN
   Los editores de ligado pueden efectuar varias funciones últimas además de la simple preparación de un programa objeto para su ejecución estos también se pueden utilizar para construir paquetes de subrutinas u otras secciones que suelen utilizar juntas. Esto puede ser útil al tratar con bibliotecas de subrutinas que manejan lenguajes de programación de alto nivel. Comparados con los cargadores de ligadores los editores de ligado en general tienden a ofrecer mayor flexibilidad y control con el correspondiente incremento e complejidad y sobrecarga.

Tipos de ligadores
   La diferencia fundamental entre un editor de ligado y un cargador ligador es: Primero se ensambla o compila el programa fuente, produciendo un programa objeto (que puede contener varias secciones de control diferentes).
   Un cargador ligador realiza todas las operaciones de ligado y relocalización, incluyendo búsqueda automática en bibliotecas, si se especifica, y carga el programa ligado directamente en la memoria para su ejecución. Por otro lado, un editor de ligado produce una versión ligada del programa (llamada a menudo módulo de carga o imagen ejecutable), que se escribe un archivo o biblioteca para su ejecución posterior. Cuando el usuario esta listo para ejecutar el programa ligado, se puede utilizar un cargador re localizador simple para cargar el programa en la memoria. El editor de ligado realiza relocalización de todas las secciones de control relativas al inicio del programa ligado.
Ligador Dinámico. ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinas só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.

EDITOR DE LIGADO DEL SISTEMA /370. es muy parecido al analizado para SIC/XE. La técnica de referencia a un número se usa para mejorar la eficiencia. El programa de salida del editor de ligado se llama módulo de carga, y puede cargarse en la memoria para su ejecución, y suele contener suficiente información para permitir que el editor de ligado los reprocese.
LIGADORES ESTATICOS. 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 ligarse su 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. En este punto, es posible guardar el resultado del proceso de liga en un archivo que podrá ser utilizado por un cargador, o el mismo programa ligador puede también realizar la tarea de carga. Esto último evita el tener que guardar el código ejecutable en un archivo, con lo que se ahorra espacio en disco. Este ahorro de espacio en disco se paga con el tiempo gastado al tener que ligar todos los módulos cada vez que se necesite ejecutar el programa.
LIGADOR DEL SISTEMA VAX. El ligador VAX es un editor de ligado que realiza las mismas funciones básicas alcanzadas con anterioridad. La acción del ligador en la creación de las secciones de imagen está controlada por ensamblador o compilador por medio de una secuencia de mandatos que forman parte del programa objeto.
   LIGADOR  EN C++
Si algún archivo fuente hace referencia a funciones de una biblioteca o de funciones que están definidas en otros archivos fuentes, el ligador combina estas funciones (con main ()) para crear un archivo ejecutable. Las referencias a variables externas en esta etapa son resueltas.
USO DE LAS BIBLIOTECAS
C es un lenguaje extremadamente pequeño. Muchas de las funciones que tienen otros lenguajes no están en C, por ejemplo, no hay funciones para E/S, manejo de cadenas o funciones matemáticas.
La funcionalidad de C se obtiene a través de un rico conjunto de bibliotecas de funciones.

Como resultado, muchas implementaciones de C incluyen bibliotecas estándar de funciones para varias finalidades. Para muchos propósitos básicos estas podrían ser consideradas como parte de C. Pero pueden variar de máquina a máquina.

No hay comentarios:

Publicar un comentario