Qu'est-ce qu'un registre de pile?

En relation avec les ordinateurs, un registre de pile est un emplacement de mémoire - généralement sur l'unité de traitement centrale (CPU) ou le matériel de traitement associé - qui contient l'adresse actuelle du haut d'une région de mémoire d'ordinateur séparée connue sous le nom de pile. Le registre de pile est important car, sans lui, un ordinateur devrait implémenter une méthode plus lente et plus sujette aux erreurs de traçage du flux d'exécution d'un programme. Dans la plupart des architectures système, le registre de pile est un registre dédié, il n'est donc pas accessible accidentellement lorsqu'il travaille avec d'autres registres de mémoire. Plus rarement, un registre de pile peut être un registre général qui est généralement accessible par un programme mais qui n'est pas intentionnellement utilisé car son utilisation est définie par le fabricant. Lorsqu'un système informatique contient deux ou plusieurs registres de pile, ce qui signifie qu'il existe potentiellement plus d'une pile, l'architecture est connue sous le nom de machine à pile.

Au plus bas niveau de programmation informatique, une pile est une zone de mémoire - généralement dans la mémoire d'accès aléatoire (RAM) - qui a un type de comportement bien défini. La pile peut y avoir des informations dans un processus appelé Pushing, ou il peut y avoir des informations, ce qui s'appelle Popping. Le modèle pour une pile est le premier-dans, le dernier retrait, ce qui signifie que si plusieurs informations sont poussées dans la pile, le premier élément poussé sera le dernier à être sorti, tandis que le dernier élément poussé sera le premier à être récupéré avec une commande POP. Un registre de pile garde une trace du haut de la pile, qui est toujours le dernier élément poussé dedans.

Lorsqu'un programme informatique s'exécute, chaque instruction qui est exécutée a une adresse mémoire spécifique où elle est temporairement stockée pendant la durée du programme. Si un programme appelle un sous-programme - ou une procédure, une fonction ou une méthode, selon le langage de programmation et Mtiret; Ensuite, le programme doit passer à l'adresse mémoire du code de sous-programme pour l'exécuter. L'adresse où le flux de contrôle du programme se brise pour se ramifier vers le sous-programme est poussé sur la pile afin qu'il se souvienne. Lorsque le sous-programme a terminé l'exécution, le programme sait où il doit revenir dans le code principal en faisant éclater l'adresse de code en haut de la pile, où le registre de la pile pointe.

Bien qu'il existe d'autres méthodes qui peuvent être utilisées pour obtenir les mêmes résultats, l'utilisation d'un registre de pile et de pile permet un concept de programmation important appelé Recursion. Une fonction récursive est une fonction qui, dans son propre code, s'appelle. Ce processus est généralement utilisé dans les algorithmes de tri et pour certaines fonctions mathématiques. Le registre de pile suit toutes les dernières adresses où l'exécution se ramifient, de sorte qu'une fonction peut implémenter en toute sécurité la récursivité en sachant que, finalement, le contrôle reviendra au point d'origine. Un complexeation se produit si toute la pile est pleine et qu'aucune place en mémoire ne reste, auquel cas un débordement de pile se produit, cessant l'exécution du programme.

DANS D'AUTRES LANGUES