Forum d'annonces et d'échanges d'INF401

Utilisation de la pile

Utilisation de la pile

by Denis Bouhineau -
Number of replies: 0

> dans quelles situations utiliser la pile pour les procédures/fonctions ? 

  en contexte d'examen : il faut suivre les consignes, si le sujet demande d'utiliser la pile, ...

  hors contexte d'examen, si c'est dans un contexte mélangeant assembleur et C (ou d'autres langages) avec gcc, il faut suivre les conventions de gcc (ou celles du compilateur utilisé) ; j'en ai parlé un peu dans les derniers cours, les conventions de gcc mélangent une gestion par registre (pour les premiers paramètres et le résultat, certaines variables locales ou temporaires, etc.) et une gestion par la pile pour les autres paramètres/variables.

  hors contexte d'examen et de code mélangeant assembleur et C avec gcc, si vous êtes maître de l'ensemble du code, et qu'il y a peu de paramètres ou de variables et des appels imbriqués limités, alors vous pouvez choisir de travailler avec la pile ou avec des registres, ou avec des zones de mémoire spécifiques, c'est comme vous voulez, mais c'est assez limité en fait ; dès qu'il y a de la récursivité, ou un nombre de variable et d'appels imbriqué important, ou des codes que vous ne maitrisez pas, vous n'avez plus le choix, il vous faut une gestion de la mémoire dynamique, et c'est la pile

  dans tous les cas, attention à la relation BL / LR, le plus sûr est d'utiliser la pile au moins pour cela, mais ce n'est pas toujours obligatoire/le plus efficace (cas des procédures feuilles, par ex.)

Bien à vous,
Denis B.