El entorno de tiempo de ejecución es la estructura de los registros y la memoria de las computadoras de destino que sirve para administrar la memoria y mantener la información necesaria para guiar el proceso de ejecución de un programa.
Tipos de entornos de tiempo de ejecución:
- Completamente estático:
el entorno de tiempo de ejecución completamente estático puede ser útil para los lenguajes en los que los punteros o la asignación dinámica no son posibles además de no admitir llamadas a funciones recursivas.- Cada procedimiento tendrá un solo registro de activación que se asigna antes de la ejecución.
- Se accede a las variables directamente a través de una dirección fija.
- Pocos gastos generales de contabilidad; es decir, como mucho, la dirección del remitente debe almacenarse en el registro de activación.
- La secuencia de llamada implica el cálculo de cada dirección de argumento y el almacenamiento en su ubicación de parámetro adecuada y guardar la dirección de retorno y luego se realiza un salto.
- Basado en pila:
en esto, los registros de activación se asignan (empuje del registro de activación) cada vez que se realiza una llamada de función. La memoria necesaria se toma de la parte de la pila del programa. Cuando la ejecución del programa regresa de la función, la memoria utilizada por el registro de activación se desasigna (salida del registro de activación). Por lo tanto, la pila crece y se reduce con la string de llamadas a funciones. - Totalmente dinámico:
el lenguaje funcional como Lisp, ML, etc. utiliza este estilo de gestión de la pila de llamadas. Silenciosamente, aquí el registro de activación se desasigna solo cuando todas las referencias a ellos han desaparecido, y esto requiere que los registros de activación se liberen dinámicamente en momentos arbitrarios durante la ejecución. Se necesita un administrador de memoria (recolector de basura).La estructura de datos que maneja dicha gestión es un montón y esto también se denomina Gestión de montón.
Registro de activación :
la información necesaria para una única ejecución de un procedimiento se administra mediante un bloque contiguo de almacenamiento denominado «registro de activación».
Se asigna un registro de activación cuando se ingresa a un procedimiento y se desasigna cuando se sale de ese procedimiento. Contiene datos temporales, datos locales, estado de la máquina, enlace de acceso opcional, enlace de control opcional, parámetros reales y valores devueltos.
- Contador de Programa (PC) – cuyo valor es la dirección de la siguiente instrucción a ejecutar.
- Puntero de pila (SP): cuyo valor es la parte superior de la (parte superior de la pila, ToS).
- Puntero de marco (FP): que apunta a la activación actual.
Nota:
Los registros de activación se asignan desde un área estática (como Fortran 77), área de pila (como C o Pascal) y área de montón (como lisp).
Publicación traducida automáticamente
Artículo escrito por PinakiBanerjee0 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA