Cadre de pile

Définition - Que signifie Stack Frame?

Une trame de pile est une technique de gestion de la mémoire utilisée dans certains langages de programmation pour générer et éliminer des variables temporaires. En d'autres termes, il peut être considéré comme la collecte de toutes les informations sur la pile relatives à un appel de sous-programme. Les cadres de pile n'existent que pendant le processus d'exécution. Les cadres de pile aident les langages de programmation à prendre en charge les fonctionnalités récursives des sous-programmes.

Un cadre de pile également appelé cadre d'activation ou enregistrement d'activation.

Definir Tech explique Stack Frame

Un cadre de pile comprend:

  • Variables locales
  • Copies sauvegardées des registres modifiés par des sous-programmes qui pourraient nécessiter une restauration
  • Paramètres d'argument
  • Adresse de retour

Un cadre de pile individuel a de l'espace pour les paramètres réels, les emplacements temporaires, les variables locales et les informations de sous-programme d'appel. Lorsque les routines spécifiques appelant ces paramètres, emplacements ou variables ont terminé leur exécution, la trame de pile appropriée est éliminée de la pile. L'ordre des informations d'emballage dans le cadre de pile dans la plupart des cas est indépendant des spécifications du langage de programmation.

L'une des principales caractéristiques du cadre de pile est que pour un sous-programme spécifique, la taille du cadre de pile est fixe. Pour qu'un langage de programmation utilise un cadre de pile, un compteur de programme et un thread doivent être disponibles avec deux pointeurs: le pointeur de base et le pointeur de pile. Le pointeur de base pointe toujours vers le haut du cadre, tandis que le pointeur de pile pointe vers le haut de la pile. Le compteur de programme aide à pointer vers la prochaine instruction exécutable. Une trame de pile pour une procédure donnée contient toutes les informations pertinentes pour la sauvegarde et la restauration de l'état de la procédure spécifique.