Logo

Marco Cantù
Pascal Esencial

Apéndice A Actualizar
Glosario

Este es un breve glosario de términos técnicos usados en todo el libro. Podrían haber sido definidos igualmente en otro lugar del texto, pero he preferido reunirlos aquí, para que sea más fácil encontrarlos.

Estos son términos solicitados por los lectores de Essential Pascal. Aparecen enlaces locales a los que ya han sido definidos en este glosario.

API array class method class reference dynamic heap (de memoria)
literal memory leak owner painting parent self
pila (de memoria) static virtual      

Heap (montón) (de memoria)

El término Heap indica una porción de memoria disponible para un programa, también llamada área de memoria dinámica. el heap es el área en que la asignación y desasignación de memoria ocurre en orden aleatorio. Esto significa que si se asignan tres bloques de memoria uno tras otro, pueden ser destruidos en cualquier orden. El administrador de heaps se ocupa de los detalles, así que usted sólo tiene que pedir más memoria con GetMem o llamando a un constructor para que cree un objeto, y Delphi le devolverá un nuevo bloque de memoria (eventualmente, usando huecos de memoria que ya han sido descartados).

El heap es una de las tres áreas de memoria disponibles para una aplicación. Las otras dos se llaman : área de memoria global (es donde viven las variables globales) y pila. Al contrario que el heap, las variables globales se adjudican cuando se inicia el programa, y permanecen hasta que termina. Respecto a la pila, véase la definición de la misma en este glosario.

Delphi usa el heap para adjudicar memoria a cada objeto, a las cadenas de texto, a los vectores [arrays] dinámicos, y para peticiones específicas de adjudicación de memoria dinámica (GetMem).

Windows permite que cada aplicación tenga hasta 2 GigaBytes de espacio de direcciones, la mayor parte del cual puede ser usada por el heap.

Pila (de memoria) (Stack)

El término pila indica una porción de la memoria disponible para un programa, que es dinámica, pero es asignada y desasignada conforme a un orden específico. La adjudicación de la pila es de tipo LIFO (Last In First Out, el primero que entra es el primero que sale). Esto significa que el último objeto de memoria que se ha asignado, será el primero en ser borrado. La pila de memoria es utilizada de manera típica por rutinas (llamadas a procedimiento, función o método). Cuando llama a una rutina, sus parámetros y tipo de salida son situados sobre la pila (a no ser que usted optimice la llamada, lo que Delphi hace por defecto). También las variables que usted declare dentro de una rutina (usando un bloque var antes del begin) son almacenadas sobre la pila, de tal forma que cuando la rutina termina se eliminarán automáticamente (antes de volver a la rutina que llamó, siguiendo el orden LIFO).

La pila es una de las tres áreas de memoria disponibles para una aplicación. Las otras dos se llaman : área de memoria global (es donde viven las variables globales) y heap (véase en este glosario).

Delphi usa la pila para parámetros de rutina y valores de salida (a no ser que use la convención de llamada a registro por defecto), para variables de rutinas locales, para llamadas a funciones API de Windows, etcétera.

Una aplicación en Windows puede reservar una gran cantidad de memoria para la pila. En Delphi, se establece esta cantidad en la página linker de las opciones del proyecto. De cualquier manera, Delphi lo hace por defecto. Si usted recibe un mensaje de error acerca de que la pila está llena, esto es probablemente porque ha programado una función recursiva que se llama a sí misma indefinidamente, y no porque el espacio de la pila es demasiado pequeño.

© Copyright Marco Cantù, Wintech Italia Srl 1995-99
© Copyright de la traducción, Rafael Barranco-Droege, 2000