¿Qué es la vinculación de direcciones?

La memoria de la computadora usa direcciones lógicas y direcciones físicas. El enlace de direcciones asigna una ubicación de memoria física a un puntero lógico al asociar una dirección física a una dirección lógica, que también se conoce como dirección virtual. El enlace de direcciones es parte de la administración de la memoria de la computadora y lo realiza el sistema operativo en nombre de las aplicaciones que necesitan acceso a la memoria.

Gestión de memoria

El enlace de direcciones se relaciona con la forma en que el código de un programa se almacena en la memoria. Los programas están escritos en texto legible por humanos, siguiendo una serie de reglas establecidas por los requisitos estructurales del lenguaje de programación, y utilizando palabras clave que la Unidad Central de Procesamiento de la computadora interpreta en acciones. El punto en el que se crea la versión ejecutable de un programa determina cuándo se produce el enlace de direcciones. Algunos lenguajes de programa, como "C" y COBOL, deben compilarse, mientras que otros, principalmente scripts, se ejecutan desde el texto del programa original en lugar de una versión binaria compilada de código de máquina.

Tiempo de compilación

El primer tipo de vinculación de direcciones es la vinculación de direcciones en tiempo de compilación. Esto asigna un espacio en la memoria al código de máquina de una computadora cuando el programa se compila en un archivo binario ejecutable. El enlace de direcciones asigna una dirección lógica al punto de inicio del segmento en la memoria donde se almacena el código objeto. La asignación de memoria es a largo plazo y solo se puede modificar volviendo a compilar el programa.

Tiempo de carga

Si la asignación de memoria se designa en el momento en que se asigna el programa, entonces ningún programa puede transferirse de una computadora a otra en su estado compilado. Esto se debe a que el código ejecutable contendrá asignaciones de memoria que ya pueden estar en uso por otros programas en la nueva computadora. En este caso, las direcciones lógicas del programa no están vinculadas a las direcciones físicas hasta que el programa se invoca y se carga en la memoria.

Tiempo de Ejecución

El enlace de direcciones de tiempo de ejecución generalmente se aplica solo a variables en programas y es la forma más común de enlace para scripts, que no se compilan. En este escenario, el programa solicita espacio de memoria para una variable en un programa la primera vez que se encuentra esa variable durante el procesamiento de instrucciones en el script. La memoria asignará espacio a esa variable hasta que finalice la secuencia del programa, o a menos que una instrucción específica dentro del script libere la dirección de memoria vinculada a una variable.