| INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO |

Introducción | Contenido | Bibliografía

Introducción
Contenido
UNIDAD I
UNIDAD II
UNIDAD III
UNIDAD IV
UNIDAD V
UNIDAD VI
UNIDAD VII Introducción 7.1 Diseño, implementación y administración de la tabla de símbolos 7.2 Implantación de bloques y tipos de datos 7.3 Especificación de alcance de variables

7.4 Funciones y procedimientos

7.5 Registros de activación

7.6 Paso de parámetros

7.7 Llamada por valor

7.8 Llamada por referencia

UNIDAD VIII
UNIDAD IX
PROBLEMARIO
Bibliografía

7.5 Registros de Activación

> La información necesaria para una sola ejecución de un procedimiento se consigue utilizando un bloque contiguo de memoria llamado registro de activación o marco, que consta del conjunto de campos que se muestra en la siguiente figura. No todos los lenguajes ni todos los compiladores utilizan la totalidad de estos campos. A menudo los registros pueden sustituir uno o más campos. Para lenguajes como Pascal y C, normalmente se introduce el registro de activación de un procedimiento en la pila de ejecución cuando se llama al procedimiento y se extrae de la pila cuando el control regresa al autor de la llamada.

> La finalidad de los campos de un registro de activación es la siguiente, comenzando por el campo para los valores temporales.

> 1. Los valores temporales, como los que surgen en la evaluación de expresiones, se almacenan en el campo para valores temporales.

> 2. El campo para datos locales guarda los datos locales a una ejecución de un procedimiento. La disposición interna de este campo se estudia más adelante.

> 3. El campo para el estado guardado de la máquina contiene información sobre el estado de la máquina justo antes de que sea llamado el procedimiento. Esta información incluye los valores del contador del programa y los registros de la máquina que deben reponerse cuando el control regrese del procedimiento.

> 4. El enlace de acceso opcional para hacer referencia a los datos no locales guardados en otros registros de activación. Para un lenguaje como FORTRAN, no se necesitan los enlaces de acceso porque los datos no locales se mantienen en un lugar fijo. Pascal necesita los enlaces de acceso, o el mecanismo de estructura de datos tipo display.

> 5. El enlace de control opcional apunta al registro de activación del autor de la llamada.

> 6. El campo para los parámetros actuales es utilizado por el procedimiento autor de la llamada para proporcionar parámetros al procedimiento que recibe la llamada. Existe espacio para los parámetros en el registro de activación, pero en la práctica los parámetros se pasan en los registros de la máquina para una mayor eficiencia.

> 7. El campo para el valor devuelto es utilizado por el procedimiento que recibe la llamada para devolver un valor al procedimiento autor de la llamada. De nuevo, en la práctica este valor se suele trasladar en un registro para mayor eficiencia.

> Los tamaños de cada uno de estos campos se pueden determinar en el momento en que es llamado un procedimiento. De hecho, los tamaños de casi todos los campos se pueden determinar en el momento de la compilación. Existe una excepción cuando un procedimiento tiene una matriz local cuyo tamaño venga determinado por el valor de un parámetro actual, disponible únicamente cuando el procedimiento sea llamado durante la ejecución.

> Atrás Siguiente

##### Introducción / Contenido / Unidad I / Unidad II / Unidad III / Unidad IV / Unidad V / Unidad VI / Unidad VII / Unidad VIII / Unidad IX / Problemario / Bibliografía

##### Inicio

##### Créditos

José Sánchez Juárez, Andrés Ortigoza Campos, Fabiola Ocampo Botello