Logo

Marco Cantù

L'essentiel sur Pascal

Traduit de l'anglais par Iannis Papageorgiadis ipapag@village.uunet.be

Annexe A
Glossaire

Vous trouverez ici un glossaire des termes techniques utilisés dans cet ouvrage. Ils auraient tout aussi bien pu être définis à certains endroits du texte, mais nous choisissons de les rassembler ici pour en faciliter la recherche.

Le tas (mémoire)

Le terme tas (heap) indique une partie de la mémoire disponible pour un programme, appelée également zone de mémoire dynamique. Le tas est la zone dans laquelle s'effectuent l'allocation et la désallocation de la mémoire de façon aléatoire. Ceci signifie que si vous allouez trois blocs mémoire en séquence, ils peuvent être détruits par la suite selon un ordre différent. Le gestionnaire du tas prend en charge tous les détails; ainsi, vous demandez simplement de la nouvelle mémoire avec GetMem ou en appelant un constructeur pour créer un objet et Delphi vous retournera un nouveau bloc mémoire (en réutilisant éventuellement des blocs déjà écartés).

Le tas est une des trois parties de la mémoire disponible pour une application. Les deux autres sont la mémoire globale (c'est l'endroit où sont placées les variables globales) et la pile. Contrairement au tas, les variables globales sont allouées lors du démarrage du programme et y restent jusqu'à la fin. Pour la pile, voir l'entrée spécifique dans ce glossaire.

Delphi utilise le tas pour l'allocation de la mémoire de chaque objet, du texte des chaînes, des tableaux dynamiques et pour les demandes spécifiques de mémoire dynamique (GetMem).

Windows permet à une application de disposer jusqu'à 2 gigabytes d'espace mémoire, dont la majeure partie peut être utilisée par le tas.

La pile (mémoire)

Le terme pile (stack) indique une portion de la mémoire disponible pour le programme, qui est dynamique mais qui est allouée et désallouée selon un ordre spécifique. L'allocation de la pile est de type LIFO : dernier entré premier sorti (Last In First Out). Ceci signifie que le dernier objet mémoire que vous avez alloué sera le premier à être effacé. La pile est utilisée par les routines (procédure, fonction, et appels de méthodes). Lorsqu'on appelle une routine, ses paramètres et le type retourné sont placés sur la pile (sauf si on optimise l'appel, comme Delphi le fait par défaut). De même que les variables qu'on déclare dans une routine (un utilisant un bloc var avant l'instruction begin) sont stockées dans la pile, lorsque la routine se termine elles seront automatiquement éliminées (avant le retour à la routine appelante, dans l'ordre LIFO).

La pile est une des trois parties de la mémoire disponible pour une application. Les deux autres sont la mémoire globale et le tas. Voir l'entrée le tas dans ce glossaire.

Delphi utilise la pile pour les paramètres des routines et les valeurs retournées (sauf si vous utilisez la convention d'appel par défaut register), pour les variables locales des routines, pour les appels de fonctions API Windows, etc.

Une application Windows peut réserver une grande partie de mémoire pour la pile. En Delphi vous définissez la taille dans la page Lieur des options du projet. Toutefois, la taille par défaut suffit. Un message d'erreur pile pleine est probablement dû à un appel récursif qui boucle et non pas à la taille insuffisante de la pile.

Nouveaux termes à la demande

 
© Copyright Marco Cantù, Wintech Italia Srl 1995-99