Publicidad

sábado, 27 de septiembre de 2008

Ligadores Dinámicos y Programación Distribuida

Algunas funciones, o metodos, que estan llamadas desde dentro de un programa existen fuera del programa compilado. El proposito de un ligador es manejar este problema.

Existen dos formas de ligar funciones desde afuera del programa:

1.Ligado estático. Un ligador toma el código de objeto del programa compilado y combina esto con código de la función, o metodo, relevante, asi formando un archivo ejecutable.
2.Ligado dinámico. En el tiempo de ejecución del programa, el ligador “invoca” una función, o metodo, que existe en algun lugar aparte del código del programa. Esto quiere decir que la función cierta está identificada (con resolución de su nombre), encontrada, y cargada en la memoria, con los datos copiados desde el programa hasta variables para ser manipulados por la función, un puntero está puesto en la primera instrucción de la función, todo está puesto en la pila, la función corre y los resultados (los datos modificados) estan regresados para el programa que hizo la llamada.

Ligado dinámico abre la posibilidad de computación distribuida, pues asi no es necesario tener funciones cargadas en la memoria de la misma máquina donde corren los programas que llaman estas funciones. De hecho, ni es necesario que la funcion sea escrita en el mismo lenguaje. Solo es necesario un metodo para identificar la función cierta, en termos de datos de entrada y salida y lo que hace la función (no como lo hace). La primera parte se puede hacer con un interface de tipo API. Las dos partes se puede hacer por medio de algo como el Web Services Description Language, que guarda estes metadatos en un archivo de XML.

Claro que, también, es preciso pasar una mensaje para que la función corra, junto con los datos para la función.

2 comentarios:

Ángel Sánchez dijo...

Hola bret:
buena publicación, creo que es importante conocer los dos tipos de ligadores, en lo particular veo que tienen más ventajas los dinámicos, y algo interesante es lo que dices sobre que la funcion aparte del programa no tiene que ser necesariamente escrita en el lenguaje
solo cuida unos errores gramaticales
felicidades bret

cecilia dijo...

HOLA........
PUES TU PUBLICACION ME PARECE INTERESANTE, YA QUE MENCIONAS LOS DOS TIPOS DE LIGADORES EXISTENTES EL DINAMICO Y ESTATICO Y COMO EL COMPAÑERO JUAN TE MENCIONA ES INTERESANTE QUE LA FUNCION APARTE DEL PROGRAMA NO NECESARIAMENTE DEBE SER EN EL MISMO LENGUAJE YA QUE EN SU MAYORIA NO SE PERMITEN ESAS COSAS.