ENLAZADOR
Se podría definir un
enlazador como un programa que toma los códigos objetos creados en el proceso
de compilación de un programa, junto con los datos provenientes de subprogramas
que se agrupan en bibliotecas, todo esto con el fin de producir un ejecutable o
una biblioteca.
El proceso que lleva a cabo
el enlazador comienza a r luego de una revisión sintáctica, semántica y léxica
del código compilado.
El linker u enlazador permite al programador escribir su código en cualquier lenguaje de alto nivel o si así lo desea en lenguaje de bajo nivel, ya que éste (el enlazador) se encargará de transformarlo a lenguaje de máquina. Con esto, la tarea del programador se facilita tanto en la codificación como en el tiempo utilizado para escribir un programa.
El linker u enlazador permite al programador escribir su código en cualquier lenguaje de alto nivel o si así lo desea en lenguaje de bajo nivel, ya que éste (el enlazador) se encargará de transformarlo a lenguaje de máquina. Con esto, la tarea del programador se facilita tanto en la codificación como en el tiempo utilizado para escribir un programa.
FUNCION DE LOS ENLAZADORES
Los enlazadores deben de
cumplir con cuatro funciones básicas, a saber:
1.
Enlazar al mismo tiempo módulos traducidos independientemente
2.
Superposición de procesamiento.
3.
Modificación del programa
4. Acceso
a las bibliotecas.
La primera función, que es
la que se considera la principal, es la que permite crear un único archivo a
partir de varios archivos de código de máquina relocalizable.
Estos archivos pueden haber
sido el resultado de varias compilaciones distintas, y uno o varios de ellos
pueden archivos de biblioteca de rutinas proporcionadas por el sistema y
disponibles para cualquier programa que las necesite. Las demás funciones se
consideran secundarias, sin embargo, son necesarias para el funcionamiento que
se necesita de un enlazador. Gracias al acceso a bibliotecas es que podemos
utilizar las clases pre compiladas que la mayoría de lenguajes de programación
nos ofrece, también no se permite cambiar por módulos el programa, es decir,
que si se desea cambiar solo un archivo no es necesario compilar y enlazar todo
de nuevo, simplemente es necesario enlazar y compilar el código que deseamos
cambiar.
ESTRUCTURA DE LOS ENLAZADORES
Los enlazadores pueden estar
estructurados de dos formas diferentes, la primera estructura corresponde a los
enlazadores de una pasada, mientras que la segunda a los enlazadores de dos
pasadas.
Los enlazadores de una pasada durante el procedimiento de enlace almacenan todo o parte del contenido de los archivos de entrada, en memoria o en el disco y luego en la ejecución leen ese material.
Por su parte, los enlazadores de dos pasadas, en la primera pasada el enlazador toma todos los códigos objetos creados en el proceso de compilación y todas librerías necesarias para crear el ejecutable. En esta primera etapa todos los códigos objetos que van a formar parte del ejecutable cuentan una serie de segmentos y una tabla de símbolos. La tabla de símbolos contiene símbolos importados (nombres de rutinas que son llamados desde otro archivos) o exportados (símbolos que son utilizados en el archivo pero que están definidos en otro).
A todos estos datos de entrada, el enlazador busca el tamaño de sus segmentos, las definiciones y referencias de todos los símbolos y con esta información crear una única tabla en la que se listan todos los segmentos definidos en los archivos de entrada. También crea una tabla única de símbolos que contiene tanto los símbolos importados como los símbolos exportados.
TIPOS DE ENLAZADORES
Se puede decir que existen
dos tipos de enlazadores, a saber, los enlazadores dinámicos y los enlazadores
estáticos.
Los enlazadores dinámicos: son aquellos que le
permiten a un programa en ejecución agregar, quitar, remplazar o realojar los
módulos de objeto dentro de la dirección de memoria durante su ejecución.
Los enlazadores estáticos: el proceso de enlace
sólo se lleva a cabo una vez cuando se produce el archivo ejecutable, el cual
es cargado directamente en memoria cuando es ejecutado. Como se puede deducir
de lo anteriormente descrito, los programas que usan enlazadores estáticos son
incapaces de cambiar su estructura durante su ejecución.
GENERALIDADES DE LOS ENLAZADORES DINÁMICOS
Como se definió
anteriormente los enlazadores dinámicos son aquellos que permiten que un
programa modificado mientras esta en ejecución.
Los enlazadores dinámicos se
dividen en dos etapas, la etapa de enlazamiento estática y la etapa de
enlazamiento en tiempo de cargado. Durante la etapa estática las rutinas de las
bibliotecas utilizadas en el ejecutable creado necesitan ser referenciadas, no
así definidas, ya que en la segunda etapa el enlazador se encargará de buscar y
cargar todas las rutinas que no están definidas antes de pasarle el control al
procedimiento principal.
Lo anterior es el proceso
que siguen en general todos los enlazadores dinámicos, ahora según el sistema
operativo en el que se esté trabajando la implementación de enlazadores
dinámicos va ser distinta.
El primer enlazador dinámico
que existió fue el ELF dynamic linking introducido por Sun Microsystems a
principio de la década de los 80 el cual se convirtió, en la década de los 90,
en estándar para los sistemas operativos unix y derivados como Linux . Por su
parte Microsoft implementa sus enlazadores dinámicos mediante los dll’s, los
cuales tienen prácticamente el mismo funcionamiento.
Generalidades de los Enlazadores Estáticos
En un principio los enlazadores podían ser sólo de tipo estático, sin embargo como se menciono anteriormente a partir de la década de los 80’s se logro hacer enlazadores que pudieran ser ejecutados dinámicamente. Un enlazador estático es aquel que como se mencionó anteriormente solo se produce una vez y que no permite que el programa cambie mientras está siendo ejecutado.
Los enlazadores
estáticos necesitan además que todos los símbolos globales estén bien definidos
y en el caso de que se deba de hacer un cambio en alguno de los objetos se debe
de volver a enlazar todos los códigos objetos. Por otra parte es más eficiente
en ya que es menos complicado de manejar en memoria que los enlazadores dinámicos,
y además de que la tabla de símbolos es considerablemente más pequeña que los
enlazadores dinámicos
Video sobre Enlazador:
Titanium Steel | TI - Titanium Art
ResponderBorrarStainless Steel. Stainless ford titanium steel titanium paint color is the primary component of iron camillus titanium ore. iron titanium In this article, we will talk about the copper ore in our Titanium steel tutorial. nano titanium by babyliss pro